Analog to Digital Converter#
Introduction#
ADC stands for Analog-to-Digital Converter. An ADC is a peripheral or component of a controller that transforms analog signals (continuous voltage levels) into digital data (discrete binary values) that the controller can handle.
This translation allows the controller to communicate with analog sensors or signals, such as temperature sensors, light sensors, or analog joysticks, in digital systems or apps.
Analog-to-Digital Converters (ADCs) are integral components in controllers across various applications. Here are some common use cases:
Sensor Data Acquisition
Audio Processing
Instrumentation and Measurement
Motor Control
Battery Monitoring and Management
Feedback Control Systems etc.,
Configuration#
Configuring an Analog-to-Digital Converter (ADC) typically involves several parameters and settings to ensure proper operation and accurate conversion of analog signals into digital data. The specific configuration details may vary depending on the ADC hardware and the requirements of your application, but here are some few configurable items:
To configure the number of ADC channels and Mode of ADC operation first set the appropriate values into this structure sl_adc_config_t, and then use this structure to use the API sl_si91x_adc_set_channel_configuration(), which will configure the number of channels.
To configure the ADC channel such as input type sl_adc_input_type_typedef_t, number of samples(1-1023), Sampling Rate (1-2500000 samples per second) will configured through sl_adc_channel_config_t, once fill the structure need call the API : sl_si91x_adc_set_channel_configuration().
For more information on configuring available parameters refer to the respective peripheral example readme document.
Usage#
The common ADC functions can be used after the ADC Structures are specified, passing an instance of sl_adc_config_t and sl_adc_channel_config_t. These functions will initiate and configure the ADC below, which is the flow for implementation.
Modules#
Enumerations#
Enumeration for ADC input type.
Enumeration for ADC operation mode.
Enumeration for ADC DMA type.
Enumeration for ADC multiple channel selection.
Enumeration for ADC channel.
Typedefs#
Renamed ADC channel configuration structure.
Renamed ADC configuration structure.
Renamed ADC internal configuration structure.
Typedef for user supplied callback function, which is called when ADC sample completes.
Variables#
Threshold_1.
Threshold_2.
Threshold_1 condition like Equal, Grater, Lesser.
Threshold_2 condition like Equal, Grater, Lesser.
Number of channel enable.
AEMPTY Threshold.
AFULL Threshold.
Internal or External DMA.
Division Factor.
SoC PLL clock frequency.
SoC PLL reference clock frequency.
Release version number.
sqa version number
dev version number
Functions#
Set the clock for the ADC peripheral and configure the PLL clock to the value specified by the user in the clock configuration structure.
Initialize the ADC peripheral.
Configures the ADC channel parameters.
Register the user callback function.
Un-register the user callback function.
Configure the ADC sampling rate for the ADC channels.
Configure the ADC ping and pong memory location and length.
Enable ping pong for the corresponding ADC channels.
Disable ping pong for the corresponding ADC channels.
Enable DMA for the corresponding ADC channels.
Disable DMA for the corresponding ADC channels.
This API will configure the ADC in Static Mode.
Configure the ADC in FIFO Mode.
This API will enables the ADC channel.
Disable the ADC channel.
This API will Power On and off for ADC.
Enable or Disable the Noise averaging mode to ADC.
This API will enable the temperature sensor.
Configuring ADC fifo threshold.
Configure the ADC threshold to compare threshold value with ADC data.
Read the ADC samples data for FIFO mode of operation.
This API will read the ADC sampled data for static mode of operation.
To get the channel sampling rate value which is configured to ADC.
Uninitialize the ADC.
Enable the signal to ADC controller and enable the dynamic mode for FIFO mode of ADC operation.
Stop the signal for ADC controller and disable the dynamic mode if FIFO mode of ADC operation.
Get the ADC version.
Macros#
Enumeration Documentation#
sl_adc_input_type_typedef_t#
sl_adc_input_type_typedef_t
Enumeration for ADC input type.
Enumerator | |
---|---|
SL_ADC_SINGLE_ENDED | Input type single ended. |
SL_ADC_DIFFERENTIAL | Input type differential. |
SL_ADC_INPUT_TYPE_LAST | Last member of enum for validation. |
67
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_operation_mode_typedef_t#
sl_adc_operation_mode_typedef_t
Enumeration for ADC operation mode.
Enumerator | |
---|---|
SL_ADC_FIFO_MODE | operation mode as fifo mode |
SL_ADC_STATIC_MODE | operation mode as static mode |
SL_ADC_OPERATION_MODE_LAST | Last member of enum for validation. |
74
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_dma_type_typedef_t#
sl_adc_dma_type_typedef_t
Enumeration for ADC DMA type.
Enumerator | |
---|---|
SL_ADC_INTERNAL_DMA | Internal DMA type. |
SL_ADC_EXTERNAL_DMA | External DMA type. |
SL_ADC_DMA_TYPE_LAST | Last member of enum for validation. |
81
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_channel_type_typedef_t#
sl_adc_channel_type_typedef_t
Enumeration for ADC multiple channel selection.
Enumerator | |
---|---|
SL_ADC_SINGLE_CHNL | Dynamic mode disable. |
SL_ADC_MULTI_CHNL | Dynamic mode enable. |
SL_ADC_CHANNEL_TYPE_LAST | Last member of enum for validation. |
88
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_channel_id_t#
sl_adc_channel_id_t
Enumeration for ADC channel.
Enumerator | |
---|---|
SL_ADC_CHANNEL_1 | ADC channel 1. |
SL_ADC_CHANNEL_2 | ADC channel 2. |
SL_ADC_CHANNEL_3 | ADC channel 3. |
SL_ADC_CHANNEL_4 | ADC channel 4. |
SL_ADC_CHANNEL_5 | ADC channel 5. |
SL_ADC_CHANNEL_6 | ADC channel 6. |
SL_ADC_CHANNEL_7 | ADC channel 7. |
SL_ADC_CHANNEL_8 | ADC channel 8. |
SL_ADC_CHANNEL_9 | ADC channel 9. |
SL_ADC_CHANNEL_10 | ADC channel 10. |
SL_ADC_CHANNEL_11 | ADC channel 11. |
SL_ADC_CHANNEL_12 | ADC channel 12. |
SL_ADC_CHANNEL_13 | ADC channel 13. |
SL_ADC_CHANNEL_14 | ADC channel 14. |
SL_ADC_CHANNEL_15 | ADC channel 15. |
SL_ADC_CHANNEL_16 | ADC channel 16. |
95
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
Typedef Documentation#
sl_adc_channel_config_t#
typedef adc_ch_config_t sl_adc_channel_config_t
Renamed ADC channel configuration structure.
48
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_config_t#
typedef adc_config_t sl_adc_config_t
Renamed ADC configuration structure.
49
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_internal_config_t#
typedef adc_inter_config_t sl_adc_internal_config_t
Renamed ADC internal configuration structure.
50
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_adc_callback_t#
typedef void(* sl_adc_callback_t) (uint8_t channel, uint8_t event) )(uint8_t channel, uint8_t event)
Typedef for user supplied callback function, which is called when ADC sample completes.
[in] | channel | ADC channel number |
[in] | event | ADC event for different interrupt. |
58
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
Variable Documentation#
threshold1#
uint16_t sl_adc_threshold_config_t::threshold1
Threshold_1.
116
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
threshold2#
uint16_t sl_adc_threshold_config_t::threshold2
Threshold_2.
117
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
threshold1_cond#
uint8_t* sl_adc_threshold_config_t::threshold1_cond
Threshold_1 condition like Equal, Grater, Lesser.
118
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
threshold2_cond#
uint8_t* sl_adc_threshold_config_t::threshold2_cond
Threshold_2 condition like Equal, Grater, Lesser.
119
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
range#
uint8_t sl_adc_threshold_config_t::range
120
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
num_of_channel_en#
uint8_t sl_adc_fifo_thrld_config_t::num_of_channel_en
Number of channel enable.
125
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
a_empty_threshold#
uint8_t sl_adc_fifo_thrld_config_t::a_empty_threshold
AEMPTY Threshold.
126
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
a_full_threshold#
uint8_t sl_adc_fifo_thrld_config_t::a_full_threshold
AFULL Threshold.
127
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
dma_type#
uint8_t sl_adc_fifo_thrld_config_t::dma_type
Internal or External DMA.
128
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
division_factor#
uint16_t sl_adc_clock_config_t::division_factor
Division Factor.
133
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
soc_pll_clock#
uint32_t sl_adc_clock_config_t::soc_pll_clock
SoC PLL clock frequency.
134
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
soc_pll_reference_clock#
uint32_t sl_adc_clock_config_t::soc_pll_reference_clock
SoC PLL reference clock frequency.
135
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
release#
uint8_t sl_adc_version_t::release
Release version number.
140
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
major#
uint8_t sl_adc_version_t::major
sqa version number
141
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
minor#
uint8_t sl_adc_version_t::minor
dev version number
142
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
Function Documentation#
sl_si91x_adc_configure_clock#
sl_status_t sl_si91x_adc_configure_clock (sl_adc_clock_config_t * clock_configuration)
Set the clock for the ADC peripheral and configure the PLL clock to the value specified by the user in the clock configuration structure.
[in] | clock_configuration | : clock structure variables ( sl_adc_clock_config_t) |
This API will set the clock for ADC controller.
The ADC clock configurations are listed below:
soc_pll_clock (Frequency range from 1 MHZ to 180 MHz).
soc_pll_reference_clock (Frequency range from 15MHZ to 65 MHz).
division_factor (0 to 63). Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_FAIL (0x0001) - The function is failed
SL_STATUS_NOT_INITIALIZED (0x0011) - Clock is not initialized
164
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_init#
sl_status_t sl_si91x_adc_init (sl_adc_channel_config_t adc_channel_config, sl_adc_config_t adc_config, float vref_value)
Initialize the ADC peripheral.
[in] | adc_channel_config | : ADC channels configuration structure variable |
[in] | adc_config | : ADC operation configuration structure variable |
[in] | vref_value | : Reference voltage(reange from 1.8v to 3.6v) |
The ADC clock source sets and passes the Vref value to set the reference voltage for the ADC, based on the sampling rate. Power on the ADC block and calibrate the ADC offset and gain.
Pre-condition:
sl_si91x_adc_configure_clock - Only for FIFO mode on M4 state
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_BUSY (0x0004) - The function is already active
SL_STATUS_INVALID_COUNT (0x002B) - Mismatch count
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
183
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_set_channel_configuration#
sl_status_t sl_si91x_adc_set_channel_configuration (sl_adc_channel_config_t adc_channel_config, sl_adc_config_t adc_config)
Configures the ADC channel parameters.
[in] | adc_channel_config | : ADC channels configuration structure variable. |
[in] | adc_config | : ADC operation configuration structure variable. |
The configurations are listed below:
Number of channel
ADC operation mode (Static mode/FIFO mode)
Sample Length
Input Type (Single ended/ differential type)
Sampling Rate (1 - 2.5 Ms/Sec).
Pre-conditions:
sl_si91x_adc_initReturns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
Note
if Static mode is configured, sample length should be '1'.
206
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_register_event_callback#
sl_status_t sl_si91x_adc_register_event_callback (sl_adc_callback_t callback_event)
Register the user callback function.
[in] | callback_event | Pointer to the function which needs to be called at the time of interrupt |
When an event occurs, the function with the specified parameter is invoked. To unregister the callback, use the sl_si91x_adc_unregister_event_callback function before invoking this function again; otherwise, the error code SL_STATUS_BUSY will be returned.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_NULL_POINTER (0x0022) - The parameter is a null pointer
SL_STATUS_BUSY (0x0004) - Driver is busy
224
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_unregister_event_callback#
void sl_si91x_adc_unregister_event_callback (void )
Un-register the user callback function.
N/A |
It is mandatory to call this function before registering the callback again.
Pre-condition:
Returns
none
234
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_configure_channel_sampling_rate#
sl_status_t sl_si91x_adc_configure_channel_sampling_rate (sl_adc_internal_config_t adc_internal_config, uint8_t channel_num)
Configure the ADC sampling rate for the ADC channels.
[in] | adc_internal_config | : Channel offset and frequency for each channel to set sampling rate. |
[in] | channel_num | : Channel number |
It adjusts the channel offset and frequency for each channel to determine the sample rate. To meet the Nyquist sampling rate criteria, the channel swallow factor must be not less than '3'.
Returns
sl_status_t : Returns 'SL_STATUS_OK' on successful execution.
248
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_configure_ping_pong_memory_address#
sl_status_t sl_si91x_adc_configure_ping_pong_memory_address (sl_adc_internal_config_t adc_internal_config, uint8_t channel_num)
Configure the ADC ping and pong memory location and length.
[in] | adc_internal_config | : ADC internal trigger configuration structure variable. |
[in] | channel_num | : Channel number |
Configure the ping and pong memory locations, as well as the ping and pong memory lengths. It is only applicable for the FIFO mode of ADC operation. FIFO mode has a dual-buffer cyclic mode that prevents data loss when the buffer is full. In dual buffer cyclic mode, if the Ping buffer for a given channel is full, incoming sampled data is written into the Pong buffer, allowing the controller to read back samples from the Ping buffer during this period. This explains why each channel has two start addresses, two buffer lengths, and two valid signals.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
270
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_enable_ping_pong#
sl_status_t sl_si91x_adc_enable_ping_pong (uint8_t channel_num)
Enable ping pong for the corresponding ADC channels.
[in] | channel_num | : Channel number |
Note
This will be applicable only for FIFO mode of ADC operation.
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
286
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_disable_ping_pong#
sl_status_t sl_si91x_adc_disable_ping_pong (uint8_t channel_num)
Disable ping pong for the corresponding ADC channels.
[in] | channel_num | : Channel number |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
302
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_internal_per_channel_dma_enable#
sl_status_t sl_si91x_adc_internal_per_channel_dma_enable (uint8_t channel_num)
Enable DMA for the corresponding ADC channels.
[in] | channel_num | : Channel number |
Note
This will be applicable only for FIFO mode of ADC operation.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
316
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_internal_per_channel_dma_disable#
sl_status_t sl_si91x_adc_internal_per_channel_dma_disable (uint8_t channel_num)
Disable DMA for the corresponding ADC channels.
[in] | channel_num | : Channel number |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
332
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_configure_static_mode#
sl_status_t sl_si91x_adc_configure_static_mode (sl_adc_channel_config_t adc_channel_config, uint8_t channel_num)
This API will configure the ADC in Static Mode.
[in] | adc_channel_config | : ADC channels configuration structure variable. |
[in] | channel_num | : Channel number |
It could be configured to choose positive and negative input channels, as well as input type. Note
This will be applicable only for static mode of ADC operation.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
349
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_configure_fifo_mode#
sl_status_t sl_si91x_adc_configure_fifo_mode (sl_adc_channel_config_t adc_channel_config, uint8_t channel_num)
Configure the ADC in FIFO Mode.
[in] | adc_channel_config | : ADC channels configuration structure variable. |
[in] | channel_num | : Channel number |
ADC data input will be sampled and written to the ADC FIFO in this mode. Note
This will be applicable only for FIFO mode of ADC operation.
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
370
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_channel_enable#
sl_status_t sl_si91x_adc_channel_enable (uint8_t channel_num)
This API will enables the ADC channel.
[in] | channel_num | : Channel number |
Data will be sampled from ADC only when corresponding channel is enabled.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
384
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_channel_disable#
sl_status_t sl_si91x_adc_channel_disable (uint8_t channel_num)
Disable the ADC channel.
[in] | channel_num | : Channel number |
Data sampling will be stoped when corresponding channel is disabled.
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
400
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_set_power_mode#
sl_status_t sl_si91x_adc_set_power_mode (POWER_STATE state)
This API will Power On and off for ADC.
[in] | state | : ADC_POWER_ON - To powerup adc powergates, ADC_POWER_OFF - To powerdown adc powergates ( POWER_STATE ) |
Pre-conditions:
Returns
status 0 if successful,
SL_STATUS_OK (0x0000) - Success
413
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_set_noise_average_mode#
sl_status_t sl_si91x_adc_set_noise_average_mode (boolean_t state)
Enable or Disable the Noise averaging mode to ADC.
[in] | state | : 1 - To enable bypass the noise averaging mode, 0 - To disable bypass the noise averaging mode |
If bypass noise averaging is enabled, the sampled data will be more accurate. If bypass the noise averaging disable would cause '1' additional clock cycle Latency.
Returns
Returns 'SL_STATUS_OK' on successful execution.
427
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_temperature_sensor_enable#
sl_status_t sl_si91x_adc_temperature_sensor_enable (void )
This API will enable the temperature sensor.
N/A |
Enable BJT based Temperature sensor as an input to ADC. Note
- Operation mode of ADC should be Static for this input selection.
If the ADC input sample is obtained from a temperature sensor, the positive input selection value must be '23'.
Returns
Returns 'SL_STATUS_OK' on successful execution.
441
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_fifo_threshold_configuration#
sl_status_t sl_si91x_adc_fifo_threshold_configuration (sl_adc_config_t adc_config, sl_adc_fifo_thrld_config_t adc_fifo_threshold)
Configuring ADC fifo threshold.
[in] | adc_config | : ADC operation configuration structure variable. |
[in] | adc_fifo_threshold | : ADC fifo structure variable like an empty fifo, a full fifo threshold level. ( sl_adc_fifo_thrld_config_t ) |
The maximum FIFO depth is 16, and the threshold value may be configured.
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
458
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_threshold_configuration#
sl_status_t sl_si91x_adc_threshold_configuration (sl_adc_threshold_config_t adc_threshold)
Configure the ADC threshold to compare threshold value with ADC data.
[in] | adc_threshold | : ADC threshold configuration structure variables. |
Note
This API applies when the ADC mode of operation is static.
Returns
Returns 'SL_STATUS_OK' on successful execution.
471
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_read_data#
sl_status_t sl_si91x_adc_read_data (sl_adc_channel_config_t adcchconfig, uint8_t channel_num)
Read the ADC samples data for FIFO mode of operation.
[in] | adcchconfig | : ADC channels configuration structure variable. |
[in] | channel_num | : Channel number |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
488
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_read_data_static#
sl_status_t sl_si91x_adc_read_data_static (sl_adc_channel_config_t adc_channel_config, sl_adc_config_t adc_config, uint16_t * adc_value)
This API will read the ADC sampled data for static mode of operation.
[in] | adc_channel_config | : ADC channels configuration structure variable. |
[in] | adc_config | : ADC operation configuration structure variable. |
[out] | adc_value | : Store the reading data on adc_value. |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
SL_STATUS_INVALID_RANGE (0x0028) - Mismatch Range
506
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_get_sampling_rate#
uint32_t sl_si91x_adc_get_sampling_rate (uint8_t channel_num)
To get the channel sampling rate value which is configured to ADC.
[in] | channel_num | : Channel number |
Pre-conditions:
Returns
Returns sampling rate what it get from register
520
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_deinit#
sl_status_t sl_si91x_adc_deinit (sl_adc_config_t adc_config)
Uninitialize the ADC.
[in] | adc_config | : ADC operation configuration structure variable. |
If the DMA (Direct Memory Access) is enabled, it also uninitializes the DMA. It will power down to ADC block and disable the dynamic mode if FIFO mode of ADC operation.
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
535
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_start#
sl_status_t sl_si91x_adc_start (sl_adc_config_t adc_config)
Enable the signal to ADC controller and enable the dynamic mode for FIFO mode of ADC operation.
[in] | adc_config | : ADC operation configuration structure variable. |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
550
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_stop#
sl_status_t sl_si91x_adc_stop (sl_adc_config_t adc_config)
Stop the signal for ADC controller and disable the dynamic mode if FIFO mode of ADC operation.
[in] | adc_config | : ADC operation configuration structure variable. |
Pre-conditions:
Returns
status 0 if successful, else error code as follow
SL_STATUS_OK (0x0000) - Success
SL_STATUS_INVALID_PARAMETER (0x0021) - Parameters are invalid
566
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
sl_si91x_adc_get_version#
sl_adc_version_t sl_si91x_adc_get_version (void )
Get the ADC version.
N/A |
Note
It returns the API version of ADC.
Returns
(sl_adc_version_t) type structure
574
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
Macro Definition Documentation#
SL_INTERNAL_DMA#
#define SL_INTERNAL_DMAValue:
INTERNAL_DMA
62
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
SL_ADC_STATIC_MODE_EVENT#
#define SL_ADC_STATIC_MODE_EVENTValue:
ADC_STATIC_MODE_CALLBACK
63
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h
SIGN_BIT#
#define SIGN_BITValue:
BIT(11)
64
of file components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_adc.h