no-OS
|
Header file for ad7091r5 Driver. More...
Go to the source code of this file.
Classes | |
struct | ad7091r5_init_param |
Structure containing the init parameters needed by the ad7091r5 device. More... | |
struct | ad7091r5_dev |
Structure representing an ad7091r5 device. More... | |
Enumerations | |
enum | ad7091r5_mode { AD7091R5_MODE_SAMPLE, AD7091R5_MODE_COMMAND, AD7091R5_MODE_AUTOCYCLE } |
Converter supported modes. More... | |
enum | ad7091r5_sleep_mode { AD7091R5_SLEEP_MODE_0, AD7091R5_SLEEP_MODE_1, AD7091R5_SLEEP_MODE_2, AD7091R5_SLEEP_MODE_3 } |
Converter supported sleep modes. More... | |
enum | ad7091r5_port { AD7091R5_GPO0, AD7091R5_GPO1, AD7091R5_GPO2 } |
Converter general purpose outputs. More... | |
enum | ad7091r5_gpo0_mode { AD7091R5_GPO0_ENABLED, AD7091R5_GPO0_ALERT, AD7091R5_GPO0_BUSY } |
Port 0 configuration. More... | |
enum | ad7091r5_cycle_timer { AD7091R5_CYCLE_TIMER_100uS, AD7091R5_CYCLE_TIMER_200uS, AD7091R5_CYCLE_TIMER_400uS, AD7091R5_CYCLE_TIMER_800uS } |
Timer used for autocycle mode. More... | |
enum | ad7091r5_alert_type { AD7091R5_NO_ALERT, AD7091R5_HIGH_ALERT, AD7091R5_LOW_ALERT } |
Alert status. More... | |
enum | ad7091r5_limit { AD7091R5_LOW_LIMIT, AD7091R5_HIGH_LIMIT, AD7091R5_HYSTERESIS } |
Limit type. More... | |
Functions | |
int32_t | ad7091r5_init (struct ad7091r5_dev **device, struct ad7091r5_init_param *init_param) |
int32_t | ad7091r5_remove (struct ad7091r5_dev *dev) |
Free the memory allocated by ad7091r5_init(). More... | |
int32_t | ad7091r5_set_mode (struct ad7091r5_dev *dev, enum ad7091r5_mode mode) |
int32_t | ad7091r5_sleep_mode (struct ad7091r5_dev *dev, enum ad7091r5_sleep_mode mode) |
int32_t | ad7091r5_set_port (struct ad7091r5_dev *dev, enum ad7091r5_port port, bool value) |
int32_t | ad7091r5_set_gpo0_mode (struct ad7091r5_dev *dev, enum ad7091r5_gpo0_mode mode, bool is_cmos) |
int32_t | ad7091r5_set_cycle_timer (struct ad7091r5_dev *dev, enum ad7091r5_cycle_timer timer) |
int32_t | ad7091r5_set_limit (struct ad7091r5_dev *dev, enum ad7091r5_limit limit, uint8_t channel, uint16_t value) |
int32_t | ad7091r5_get_alert (struct ad7091r5_dev *dev, uint8_t channel, enum ad7091r5_alert_type *alert) |
int32_t | ad7091r5_get_limit (struct ad7091r5_dev *dev, enum ad7091r5_limit limit, uint8_t channel, uint16_t *value) |
int32_t | ad7091r5_set_channel (struct ad7091r5_dev *dev, uint8_t channel) |
int32_t | ad7091r5_read_one (struct ad7091r5_dev *dev, uint8_t channel, uint16_t *read_val) |
Header file for ad7091r5 Driver.
Copyright 2020(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define AD7091R5_BITS 12 |
#define AD7091R5_CHANNEL_NO 4 |
#define AD7091R5_CONV_MASK NO_OS_GENMASK(AD7091R5_BITS - 1, 0) |
#define AD7091R5_REG_ALERT 3 |
#define AD7091R5_REG_CH_HIGH_LIMIT | ( | ch | ) | ((ch) * 3 + 5) |
#define AD7091R5_REG_CH_HYSTERESIS | ( | ch | ) | ((ch) * 3 + 6) |
#define AD7091R5_REG_CH_LOW_LIMIT | ( | ch | ) | ((ch) * 3 + 4) |
#define AD7091R5_REG_CHANNEL 1 |
#define AD7091R5_REG_CONF 2 |
#define AD7091R5_REG_RESULT 0 |
#define REG_ALERT_MASK | ( | x, | |
ch | |||
) | (x >> (ch * 2)) |
#define REG_CONF_AUTO | ( | x | ) | ((x & 0x01) << 8) |
#define REG_CONF_CMD | ( | x | ) | ((x & 0x01) << 10) |
#define REG_CONF_CYCLE_TIMER | ( | x | ) | ((x & 0x03) << 6) |
#define REG_CONF_GPO0 | ( | x | ) | ((x & 0x01) << 3) |
#define REG_CONF_GPO0_ALERT | ( | x | ) | ((x & 0x01) << 4) |
#define REG_CONF_GPO0_BUSY | ( | x | ) | ((x & 0x01) << 5) |
#define REG_CONF_GPO0_DRIVE_TYPE | ( | x | ) | ((x & 0x01) << 15) |
#define REG_CONF_GPO0_MASK NO_OS_BIT(3) |
#define REG_CONF_GPO1 | ( | x | ) | ((x & 0x01) << 2) |
#define REG_CONF_GPO1_MASK NO_OS_BIT(2) |
#define REG_CONF_GPO2 | ( | x | ) | ((x & 0x01) << 14) |
#define REG_CONF_GPO2_MASK NO_OS_BIT(14) |
#define REG_CONF_RESET | ( | x | ) | ((x & 0x01) << 9) |
#define REG_CONF_RESET_MASK NO_OS_BIT(9) |
#define REG_CONF_SLEEP_MODE | ( | x | ) | ((x & 0x03) << 0) |
#define REG_CONF_SLEEP_MODE_MASK NO_OS_BIT(0) |
#define REG_RESULT_CH_ID | ( | x | ) | (((x) >> 13) & 0x3) |
#define REG_RESULT_CONV_DATA | ( | x | ) | ((x) & AD7091R5_CONV_MASK) |
enum ad7091r5_alert_type |
enum ad7091r5_cycle_timer |
enum ad7091r5_gpo0_mode |
enum ad7091r5_limit |
enum ad7091r5_mode |
enum ad7091r5_port |
enum ad7091r5_sleep_mode |
Converter supported sleep modes.
int32_t ad7091r5_get_alert | ( | struct ad7091r5_dev * | dev, |
uint8_t | channel, | ||
enum ad7091r5_alert_type * | alert | ||
) |
Get alert.
dev | - The device structure. |
channel | - Channel. |
alert | - Alert type. |
int32_t ad7091r5_get_limit | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_limit | limit, | ||
uint8_t | channel, | ||
uint16_t * | value | ||
) |
Get high limit, low limit, hysteresis.
dev | - The device structure. |
limit | - Limit. |
channel | - Channel. |
value | - Value. |
int32_t ad7091r5_init | ( | struct ad7091r5_dev ** | device, |
struct ad7091r5_init_param * | init_param | ||
) |
Initialize the device.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int32_t ad7091r5_read_one | ( | struct ad7091r5_dev * | dev, |
uint8_t | channel, | ||
uint16_t * | read_val | ||
) |
Read one sample.
dev | - The device structure. |
channel | - Channel. |
read_val | - Value. |
int32_t ad7091r5_remove | ( | struct ad7091r5_dev * | dev | ) |
Free the memory allocated by ad7091r5_init().
dev | - Pointer to the device handler. |
int32_t ad7091r5_set_channel | ( | struct ad7091r5_dev * | dev, |
uint8_t | channel | ||
) |
Set device channel.
dev | - The device structure. |
channel | - Channel. |
int32_t ad7091r5_set_cycle_timer | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_cycle_timer | timer | ||
) |
Set cycle timer for autocycle mode.
dev | - The device structure. |
timer | - Converter sampling period. |
int32_t ad7091r5_set_gpo0_mode | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_gpo0_mode | mode, | ||
bool | is_cmos | ||
) |
Set GPO0 mode.
dev | - The device structure. |
mode | - GPO0 new mode. |
is_cmos | - 0: GPO0 is open drain
|
int32_t ad7091r5_set_limit | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_limit | limit, | ||
uint8_t | channel, | ||
uint16_t | value | ||
) |
Set high limit, low limit, hysteresis.
dev | - The device structure. |
limit | - Limit. |
channel | - Channel. |
value | - Value. |
int32_t ad7091r5_set_mode | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_mode | mode | ||
) |
Set mode.
dev | - The device structure. |
mode | - Converter mode. |
int32_t ad7091r5_set_port | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_port | port, | ||
bool | value | ||
) |
Set output port value.
dev | - The device structure. |
port | - Port number. |
value | - Value. |
int32_t ad7091r5_sleep_mode | ( | struct ad7091r5_dev * | dev, |
enum ad7091r5_sleep_mode | mode | ||
) |
Set sleep mode.
dev | - The device structure. |
mode | - Sleep mode. |