ADCXX1C ADC device driver

I2C Analog-to-Digital Converter device driver.

This driver works with adc081c, adc101c and adc121c versions.

This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.

enum @99
ADCXX1C_RES_8BITS = 8
8 bits resolution (ADC081C family)
ADCXX1C_RES_10BITS = 10
10 bits resolution (ADC101C family)
ADCXX1C_RES_12BITS = 12
12 bits resolution (ADC121C family)
enum @100
ADCXX1C_CYCLE_DISABLED = 0
No cycle conversion.
ADCXX1C_CYCLE_32
Conversion cycle = Tconvert x 32.
ADCXX1C_CYCLE_64
Conversion cycle = Tconvert x 64.
ADCXX1C_CYCLE_128
Conversion cycle = Tconvert x 128.
ADCXX1C_CYCLE_256
Conversion cycle = Tconvert x 256.
ADCXX1C_CYCLE_512
Conversion cycle = Tconvert x 512.
ADCXX1C_CYCLE_1024
Conversion cycle = Tconvert x 1024.
ADCXX1C_CYCLE_2048
Conversion cycle = Tconvert x 2048.
enum @101
ADCXX1C_OK =  0
everything was fine
ADCXX1C_NOI2C = -1
I2C communication failed.
ADCXX1C_NODEV = -2
no ADCXX1C device found on the bus
ADCXX1C_NODATA = -3
no data available
struct adcxx1c_params adcxx1c_params_t

ADCxx1C params.

void(* adcxx1c_cb_t()

ADCxx1C alert callback.

struct adcxx1c adcxx1c_t

ADCxx1C device descriptor.

int adcxx1c_init(adcxx1c.h::adcxx1c_t * dev, const adcxx1c.h::adcxx1c_params_t * params)

Initialize an ADCxx1C ADC device.

Parameters

dev:device descriptor
params:device configuration

Return values

  • zero on successful initialization, non zero on error
int adcxx1c_read_raw(const adcxx1c.h::adcxx1c_t * dev, int16_t * raw)

Read a raw ADC value.

Parameters

dev:device descriptor
raw:read value

Return values

  • zero on successful read, non zero on error
int adcxx1c_enable_alert(adcxx1c.h::adcxx1c_t * dev, adcxx1c.h::adcxx1c_cb_t cb, void * arg)

Enable alert interrupt.

Parameters

dev:device descriptor
cb:callback called when the alert fires
arg:callback argument

Return values

  • zero on success, non zero on error
int adcxx1c_set_alert_parameters(const adcxx1c.h::adcxx1c_t * dev, int16_t low_limit, int16_t high_limit, int16_t hysteresis)

Set the alert parameters.

Parameters

dev:device descriptor
low_limit:alert low limit
high_limit:alert high limit
hysteresis:alert hysteresis

Return values

  • zero on success, non zero on error
ADCXX1C_I2C_ADDRESS

ADCxx1C default address (ADCxx1C021 address)

1
(0x54)
ADCXX1C_RES_DEFAULT

ADC default resolution for device variants.

1
(-1)
struct adcxx1c_params

ADCxx1C params.

i2c.h::i2c_t i2c

i2c device

uint8_t addr

i2c address

uint8_t bits

resolution

uint8_t cycle

conversion interval

gpio.h::gpio_t alert_pin

alert pin (GPIO_UNDEF if not connected)

int16_t low_limit

alert low value

int16_t high_limit

alert high value

int16_t hysteresis

alert hysteresis

struct adcxx1c

ADCxx1C device descriptor.

adcxx1c.h::adcxx1c_params_t params

device driver configuration

adcxx1c.h::adcxx1c_cb_t cb

alert callback

void * arg

alert callback param