RTEMS 6.1-rc1
|
Files | |
file | fsl_lpadc.h |
Data Structures | |
struct | lpadc_config_t |
LPADC global configuration. More... | |
struct | lpadc_conv_command_config_t |
Define structure to keep the configuration for conversion command. More... | |
struct | lpadc_conv_trigger_config_t |
Define structure to keep the configuration for conversion trigger. More... | |
struct | lpadc_conv_result_t |
Define the structure to keep the conversion result. More... | |
Initialization & de-initialization. | |
void | LPADC_Init (ADC_Type *base, const lpadc_config_t *config) |
Initializes the LPADC module. More... | |
void | LPADC_GetDefaultConfig (lpadc_config_t *config) |
Gets an available pre-defined settings for initial configuration. More... | |
void | LPADC_Deinit (ADC_Type *base) |
De-initializes the LPADC module. More... | |
Trigger and conversion with FIFO. | |
bool | LPADC_GetConvResult (ADC_Type *base, lpadc_conv_result_t *result) |
Get the result in conversion FIFO. More... | |
void | LPADC_SetConvTriggerConfig (ADC_Type *base, uint32_t triggerId, const lpadc_conv_trigger_config_t *config) |
Configure the conversion trigger source. More... | |
void | LPADC_GetDefaultConvTriggerConfig (lpadc_conv_trigger_config_t *config) |
Gets an available pre-defined settings for trigger's configuration. More... | |
void | LPADC_SetConvCommandConfig (ADC_Type *base, uint32_t commandId, const lpadc_conv_command_config_t *config) |
Configure conversion command. More... | |
void | LPADC_GetDefaultConvCommandConfig (lpadc_conv_command_config_t *config) |
Gets an available pre-defined settings for conversion command's configuration. More... | |
#define LPADC_GET_ACTIVE_COMMAND_STATUS | ( | statusVal | ) | ((statusVal & ADC_STAT_CMDACT_MASK) >> ADC_STAT_CMDACT_SHIFT) |
Define the MACRO function to get command status from status value.
The statusVal is the return value from LPADC_GetStatusFlags().
#define LPADC_GET_ACTIVE_TRIGGER_STATUE | ( | statusVal | ) | ((statusVal & ADC_STAT_TRGACT_MASK) >> ADC_STAT_TRGACT_SHIFT) |
Define the MACRO function to get trigger status from status value.
The statusVal is the return value from LPADC_GetStatusFlags().
Define enumeration of hardware average selection.
It Selects how many ADC conversions are averaged to create the ADC result. An internal storage buffer is used to capture temporary results while the averaging iterations are executed.
Define enumeration of hardware compare mode.
After an ADC channel input is sampled and converted and any averaging iterations are performed, this mode setting guides operation of the automatic compare function to optionally only store when the compare operation is true. When compare is enabled, the conversion result is compared to the compare values.
typedef enum _lpadc_power_level_mode lpadc_power_level_mode_t |
Define enumeration of power configuration.
Configures the ADC for power and performance. In the highest power setting the highest conversion rates will be possible. Refer to the device data sheet for power and performance capabilities for each setting.
Define enumeration of reference voltage source.
For detail information, need to check the SoC's specification.
typedef enum _lpadc_sample_channel_mode lpadc_sample_channel_mode_t |
Define enumeration of channel sample mode.
The channel sample mode configures the channel with single-end/differential/dual-single-end, side A/B.
typedef enum _lpadc_sample_scale_mode lpadc_sample_scale_mode_t |
Define enumeration of sample scale mode.
The sample scale mode is used to reduce the selected ADC analog channel input voltage level by a factor. The maximum possible voltage on the ADC channel input should be considered when selecting a scale mode to ensure that the reducing factor always results voltage level at or below the VREFH reference. This reducing capability allows conversion of analog inputs higher than VREFH. A-side and B-side channel inputs are both scaled using the scale mode.
typedef enum _lpadc_sample_time_mode lpadc_sample_time_mode_t |
Define enumeration of sample time selection.
The shortest sample time maximizes conversion speed for lower impedance inputs. Extending sample time allows higher impedance inputs to be accurately sampled. Longer sample times can also be used to lower overall power consumption when command looping and sequencing is configured and high conversion rates are not required.
Define enumeration of trigger priority policy.
This selection controls how higher priority triggers are handled.
Define enumeration of hardware average selection.
It Selects how many ADC conversions are averaged to create the ADC result. An internal storage buffer is used to capture temporary results while the averaging iterations are executed.
Define enumeration of hardware compare mode.
After an ADC channel input is sampled and converted and any averaging iterations are performed, this mode setting guides operation of the automatic compare function to optionally only store when the compare operation is true. When compare is enabled, the conversion result is compared to the compare values.
Define enumeration of power configuration.
Configures the ADC for power and performance. In the highest power setting the highest conversion rates will be possible. Refer to the device data sheet for power and performance capabilities for each setting.
Enumerator | |
---|---|
kLPADC_PowerLevelAlt1 | Lowest power setting. |
kLPADC_PowerLevelAlt2 | Next lowest power setting. |
kLPADC_PowerLevelAlt3 | ... |
kLPADC_PowerLevelAlt4 | Highest power setting. |
Define enumeration of sample scale mode.
The sample scale mode is used to reduce the selected ADC analog channel input voltage level by a factor. The maximum possible voltage on the ADC channel input should be considered when selecting a scale mode to ensure that the reducing factor always results voltage level at or below the VREFH reference. This reducing capability allows conversion of analog inputs higher than VREFH. A-side and B-side channel inputs are both scaled using the scale mode.
Enumerator | |
---|---|
kLPADC_SamplePartScale | Use divided input voltage signal. (For scale select,please refer to the reference manual). |
kLPADC_SampleFullScale | Full scale (Factor of 1). |
Define enumeration of sample time selection.
The shortest sample time maximizes conversion speed for lower impedance inputs. Extending sample time allows higher impedance inputs to be accurately sampled. Longer sample times can also be used to lower overall power consumption when command looping and sequencing is configured and high conversion rates are not required.
enum _lpadc_status_flags |
Define enumeration of trigger priority policy.
This selection controls how higher priority triggers are handled.
void LPADC_Deinit | ( | ADC_Type * | base | ) |
De-initializes the LPADC module.
base | LPADC peripheral base address. |
brief De-initializes the LPADC module.
param base LPADC peripheral base address.
bool LPADC_GetConvResult | ( | ADC_Type * | base, |
lpadc_conv_result_t * | result | ||
) |
Get the result in conversion FIFO.
base | LPADC peripheral base address. |
result | Pointer to structure variable that keeps the conversion result in conversion FIFO. |
brief Get the result in conversion FIFO.
param base LPADC peripheral base address. param result Pointer to structure variable that keeps the conversion result in conversion FIFO.
return Status whether FIFO entry is valid.
void LPADC_GetDefaultConfig | ( | lpadc_config_t * | config | ) |
Gets an available pre-defined settings for initial configuration.
This function initializes the converter configuration structure with an available settings. The default values are:
config | Pointer to configuration structure. |
brief Gets an available pre-defined settings for initial configuration.
This function initializes the converter configuration structure with an available settings. The default values are: code config->enableInDozeMode = true; config->conversionAverageMode = kLPADC_ConversionAverage1; config->enableAnalogPreliminary = false; config->powerUpDelay = 0x80; config->referenceVoltageSource = kLPADC_ReferenceVoltageAlt1; config->powerLevelMode = kLPADC_PowerLevelAlt1; config->triggerPriorityPolicy = kLPADC_TriggerPriorityPreemptImmediately; config->enableConvPause = false; config->convPauseDelay = 0U; config->FIFO0Watermark = 0U; config->FIFO1Watermark = 0U; config->FIFOWatermark = 0U; endcode param config Pointer to configuration structure.
void LPADC_GetDefaultConvCommandConfig | ( | lpadc_conv_command_config_t * | config | ) |
Gets an available pre-defined settings for conversion command's configuration.
This function initializes the conversion command's configuration structure with an available settings. The default values are:
config | Pointer to configuration structure. |
brief Gets an available pre-defined settings for conversion command's configuration.
This function initializes the conversion command's configuration structure with an available settings. The default values are: code config->sampleScaleMode = kLPADC_SampleFullScale; config->channelBScaleMode = kLPADC_SampleFullScale; config->channelSampleMode = kLPADC_SampleChannelSingleEndSideA; config->channelNumber = 0U; config ->alternateChannelNumber = 0U; config->chainedNextCmdNumber = 0U; config->enableAutoChannelIncrement = false; config->loopCount = 0U; config->hardwareAverageMode = kLPADC_HardwareAverageCount1; config->sampleTimeMode = kLPADC_SampleTimeADCK3; config->hardwareCompareMode = kLPADC_HardwareCompareDisabled; config->hardwareCompareValueHigh = 0U; config->hardwareCompareValueLow = 0U; config->conversionResolutionMode = kLPADC_ConversionResolutionStandard; config->enableWaitTrigger = false; config->enableChannelB = false; endcode param config Pointer to configuration structure.
void LPADC_GetDefaultConvTriggerConfig | ( | lpadc_conv_trigger_config_t * | config | ) |
Gets an available pre-defined settings for trigger's configuration.
This function initializes the trigger's configuration structure with an available settings. The default values are:
config | Pointer to configuration structure. |
brief Gets an available pre-defined settings for trigger's configuration.
This function initializes the trigger's configuration structure with an available settings. The default values are: code config->commandIdSource = 0U; config->loopCountIndex = 0U; config->triggerIdSource = 0U; config->enableHardwareTrigger = false; config->channelAFIFOSelect = 0U; config->channelBFIFOSelect = 0U; endcode param config Pointer to configuration structure.
void LPADC_Init | ( | ADC_Type * | base, |
const lpadc_config_t * | config | ||
) |
Initializes the LPADC module.
base | LPADC peripheral base address. |
config | Pointer to configuration structure. See "lpadc_config_t". |
brief Initializes the LPADC module.
param base LPADC peripheral base address. param config Pointer to configuration structure. See "lpadc_config_t".
void LPADC_SetConvCommandConfig | ( | ADC_Type * | base, |
uint32_t | commandId, | ||
const lpadc_conv_command_config_t * | config | ||
) |
Configure conversion command.
base | LPADC peripheral base address. |
commandId | ID for command in command buffer. Typically, the available value range is 1 - 15. |
config | Pointer to configuration structure. See to lpadc_conv_command_config_t. |
brief Configure conversion command.
param base LPADC peripheral base address. param commandId ID for command in command buffer. Typically, the available value range is 1 - 15. param config Pointer to configuration structure. See to lpadc_conv_command_config_t.
void LPADC_SetConvTriggerConfig | ( | ADC_Type * | base, |
uint32_t | triggerId, | ||
const lpadc_conv_trigger_config_t * | config | ||
) |
Configure the conversion trigger source.
Each programmable trigger can launch the conversion command in command buffer.
base | LPADC peripheral base address. |
triggerId | ID for each trigger. Typically, the available value range is from 0. |
config | Pointer to configuration structure. See to lpadc_conv_trigger_config_t. |
brief Configure the conversion trigger source.
Each programmable trigger can launch the conversion command in command buffer.
param base LPADC peripheral base address. param triggerId ID for each trigger. Typically, the available value range is from 0. param config Pointer to configuration structure. See to lpadc_conv_trigger_config_t.
uint32_t lpadc_conv_command_config_t::chainedNextCommandNumber |
Selects the next command to be executed after this command completes. 1-15 is available, 0 is to terminate the chain after this command.
uint32_t lpadc_conv_command_config_t::channelNumber |
Channel number, select the channel or channel pair.
uint32_t lpadc_conv_result_t::commandIdSource |
Indicate the command buffer being executed that generated this result.
uint32_t lpadc_config_t::convPauseDelay |
Controls the duration of pausing during command execution sequencing. The pause delay is a count of (convPauseDelay*4) ADCK cycles. Only available when ADC pausing function is enabled. The available value range is in 9-bit.
uint16_t lpadc_conv_result_t::convValue |
Data result.
uint32_t lpadc_conv_trigger_config_t::delayPower |
Select the trigger delay duration to wait at the start of servicing a trigger event. When this field is clear, then no delay is incurred. When this field is set to a non-zero value, the duration for the delay is 2^delayPower ADCK cycles. The available value range is 4-bit.
bool lpadc_config_t::enableAnalogPreliminary |
ADC analog circuits are pre-enabled and ready to execute conversions without startup delays(at the cost of higher DC current consumption).
bool lpadc_conv_command_config_t::enableAutoChannelIncrement |
Loop with increment: when disabled, the "loopCount" field selects the number of times the selected channel is converted consecutively; when enabled, the "loopCount" field defines how many consecutive channels are converted as part of the command execution.
bool lpadc_config_t::enableConvPause |
Enables the ADC pausing function. When enabled, a programmable delay is inserted during command execution sequencing between LOOP iterations, between commands in a sequence, and between conversions when command is executing in "Compare Until True" configuration.
bool lpadc_conv_trigger_config_t::enableHardwareTrigger |
Enable hardware trigger source to initiate conversion on the rising edge of the input trigger source or not. THe software trigger is always available.
bool lpadc_config_t::enableInDozeMode |
Control system transition to Stop and Wait power modes while ADC is converting. When enabled in Doze mode, immediate entries to Wait or Stop are allowed. When disabled, the ADC will wait for the current averaging iteration/FIFO storage to complete before acknowledging stop or wait mode entry.
uint32_t lpadc_config_t::FIFOWatermark |
FIFOWatermark is a programmable threshold setting. When the number of datawords stored in the ADC Result FIFO is greater than the value in this field, the ready flag would be asserted to indicate stored data has reached the programmable threshold.
lpadc_hardware_average_mode_t lpadc_conv_command_config_t::hardwareAverageMode |
Hardware average selection.
lpadc_hardware_compare_mode_t lpadc_conv_command_config_t::hardwareCompareMode |
Hardware compare selection.
uint32_t lpadc_conv_command_config_t::hardwareCompareValueHigh |
Compare Value High. The available value range is in 16-bit.
uint32_t lpadc_conv_command_config_t::hardwareCompareValueLow |
Compare Value Low. The available value range is in 16-bit.
uint32_t lpadc_conv_command_config_t::loopCount |
Selects how many times this command executes before finish and transition to the next command or Idle state. Command executes LOOP+1 times. 0-15 is available.
uint32_t lpadc_conv_result_t::loopCountIndex |
Indicate the loop count value during command execution that generated this result.
lpadc_power_level_mode_t lpadc_config_t::powerLevelMode |
Power Configuration Selection.
uint32_t lpadc_config_t::powerUpDelay |
When the analog circuits are not pre-enabled, the ADC analog circuits are only powered while the ADC is active and there is a counted delay defined by this field after an initial trigger transitions the ADC from its Idle state to allow time for the analog circuits to stabilize. The startup delay count of (powerUpDelay * 4) ADCK cycles must result in a longer delay than the analog startup time.
uint32_t lpadc_conv_trigger_config_t::priority |
Sets the priority of the associated trigger source. If two or more triggers have the same priority level setting, the lower order trigger event has the higher priority. The lower value for this field is for the higher priority, the available value range is 1-bit.
lpadc_reference_voltage_source_t lpadc_config_t::referenceVoltageSource |
Selects the voltage reference high used for conversions.
lpadc_sample_channel_mode_t lpadc_conv_command_config_t::sampleChannelMode |
Channel sample mode.
lpadc_sample_time_mode_t lpadc_conv_command_config_t::sampleTimeMode |
Sample time selection.
uint32_t lpadc_conv_trigger_config_t::targetCommandId |
Select the command from command buffer to execute upon detect of the associated trigger event.
uint32_t lpadc_conv_result_t::triggerIdSource |
Indicate the trigger source that initiated a conversion and generated this result.
lpadc_trigger_priority_policy_t lpadc_config_t::triggerPriorityPolicy |
Control how higher priority triggers are handled, see to lpadc_trigger_priority_policy_t.