RTEMS 6.1-rc5
|
Data Structures | |
struct | _acmp_config |
Configuration for ACMP. More... | |
struct | _acmp_channel_config |
Configuration for channel. More... | |
struct | _acmp_filter_config |
Configuration for filter. More... | |
struct | _acmp_dac_config |
Configuration for DAC. More... | |
struct | _acmp_round_robin_config |
Configuration for round robin mode. More... | |
Driver version | |
enum | _acmp_interrupt_enable { kACMP_OutputRisingInterruptEnable = (1U << 0U) , kACMP_OutputFallingInterruptEnable = (1U << 1U) , kACMP_RoundRobinInterruptEnable = (1U << 2U) } |
Interrupt enable/disable mask. More... | |
enum | _acmp_status_flags { kACMP_OutputRisingEventFlag = CMP_C0_CFR_MASK , kACMP_OutputFallingEventFlag = CMP_C0_CFF_MASK , kACMP_OutputAssertEventFlag = CMP_C0_COUT_MASK } |
Status flag mask. More... | |
enum | _acmp_hysteresis_mode { kACMP_HysteresisLevel0 = 0U , kACMP_HysteresisLevel1 = 1U , kACMP_HysteresisLevel2 = 2U , kACMP_HysteresisLevel3 = 3U } |
Comparator hard block hysteresis control. More... | |
enum | _acmp_reference_voltage_source { kACMP_VrefSourceVin1 = 0U , kACMP_VrefSourceVin2 = 1U } |
CMP Voltage Reference source. More... | |
enum | _acmp_fixed_port { kACMP_FixedPlusPort = 0U , kACMP_FixedMinusPort = 1U } |
Fixed mux port. More... | |
typedef enum _acmp_hysteresis_mode | acmp_hysteresis_mode_t |
Comparator hard block hysteresis control. | |
typedef enum _acmp_reference_voltage_source | acmp_reference_voltage_source_t |
CMP Voltage Reference source. | |
typedef enum _acmp_fixed_port | acmp_fixed_port_t |
Fixed mux port. | |
typedef struct _acmp_config | acmp_config_t |
Configuration for ACMP. | |
typedef struct _acmp_channel_config | acmp_channel_config_t |
Configuration for channel. | |
typedef struct _acmp_filter_config | acmp_filter_config_t |
Configuration for filter. | |
typedef struct _acmp_dac_config | acmp_dac_config_t |
Configuration for DAC. | |
typedef struct _acmp_round_robin_config | acmp_round_robin_config_t |
Configuration for round robin mode. | |
#define | FSL_ACMP_DRIVER_VERSION (MAKE_VERSION(2U, 0U, 6U)) |
ACMP driver version 2.0.6. | |
#define | CMP_C0_CFx_MASK (CMP_C0_CFR_MASK | CMP_C0_CFF_MASK) |
The mask of status flags cleared by writing 1. | |
#define | CMP_C1_CHNn_MASK 0xFF0000U /* C1_CHN0 - C1_CHN7. */ |
#define | CMP_C2_CHnF_MASK 0xFF0000U /* C2_CH0F - C2_CH7F. */ |
Initialization and deinitialization | |
void | ACMP_Init (CMP_Type *base, const acmp_config_t *config) |
Initializes the ACMP. | |
void | ACMP_Deinit (CMP_Type *base) |
Deinitializes the ACMP. | |
void | ACMP_GetDefaultConfig (acmp_config_t *config) |
Gets the default configuration for ACMP. | |
Basic Operations | |
void | ACMP_Enable (CMP_Type *base, bool enable) |
Enables or disables the ACMP. | |
void | ACMP_SetChannelConfig (CMP_Type *base, const acmp_channel_config_t *config) |
Sets the channel configuration. | |
Advanced Operations | |
void | ACMP_EnableDMA (CMP_Type *base, bool enable) |
Enables or disables DMA. | |
void | ACMP_EnableWindowMode (CMP_Type *base, bool enable) |
Enables or disables window mode. | |
void | ACMP_SetFilterConfig (CMP_Type *base, const acmp_filter_config_t *config) |
Configures the filter. | |
void | ACMP_SetDACConfig (CMP_Type *base, const acmp_dac_config_t *config) |
Configures the internal DAC. | |
void | ACMP_SetRoundRobinConfig (CMP_Type *base, const acmp_round_robin_config_t *config) |
Configures the round robin mode. | |
void | ACMP_SetRoundRobinPreState (CMP_Type *base, uint32_t mask) |
Defines the pre-set state of channels in round robin mode. | |
void | ACMP_ClearRoundRobinStatusFlags (CMP_Type *base, uint32_t mask) |
Clears the channel input changed flags in round robin mode. | |
Interrupts | |
void | ACMP_EnableInterrupts (CMP_Type *base, uint32_t mask) |
Enables interrupts. | |
void | ACMP_DisableInterrupts (CMP_Type *base, uint32_t mask) |
Disables interrupts. | |
Status | |
uint32_t | ACMP_GetStatusFlags (CMP_Type *base) |
Gets status flags. | |
void | ACMP_ClearStatusFlags (CMP_Type *base, uint32_t mask) |
Clears status flags. | |
typedef struct _acmp_channel_config acmp_channel_config_t |
Configuration for channel.
The comparator's port can be input from channel mux or DAC. If port input is from channel mux, detailed channel number for the mux should be configured.
typedef enum _acmp_hysteresis_mode acmp_hysteresis_mode_t |
Comparator hard block hysteresis control.
See chip data sheet to get the actual hysteresis value with each level.
enum _acmp_fixed_port |
Comparator hard block hysteresis control.
See chip data sheet to get the actual hysteresis value with each level.
enum _acmp_status_flags |
void ACMP_ClearRoundRobinStatusFlags | ( | CMP_Type * | base, |
uint32_t | mask | ||
) |
Clears the channel input changed flags in round robin mode.
base | ACMP peripheral base address. |
mask | Mask of channel index. Available range is channel0:0x01 to channel7:0x80. |
brief Clears the channel input changed flags in round robin mode.
param base ACMP peripheral base address. param mask Mask of channel index. Available range is channel0:0x01 to channel7:0x80.
void ACMP_ClearStatusFlags | ( | CMP_Type * | base, |
uint32_t | mask | ||
) |
Clears status flags.
base | ACMP peripheral base address. |
mask | Status flags mask. See "_acmp_status_flags". |
brief Clears status flags.
param base ACMP peripheral base address. param mask Status flags mask. See "_acmp_status_flags".
void ACMP_Deinit | ( | CMP_Type * | base | ) |
Deinitializes the ACMP.
base | ACMP peripheral base address. |
brief Deinitializes the ACMP.
param base ACMP peripheral base address.
void ACMP_DisableInterrupts | ( | CMP_Type * | base, |
uint32_t | mask | ||
) |
Disables interrupts.
base | ACMP peripheral base address. |
mask | Interrupts mask. See "_acmp_interrupt_enable". |
brief Disables interrupts.
param base ACMP peripheral base address. param mask Interrupts mask. See "_acmp_interrupt_enable".
void ACMP_Enable | ( | CMP_Type * | base, |
bool | enable | ||
) |
Enables or disables the ACMP.
base | ACMP peripheral base address. |
enable | True to enable the ACMP. |
brief Enables or disables the ACMP.
param base ACMP peripheral base address. param enable True to enable the ACMP.
void ACMP_EnableDMA | ( | CMP_Type * | base, |
bool | enable | ||
) |
Enables or disables DMA.
base | ACMP peripheral base address. |
enable | True to enable DMA. |
brief Enables or disables DMA.
param base ACMP peripheral base address. param enable True to enable DMA.
void ACMP_EnableInterrupts | ( | CMP_Type * | base, |
uint32_t | mask | ||
) |
Enables interrupts.
base | ACMP peripheral base address. |
mask | Interrupts mask. See "_acmp_interrupt_enable". |
brief Enables interrupts.
param base ACMP peripheral base address. param mask Interrupts mask. See "_acmp_interrupt_enable".
void ACMP_EnableWindowMode | ( | CMP_Type * | base, |
bool | enable | ||
) |
Enables or disables window mode.
base | ACMP peripheral base address. |
enable | True to enable window mode. |
brief Enables or disables window mode.
param base ACMP peripheral base address. param enable True to enable window mode.
void ACMP_GetDefaultConfig | ( | acmp_config_t * | config | ) |
Gets the default configuration for ACMP.
This function initializes the user configuration structure to default value. The default value are:
Example:
config | Pointer to ACMP configuration structure. |
brief Gets the default configuration for ACMP.
This function initializes the user configuration structure to default value. The default value are:
Example: code config->enableHighSpeed = false; config->enableInvertOutput = false; config->useUnfilteredOutput = false; config->enablePinOut = false; config->enableHysteresisBothDirections = false; config->hysteresisMode = kACMP_hysteresisMode0; endcode
param config Pointer to ACMP configuration structure.
uint32_t ACMP_GetStatusFlags | ( | CMP_Type * | base | ) |
Gets status flags.
base | ACMP peripheral base address. |
brief Gets status flags.
param base ACMP peripheral base address. return Status flags asserted mask. See "_acmp_status_flags".
void ACMP_Init | ( | CMP_Type * | base, |
const acmp_config_t * | config | ||
) |
Initializes the ACMP.
The default configuration can be got by calling ACMP_GetDefaultConfig().
base | ACMP peripheral base address. |
config | Pointer to ACMP configuration structure. |
brief Initializes the ACMP.
The default configuration can be got by calling ACMP_GetDefaultConfig().
param base ACMP peripheral base address. param config Pointer to ACMP configuration structure.
void ACMP_SetChannelConfig | ( | CMP_Type * | base, |
const acmp_channel_config_t * | config | ||
) |
Sets the channel configuration.
Note that the plus/minus mux's setting is only valid when the positive/negative port's input isn't from DAC but from channel mux.
Example:
base | ACMP peripheral base address. |
config | Pointer to channel configuration structure. |
brief Sets the channel configuration.
Note that the plus/minus mux's setting is only valid when the positive/negative port's input isn't from DAC but from channel mux.
Example: code acmp_channel_config_t configStruct = {0}; configStruct.positivePortInput = kACMP_PortInputFromDAC; configStruct.negativePortInput = kACMP_PortInputFromMux; configStruct.minusMuxInput = 1U; ACMP_SetChannelConfig(CMP0, &configStruct); endcode
param base ACMP peripheral base address. param config Pointer to channel configuration structure.
void ACMP_SetDACConfig | ( | CMP_Type * | base, |
const acmp_dac_config_t * | config | ||
) |
Configures the internal DAC.
Example:
base | ACMP peripheral base address. |
config | Pointer to DAC configuration structure. "NULL" is for disabling the feature. |
brief Configures the internal DAC.
Example: code acmp_dac_config_t configStruct = {0}; configStruct.referenceVoltageSource = kACMP_VrefSourceVin1; configStruct.DACValue = 20U; configStruct.enableOutput = false; configStruct.workMode = kACMP_DACWorkLowSpeedMode; ACMP_SetDACConfig(CMP0, &configStruct); endcode
param base ACMP peripheral base address. param config Pointer to DAC configuration structure. "NULL" is for disabling the feature.
void ACMP_SetFilterConfig | ( | CMP_Type * | base, |
const acmp_filter_config_t * | config | ||
) |
Configures the filter.
The filter can be enabled when the filter count is bigger than 1, the filter period is greater than 0 and the sample clock is from divided bus clock or the filter is bigger than 1 and the sample clock is from external clock. Detailed usage can be got from the reference manual.
Example:
base | ACMP peripheral base address. |
config | Pointer to filter configuration structure. |
brief Configures the filter.
The filter can be enabled when the filter count is bigger than 1, the filter period is greater than 0 and the sample clock is from divided bus clock or the filter is bigger than 1 and the sample clock is from external clock. Detailed usage can be got from the reference manual.
Example: code acmp_filter_config_t configStruct = {0}; configStruct.filterCount = 5U; configStruct.filterPeriod = 200U; configStruct.enableSample = false; ACMP_SetFilterConfig(CMP0, &configStruct); endcode
param base ACMP peripheral base address. param config Pointer to filter configuration structure.
void ACMP_SetRoundRobinConfig | ( | CMP_Type * | base, |
const acmp_round_robin_config_t * | config | ||
) |
Configures the round robin mode.
Example:
base | ACMP peripheral base address. |
config | Pointer to round robin mode configuration structure. "NULL" is for disabling the feature. |
brief Configures the round robin mode.
Example: code acmp_round_robin_config_t configStruct = {0}; configStruct.fixedPort = kACMP_FixedPlusPort; configStruct.fixedChannelNumber = 3U; configStruct.checkerChannelMask = 0xF7U; configStruct.sampleClockCount = 0U; configStruct.delayModulus = 0U; ACMP_SetRoundRobinConfig(CMP0, &configStruct); endcode param base ACMP peripheral base address. param config Pointer to round robin mode configuration structure. "NULL" is for disabling the feature.
void ACMP_SetRoundRobinPreState | ( | CMP_Type * | base, |
uint32_t | mask | ||
) |
Defines the pre-set state of channels in round robin mode.
Note: The pre-state has different circuit with get-round-robin-result in the SOC even though they are same bits. So get-round-robin-result can't return the same value as the value are set by pre-state.
base | ACMP peripheral base address. |
mask | Mask of round robin channel index. Available range is channel0:0x01 to channel7:0x80. |
brief Defines the pre-set state of channels in round robin mode.
Note: The pre-state has different circuit with get-round-robin-result in the SOC even though they are same bits. So get-round-robin-result can't return the same value as the value are set by pre-state.
param base ACMP peripheral base address. param mask Mask of round robin channel index. Available range is channel0:0x01 to channel7:0x80.
uint32_t _acmp_round_robin_config::checkerChannelMask |
Mask of checker channel index. Available range is channel0:0x01 to channel7:0x80 for round-robin checker.
uint32_t _acmp_dac_config::DACValue |
Value for DAC Output Voltage. Available range is 0-255.
uint32_t _acmp_round_robin_config::delayModulus |
Comparator and DAC initialization delay modulus.
bool _acmp_config::enableHighSpeed |
Enable High Speed (HS) comparison mode.
bool _acmp_config::enableInvertOutput |
Enable inverted comparator output.
bool _acmp_config::enablePinOut |
The comparator output is available on the associated pin.
bool _acmp_filter_config::enableSample |
Using external SAMPLE as sampling clock input, or using divided bus clock.
uint32_t _acmp_filter_config::filterCount |
Filter Sample Count. Available range is 1-7, 0 would cause the filter disabled.
uint32_t _acmp_filter_config::filterPeriod |
Filter Sample Period. The divider to bus clock. Available range is 0-255.
uint32_t _acmp_round_robin_config::fixedChannelNumber |
Indicates which channel is fixed in the fixed mux port.
acmp_fixed_port_t _acmp_round_robin_config::fixedPort |
Fixed mux port.
acmp_hysteresis_mode_t _acmp_config::hysteresisMode |
Hysteresis mode.
uint32_t _acmp_channel_config::minusMuxInput |
Minus mux input channel(0~7).
uint32_t _acmp_channel_config::plusMuxInput |
Plus mux input channel(0~7).
acmp_reference_voltage_source_t _acmp_dac_config::referenceVoltageSource |
Supply voltage reference source.
uint32_t _acmp_round_robin_config::sampleClockCount |
Specifies how many round-robin clock cycles(0~3) later the sample takes place.
bool _acmp_config::useUnfilteredOutput |
Set compare output(COUT) to equal COUTA(true) or COUT(false).