Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Analog-to-Digital Converter (ADC)

Defines a driver to facilitate interfacing with the Analog-to-Digital Converter (ADC) driver. More...

Typedefs

typedef enum ADC_INPUT_CHANNEL_SEL ADC_INPUT_CHANNEL_SEL
 Supported ADC input channel selection.
 
typedef enum ADC_POWER_TYPE ADC_POWER_TYPE
 ADC power type.
 
typedef enum ADC_INPUT_RANGE_SEL ADC_INPUT_RANGE_SEL
 input voltage range selection
 

Enumerations

enum  ADC_INPUT_CHANNEL_SEL {
  ADC_INPUT_P17 = 0x0, ADC_INPUT_P16 = 0x1, ADC_INPUT_P15 = 0x2, ADC_INPUT_P14 = 0x3,
  ADC_INPUT_P13 = 0x4, ADC_INPUT_P12 = 0x5, ADC_INPUT_P11 = 0x6, ADC_INPUT_P10 = 0x7,
  ADC_INPUT_P9 = 0x8, ADC_INPUT_P8 = 0x9, ADC_INPUT_P1 = 0xA, ADC_INPUT_P0 = 0xB,
  ADC_INPUT_VDDIO = 0xC, ADC_INPUT_VDD_CORE = 0xD, ADC_INPUT_ADC_BGREF = 0xE, ADC_INPUT_ADC_REFGND = 0xF,
  ADC_INPUT_P38 = 0x10, ADC_INPUT_P37 = 0x11, ADC_INPUT_P36 = 0x12, ADC_INPUT_P35 = 0x13,
  ADC_INPUT_P34 = 0x14, ADC_INPUT_P33 = 0x15, ADC_INPUT_P32 = 0x16, ADC_INPUT_P31 = 0x17,
  ADC_INPUT_P30 = 0x18, ADC_INPUT_P29 = 0x19, ADC_INPUT_P28 = 0x1A, ADC_INPUT_P23 = 0x1B,
  ADC_INPUT_P22 = 0x1C, ADC_INPUT_P21 = 0x1D, ADC_INPUT_P19 = 0x1E, ADC_INPUT_P18 = 0x1F,
  ADC_INPUT_CHANNEL_MASK = 0x1f
}
 Supported ADC input channel selection.
 
enum  ADC_POWER_TYPE { ADC_POWER_DOWN = 1, ADC_POWER_UP = 0 }
 ADC power type.
 
enum  ADC_INPUT_RANGE_SEL { ADC_RANGE_0_3P6V = 0, ADC_RANGE_0_1P8V = 1 }
 input voltage range selection
 

Functions

void wiced_hal_adc_init (void)
 Initialize the ADC hardware to its default state. More...
 
void wiced_hal_adc_set_input_range (ADC_INPUT_RANGE_SEL rangeIdx)
 Calibrate and set the input voltage range expected for the ADC hardware. More...
 
int16_t wiced_hal_adc_read_raw_sample (ADC_INPUT_CHANNEL_SEL channel, uint8_t avgCnt)
 Read the raw ADC register value for the given channel. More...
 
uint32_t wiced_hal_adc_read_voltage (ADC_INPUT_CHANNEL_SEL channel)
 Read the ADC voltage value for the given channel. More...
 

Detailed Description

Defines a driver to facilitate interfacing with the Analog-to-Digital Converter (ADC) driver.

Use this driver to measure a DC voltage via a GPIO pin. Voltage measurement values are reported in millivolts (mV).

Note that the ADC channels do not correspond directly to the GPIO pin numbering convention (e.g. ADC channel 15 is tied to GPIO P18, etc). Please reference the Kit Guide or HW User Manual for your device for more information regarding your specific platform.

Function Documentation

void wiced_hal_adc_init ( void  )

Initialize the ADC hardware to its default state.

Parameters
none
Returns
none
int16_t wiced_hal_adc_read_raw_sample ( ADC_INPUT_CHANNEL_SEL  channel,
uint8_t  avgCnt 
)

Read the raw ADC register value for the given channel.

The value returned here is direct from the register.

Parameters
channel- The input channel that corresponds to a GPIO pin.
avgCnt- Read adc raw avgCnt+4 times, and choose the middle avgCnt times to calculate average values
Returns
Raw digital value read from the hardware register.
uint32_t wiced_hal_adc_read_voltage ( ADC_INPUT_CHANNEL_SEL  channel)

Read the ADC voltage value for the given channel.

The value returned here is converted to a voltage value from the register.

Parameters
channel- The input channel that corresponds to a GPIO pin.
Returns
Converted digital voltage value.
void wiced_hal_adc_set_input_range ( ADC_INPUT_RANGE_SEL  rangeIdx)

Calibrate and set the input voltage range expected for the ADC hardware.

Parameters
range_idx- 0 to 3.6v(0) or 0 to 1.8v(1).
Returns
none