ADS101x/111x ADC device driver

I2C Analog-to-Digital Converter device driver.

This driver works with ADS1013-5 and ADS1113-5.

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

enum @102
ADS101X_OK =  0
everything was fine
ADS101X_NOI2C = -1
I2C communication failed.
ADS101X_NODEV = -2
no ADS101X device found on the bus
ADS101X_NODATA = -3
no data available
struct ads101x_params ads101x_params_t

ADS101x/111x params.

struct ads101x_alert_params ads101x_alert_params_t

ADS101x/111x alert params.

struct ads101x ads101x_t

ADS101x/111x device descriptor.

void(* ads101x_alert_cb_t()

ADS101x/111x alert callback.

struct ads101x_alert ads101x_alert_t

ADS101x/111x alert device descriptor.

int ads101x_init(ads101x.h::ads101x_t * dev, const ads101x.h::ads101x_params_t * params)

Initialize an ADS101x/111x ADC device (ADC only)

Parameters

dev:device descriptor
params:device configuration

Return values

  • zero on successful initialization, non zero on error
int ads101x_alert_init(ads101x.h::ads101x_alert_t * dev, const ads101x.h::ads101x_alert_params_t * params)

Initialize an ADS101x/111x alert device.

Parameters

dev:device descriptor
params:device configuration

Return values

  • zero on successful initialization, non zero on error
int ads101x_set_mux_gain(const ads101x.h::ads101x_t * dev, uint8_t mux_gain)

Set mux and gain.

Mux settings have no effect on ADS1013-4 and ADS1113-4. Gain settings have no effect on ADS1013 and ADS1113.

Parameters

dev:device descriptor
mux_gain:mux and gain boolean values

Return values

  • zero on successful read, non zero on error
int ads101x_read_raw(const ads101x.h::ads101x_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 ads101x_enable_alert(ads101x.h::ads101x_alert_t * dev, ads101x.h::ads101x_alert_cb_t cb, void * arg)

Enable alert interrupt.

Alert settings have no effect on ADS1013 and ADS1113.

Parameters

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

Return values

  • zero on success, non zero on error
int ads101x_set_alert_parameters(const ads101x.h::ads101x_alert_t * dev, int16_t low_limit, int16_t high_limit)

Set the alert parameters.

Alert settings have no effect on ADS1013 and ADS1113.

Parameters

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

Return values

  • zero on success, non zero on error
ADS101X_I2C_ADDRESS

ADS101x/111x default address.

1
(0x48)

Address pin tied to: GND (0x48), Vcc (0x49), SDA (0x50), SCL (0x51)

struct ads101x_params

ADS101x/111x params.

i2c.h::i2c_t i2c

i2c device

uint8_t addr

i2c address

uint8_t mux_gain

Mux and gain boolean settings.

struct ads101x_alert_params

ADS101x/111x alert params.

i2c.h::i2c_t i2c

i2c device

uint8_t addr

i2c address

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

struct ads101x

ADS101x/111x device descriptor.

ads101x.h::ads101x_params_t params

device driver configuration

struct ads101x_alert

ADS101x/111x alert device descriptor.

ads101x.h::ads101x_alert_params_t params

device driver configuration

ads101x.h::ads101x_alert_cb_t cb

alert callback

void * arg

alert callback param