RZT Flexible Software Package Documentation  Release v2.2.0

 
POE3 Interface

Detailed Description

Interface for the Port Output Enable 3.

Defines the API and data structures for the Port Output Enable 3 interface.

Summary

The POE3 disables timer output pins based on configurable events.

Data Structures

struct  poe3_pwm_pin_setting_t
 
struct  poe3_complementary_pwm_pin_setting_t
 
struct  poe3_complementary_pwm_setting_t
 
struct  poe3_output_short_circuit_setting_t
 
struct  poe3_status_t
 
struct  poe3_callback_args_t
 
struct  poe3_cfg_t
 
struct  poe3_api_t
 
struct  poe3_instance_t
 

Typedefs

typedef void poe3_ctrl_t
 

Enumerations

enum  poe3_state_t
 
enum  poe3_active_level_t
 
enum  poe3_pin_select_t
 

Data Structure Documentation

◆ poe3_pwm_pin_setting_t

struct poe3_pwm_pin_setting_t

Timer PWM Output pin control setting

Data Fields
poe3_pin_select_t pwm_pin_select PWM Pin Select.
bool hiz_output_enable High-impedance output enable.

◆ poe3_complementary_pwm_pin_setting_t

struct poe3_complementary_pwm_pin_setting_t

Timer Complementary PWM Output pin control setting

Data Fields
poe3_pin_select_t positive_pwm_pin_select Positive PWM Pin Select.
poe3_pin_select_t negative_pwm_pin_select Negative PWM Pin Select.
poe3_active_level_t positive_pwm_pin_active_level Active level Positive PWM pin for short circuit detection.
poe3_active_level_t negative_pwm_pin_active_level Active level Negative PWM pin for short circuit detection.
bool hiz_output_enable High-impedance output enable.

◆ poe3_complementary_pwm_setting_t

struct poe3_complementary_pwm_setting_t

Timer Complementary PWM control setting

Data Fields
poe3_complementary_pwm_pin_setting_t pin_setting[3] Complementary PWM pin setting.

◆ poe3_output_short_circuit_setting_t

struct poe3_output_short_circuit_setting_t

Output short circuit setting.

Data Fields
bool interrupt_enable Interrupt enable.
bool hiz_output_enable High-impedance output enable.

◆ poe3_status_t

struct poe3_status_t

POE3 status

Data Fields
poe3_state_t state Current state of POE3.

◆ poe3_callback_args_t

struct poe3_callback_args_t

Callback function parameter data.

Data Fields
void const * p_context Placeholder for user data, set in poe3_cfg_t.

◆ poe3_cfg_t

struct poe3_cfg_t

User configuration structure, used in the open function.

Data Fields

uint32_t pwm_pin
 Length of PWM pin settings.
 
poe3_pwm_pin_setting_t const * p_pwm_pin_setting
 Settings for PWM pin.
 
uint32_t complementary_pwm_pin
 Length of complementary PWM pin settings.
 
poe3_complementary_pwm_setting_t const * p_complementary_pwm_pin_setting
 Settings for complementary PWM pin.
 
uint32_t short_circuit
 Length of short circuit settings.
 
poe3_output_short_circuit_setting_t const * p_short_circuit_setting
 High impedance output when the output short circuit.
 
bool oscillation_stop_hiz_output_enable
 High-impedance output when the oscillator is stopped.
 
void(* p_callback )(poe3_callback_args_t *p_args)
 
void const * p_context
 
void const * p_extend
 Extension parameter for hardware specific settings.
 

Field Documentation

◆ p_callback

void(* poe3_cfg_t::p_callback) (poe3_callback_args_t *p_args)

Callback called when a POE3 interrupt occurs.

◆ p_context

void const* poe3_cfg_t::p_context

Placeholder for user data. Passed to the user callback in poe3_callback_args_t.

◆ poe3_api_t

struct poe3_api_t

Port Output Enable 3 API structure. POE3 functions implemented at the HAL layer will follow this API.

Data Fields

fsp_err_t(* open )(poe3_ctrl_t *const p_ctrl, poe3_cfg_t const *const p_cfg)
 
fsp_err_t(* statusGet )(poe3_ctrl_t *const p_ctrl, poe3_status_t *p_status)
 
fsp_err_t(* outputDisable )(poe3_ctrl_t *const p_ctrl)
 
fsp_err_t(* reset )(poe3_ctrl_t *const p_ctrl)
 
fsp_err_t(* close )(poe3_ctrl_t *const p_ctrl)
 
fsp_err_t(* callbackSet )(poe3_ctrl_t *const p_ctrl, void(*p_callback)(poe3_callback_args_t *), void const *const p_context, poe3_callback_args_t *const p_callback_memory)
 

