Loading...
Searching...
No Matches
ads1x1x.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 OTA keys S.A.
3 * SPDX-FileCopyrightText: 2018 Acutam Automation, LLC
4 * SPDX-FileCopyrightText: 2025 Baptiste Le Duc <baptiste.leduc38@gmail.com>
5 * SPDX-License-Identifier: LGPL-2.1-only
6 */
7
8#pragma once
9
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36#include "periph/i2c.h"
37#include "periph/gpio.h"
38
42enum {
49};
50
54typedef struct {
56 uint8_t addr;
57 uint8_t mux;
58 uint8_t pga;
59 uint8_t mode;
60 uint8_t dr;
61 uint8_t bits_res;
63
78
85
89typedef void (*ads1x1x_alert_cb_t)(void *);
90
99
108int ads1x1x_init(ads1x1x_t *dev, const ads1x1x_params_t *params);
109
119
129 const ads1x1x_alert_params_t *params);
130
142int ads1x1x_set_mux(ads1x1x_t *dev, uint8_t mux);
143
152int ads1x1x_read_raw(const ads1x1x_t *dev, int16_t *raw);
153
167 ads1x1x_alert_cb_t cb, void *arg, uint8_t nb_assert);
168
188int ads1x1x_convert_to_mv(const ads1x1x_t *dev, int16_t value);
189
203
204#ifdef __cplusplus
205}
206#endif
207
Low-level GPIO peripheral driver interface definitions.
int ads1x1x_reset(i2c_t i2c)
Reset the ADS1X1X devices on the I2C bus.
int ads1x1x_init(ads1x1x_t *dev, const ads1x1x_params_t *params)
Initialize an ADS101x/111x ADC device (ADC only)
int ads1x1x_enable_alert(ads1x1x_alert_t *dev, ads1x1x_alert_cb_t cb, void *arg, uint8_t nb_assert)
Enable alert interrupt.
int ads1x1x_set_mux(ads1x1x_t *dev, uint8_t mux)
Set mux.
struct ads1x1x ads1x1x_t
ADS101x/111x device descriptor.
int ads1x1x_set_alert_parameters(ads1x1x_alert_t *dev, const ads1x1x_alert_params_t *params)
Set the alert parameters.
struct ads1x1x_alert_params ads1x1x_alert_params_t
ADS101x/111x alert params.
int ads1x1x_set_parameters(ads1x1x_t *dev, const ads1x1x_params_t *params)
Set ADS101x/111x parameters.
int ads1x1x_read_raw(const ads1x1x_t *dev, int16_t *raw)
Read a raw ADC value.
struct ads1x1x_alert ads1x1x_alert_t
ADS101x/111x alert device descriptor.
void(* ads1x1x_alert_cb_t)(void *)
ADS101x/111x alert callback.
Definition ads1x1x.h:89
int ads1x1x_convert_to_mv(const ads1x1x_t *dev, int16_t value)
Converts the digital value from an ADS101x/111x device to millivolts.
int ads1x1x_alert_init(ads1x1x_alert_t *dev, const ads1x1x_alert_params_t *params)
Initialize an ADS101x/111x alert device.
@ ADS1X1X_NODATA
No data available.
Definition ads1x1x.h:46
@ ADS1X1X_NOI2C
I2C communication error.
Definition ads1x1x.h:44
@ ADS1X1X_OK
Operation successful.
Definition ads1x1x.h:43
@ ADS1X1X_NODEV
No device found on the bus.
Definition ads1x1x.h:45
@ ADS1X1X_GPIO_ERROR
GPIO error.
Definition ads1x1x.h:48
@ ADS1X1X_INVALID_ARG
Invalid argument.
Definition ads1x1x.h:47
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition i2c.h:135
Low-level I2C peripheral driver interface definition.
ADS101x/111x alert params.
Definition ads1x1x.h:67
uint8_t comp_mode
Comparator mode.
Definition ads1x1x.h:70
int16_t low_limit
alert low value
Definition ads1x1x.h:75
int16_t high_limit
alert high value
Definition ads1x1x.h:76
uint8_t addr
i2c address
Definition ads1x1x.h:69
uint8_t comp_latch
Comparator latch.
Definition ads1x1x.h:72
gpio_t alert_pin
alert pin (GPIO_UNDEF if not connected)
Definition ads1x1x.h:74
uint8_t comp_polarity
Comparator polarity.
Definition ads1x1x.h:71
i2c_t i2c
i2c device
Definition ads1x1x.h:68
uint8_t comp_queue
Comparator queue.
Definition ads1x1x.h:73
ADS101x/111x alert device descriptor.
Definition ads1x1x.h:94
void * arg
alert callback param
Definition ads1x1x.h:97
ads1x1x_alert_params_t params
device driver configuration
Definition ads1x1x.h:95
ads1x1x_alert_cb_t cb
alert callback
Definition ads1x1x.h:96
ADS101x/111x params.
Definition ads1x1x.h:54
uint8_t bits_res
Bit resolution (12 or 16 bits)
Definition ads1x1x.h:61
uint8_t dr
Data rate configuration.
Definition ads1x1x.h:60
uint8_t addr
I2C address.
Definition ads1x1x.h:56
i2c_t i2c
I2C device.
Definition ads1x1x.h:55
uint8_t mode
Device mode.
Definition ads1x1x.h:59
uint8_t pga
Programmable gain amplifier configuration.
Definition ads1x1x.h:58
uint8_t mux
Input multiplexer configuration.
Definition ads1x1x.h:57
ADS101x/111x device descriptor.
Definition ads1x1x.h:82
ads1x1x_params_t params
device driver configuration
Definition ads1x1x.h:83