Field Documentation

◆ open

fsp_err_t(* poe3_api_t::open) (poe3_ctrl_t *const p_ctrl, poe3_cfg_t const *const p_cfg)

Initial configuration.

Parameters
[in]p_ctrlPointer to control block. Must be declared by user. Elements set here.
[in]p_cfgPointer to configuration structure. All elements of this structure must be set by user.

◆ statusGet

fsp_err_t(* poe3_api_t::statusGet) (poe3_ctrl_t *const p_ctrl, poe3_status_t *p_status)

Gets the current driver state.

Parameters
[in]p_ctrlControl block set in poe3_api_t::open call.
[out]p_statusProvides the current state of the POE3.

◆ outputDisable

fsp_err_t(* poe3_api_t::outputDisable) (poe3_ctrl_t *const p_ctrl)

Disables timer output pins by software request.

Parameters
[in]p_ctrlControl block set in poe3_api_t::open call.

◆ reset

fsp_err_t(* poe3_api_t::reset) (poe3_ctrl_t *const p_ctrl)

Attempts to clear status flags to reenable timer output pins. Confirm all status flags are cleared after calling this function by calling poe3_api_t::statusGet().

Parameters
[in]p_ctrlControl block set in poe3_api_t::open call.

◆ close

fsp_err_t(* poe3_api_t::close) (poe3_ctrl_t *const p_ctrl)

Disables POE3 interrupt.

Parameters
[in]p_ctrlControl block set in poe3_api_t::open call.

◆ callbackSet

fsp_err_t(* poe3_api_t::callbackSet) (poe3_ctrl_t *const p_ctrl, void(*p_callback)(poe3_callback_args_t *), void const *const p_context, poe3_callback_args_t *const p_callback_memory)

Specify callback function and optional context pointer and working memory pointer.

Parameters
[in]p_ctrlControl block set in poe3_api_t::open call for this timer.
[in]p_callbackCallback function to register
[in]p_contextPointer to send to callback function
[in]p_callback_memoryPointer to volatile memory where callback structure can be allocated. Callback arguments allocated here are only valid during the callback.

◆ poe3_instance_t

struct poe3_instance_t

This structure encompasses everything that is needed to use an instance of this interface.

Data Fields
poe3_ctrl_t * p_ctrl Pointer to the control structure for this instance.
poe3_cfg_t const * p_cfg Pointer to the configuration structure for this instance.
poe3_api_t const * p_api Pointer to the API structure for this instance.

Typedef Documentation

◆ poe3_ctrl_t

typedef void poe3_ctrl_t

POE3 control block. Allocate an instance specific control block to pass into the POE3 API calls.

Enumeration Type Documentation

◆ poe3_state_t

POE3 states.

Enumerator
POE3_STATE_NO_DISABLE_REQUEST 

Timer output is not disabled by POE3.

POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE0# pin.

POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE4# pin.

POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE8# pin.

POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE10# pin.

POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE11# pin.

POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST 

Timer output disabled due to poe3_api_t::outputDisable()

POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST 

Timer output disabled due to main oscillator stop.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST 

Timer output disabled due to output short circuit 1.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST 

Timer output disabled due to output short circuit 2.

POE3_STATE_NO_DISABLE_REQUEST 

Timer output is not disabled by POE3.

POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE0# pin.

POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE4# pin.

POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE8# pin.

POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE10# pin.

POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE11# pin.

POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST 

Timer output disabled due to poe3_api_t::outputDisable()

POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST 

Timer output disabled due to main oscillator stop.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST 

Timer output disabled due to output short circuit 1.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST 

Timer output disabled due to output short circuit 2.

POE3_STATE_DSMIF0_ERROR_REQUEST 

Timer output disabled due to DSMIF0 Error0.

POE3_STATE_DSMIF1_ERROR_REQUEST 

Timer output disabled due to DSMIF1 Error0.

POE3_STATE_DSMIF2_ERROR_REQUEST 

Timer output disabled due to DSMIF2 Error0.

POE3_STATE_DSMIF3_ERROR_REQUEST 

Timer output disabled due to DSMIF3 Error0.

POE3_STATE_DSMIF4_ERROR_REQUEST 

Timer output disabled due to DSMIF4 Error0.

POE3_STATE_DSMIF5_ERROR_REQUEST 

Timer output disabled due to DSMIF5 Error0.

POE3_STATE_DSMIF6_ERROR_REQUEST 

Timer output disabled due to DSMIF6 Error0.

POE3_STATE_DSMIF7_ERROR_REQUEST 

Timer output disabled due to DSMIF7 Error0.

POE3_STATE_DSMIF8_ERROR_REQUEST 

Timer output disabled due to DSMIF8 Error0.

POE3_STATE_DSMIF9_ERROR_REQUEST 

Timer output disabled due to DSMIF9 Error0.

POE3_STATE_DSMIF0_1_ERROR_REQUEST 

Timer output disabled due to DSMIF0 Error1.

POE3_STATE_DSMIF1_1_ERROR_REQUEST 

Timer output disabled due to DSMIF1 Error1.

POE3_STATE_DSMIF2_1_ERROR_REQUEST 

Timer output disabled due to DSMIF2 Error1.

POE3_STATE_DSMIF3_1_ERROR_REQUEST 

Timer output disabled due to DSMIF3 Error1.

POE3_STATE_DSMIF4_1_ERROR_REQUEST 

Timer output disabled due to DSMIF4 Error1.

POE3_STATE_DSMIF5_1_ERROR_REQUEST 

Timer output disabled due to DSMIF5 Error1.

POE3_STATE_DSMIF6_1_ERROR_REQUEST 

Timer output disabled due to DSMIF6 Error1.

POE3_STATE_DSMIF7_1_ERROR_REQUEST 

Timer output disabled due to DSMIF7 Error1.

POE3_STATE_DSMIF8_1_ERROR_REQUEST 

Timer output disabled due to DSMIF8 Error1.

POE3_STATE_DSMIF9_1_ERROR_REQUEST 

Timer output disabled due to DSMIF9 Error1.

POE3_STATE_NO_DISABLE_REQUEST 

Timer output is not disabled by POE3.

POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE0# pin.

POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE4# pin.

POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE8# pin.

POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE10# pin.

POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE11# pin.

POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST 

Timer output disabled due to poe3_api_t::outputDisable()

POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST 

Timer output disabled due to main oscillator stop.

POE3_STATE_DSMIF0_0_ERROR_REQUEST 

Timer output disabled due to DSMIF0 Error0.

POE3_STATE_DSMIF1_0_ERROR_REQUEST 

Timer output disabled due to DSMIF1 Error0.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST 

Timer output disabled due to output short circuit 1.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST 

Timer output disabled due to output short circuit 2.

POE3_STATE_DSMIF0_1_ERROR_REQUEST 

Timer output disabled due to DSMIF0 Error1.

POE3_STATE_DSMIF1_1_ERROR_REQUEST 

Timer output disabled due to DSMIF1 Error1.

POE3_STATE_NO_DISABLE_REQUEST 

Timer output is not disabled by POE3.

POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE0# pin.

POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE4# pin.

POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE8# pin.

POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE10# pin.

POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE11# pin.

POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST 

Timer output disabled due to poe3_api_t::outputDisable()

POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST 

Timer output disabled due to main oscillator stop.

POE3_STATE_DSMIF0_ERROR_REQUEST 

Timer output disabled due to DSMIF0 error.

POE3_STATE_DSMIF1_ERROR_REQUEST 

Timer output disabled due to DSMIF1 error.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST 

Timer output disabled due to output short circuit 1.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST 

Timer output disabled due to output short circuit 2.

POE3_STATE_NO_DISABLE_REQUEST 

Timer output is not disabled by POE3.

POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE0# pin.

POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE4# pin.

POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE8# pin.

POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE10# pin.

POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST 

Timer output disabled due to POE11# pin.

POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST 

Timer output disabled due to poe3_api_t::outputDisable()

POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST 

Timer output disabled due to main oscillator stop.

POE3_STATE_DSMIF0_ERROR_REQUEST 

Timer output disabled due to DSMIF0 error.

POE3_STATE_DSMIF1_ERROR_REQUEST 

Timer output disabled due to DSMIF1 error.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST 

Timer output disabled due to output short circuit 1.

POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST 

Timer output disabled due to output short circuit 2.

◆ poe3_active_level_t

Active level for short circuit detection.

Enumerator
POE3_ACTIVE_LEVEL_HIGH 

High level is set as the active level to detect a short circuit.

POE3_ACTIVE_LEVEL_LOW 

Low level is set as the active level to detect a short circuit.

POE3_ACTIVE_LEVEL_SETTING_NONE 

The active level of the pin is set by the timer peripheral side, not by POE3.

◆ poe3_pin_select_t

Timer Control Pin selection

Enumerator
POE3_PIN_SELECT_0 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_1 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_2 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_3 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_4 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_5 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_6 

Select pin to control. Refer to the user's manual of each device for details.

POE3_PIN_SELECT_7 

Select pin to control. Refer to the user's manual of each device for details.