Header file of AD7798/AD7799 Driver. More...
Go to the source code of this file.
Classes | |
struct | ad7799_dev |
AD7798/AD7799 Device description. More... | |
struct | ad7799_init_param |
AD7798/AD7799 Device initialization parameters. More... | |
Macros | |
#define | AD7799_REG_COMM 0x0 /* Communications Register(WO, 8-bit) */ |
#define | AD7799_REG_STAT 0x0 /* Status Register (RO, 8-bit) */ |
#define | AD7799_REG_MODE 0x1 /* Mode Register (RW, 16-bit) */ |
#define | AD7799_REG_CONF 0x2 /* Configuration Register (RW, 16-bit)*/ |
#define | AD7799_REG_DATA 0x3 /* Data Register (RO, 16-/24-bit) */ |
#define | AD7799_REG_ID 0x4 /* ID Register (RO, 8-bit) */ |
#define | AD7799_REG_IO 0x5 /* IO Register (RO, 8-bit) */ |
#define | AD7799_REG_OFFSET 0x6 /* Offset Register (RW, 24-bit) */ |
#define | AD7799_REG_FULLSCALE 0x7 /* Full-Scale Register (RW, 24-bit) */ |
#define | AD7799_BIPOLAR 0x0 /* Bipolar bit */ |
#define | AD7799_UNIPOLAR 0x1 /* Unipolar bit */ |
#define | AD7799_COMM_WEN 0x80 /* Write Enable */ |
#define | AD7799_COMM_WRITE 0x00 /* Write Operation */ |
#define | AD7799_COMM_READ 0x40 /* Read Operation */ |
#define | AD7799_COMM_ADDR(x) |
#define | AD7799_COMM_CREAD 0x04 /* Continuous Read */ |
#define | AD7799_STAT_RDY 0x80 /* Ready */ |
#define | AD7799_STAT_ERR 0x40 /* Error (Overrange, Underrange) */ |
#define | AD7799_STAT_CH3 0x04 /* Channel 3 */ |
#define | AD7799_STAT_CH2 (1 << 1) /* Channel 2 */ |
#define | AD7799_STAT_CH1 (1 << 0) /* Channel 1 */ |
#define | AD7799_MODE_SEL(x) |
#define | AD7799_MODE_PSW(x) |
#define | AD7799_MODE_RATE(x) |
#define | AD7799_MODE_CONT 0x0 /* Continuous Conversion Mode */ |
#define | AD7799_MODE_SINGLE 0x1 /* Single Conversion Mode */ |
#define | AD7799_MODE_IDLE 0x2 /* Idle Mode */ |
#define | AD7799_MODE_PWRDN 0x3 /* Power-Down Mode */ |
#define | AD7799_MODE_CAL_INT_ZERO 0x4 /* Internal Zero-Scale Calibration */ |
#define | AD7799_MODE_CAL_INT_FULL 0x5 /* Internal Full-Scale Calibration */ |
#define | AD7799_MODE_CAL_SYS_ZERO 0x6 /* System Zero-Scale Calibration */ |
#define | AD7799_MODE_CAL_SYS_FULL 0x7 /* System Full-Scale Calibration */ |
#define | AD7799_CONF_BO_EN 0x2000 /* Burnout Current */ |
#define | AD7799_CONF_POLARITY(x) |
#define | AD7799_CONF_GAIN(x) |
#define | AD7799_CONF_REFDET(x) |
#define | AD7799_CONF_BUF 0x10 /* Buffered Mode Enable */ |
#define | AD7799_CONF_CHAN(x) |
#define | AD7799_GAIN_1 0x0 |
#define | AD7799_GAIN_2 0x1 |
#define | AD7799_GAIN_4 0x2 |
#define | AD7799_GAIN_8 0x3 |
#define | AD7799_GAIN_16 0x4 |
#define | AD7799_GAIN_32 0x5 |
#define | AD7799_GAIN_64 0x6 |
#define | AD7799_GAIN_128 0x7 |
#define | AD7799_REG_SIZE_1B 0x1 |
#define | AD7799_REG_SIZE_2B 0x2 |
#define | AD7799_REG_SIZE_3B 0x3 |
#define | AD7799_REFDET_ENA 0x1 |
#define | AD7799_REFDET_DIS 0x0 |
#define | AD7799_CH_AIN1P_AIN1M 0x0 /* AIN1(+) - AIN1(-) */ |
#define | AD7799_CH_AIN2P_AIN2M 0x1 /* AIN2(+) - AIN2(-) */ |
#define | AD7799_CH_AIN3P_AIN3M 0x2 /* AIN3(+) - AIN3(-) */ |
#define | AD7799_CH_AIN1M_AIN1M 0x3 /* AIN1(-) - AIN1(-) */ |
#define | AD7799_CH_AVDD_MONITOR 0x7 /* AVDD Monitor */ |
#define | AD7799_ID_MASK 0xF |
#define | AD7799_REG_MASK 0xF |
#define | AD7799_IOEN 0x40 |
#define | AD7799_IO1(x) |
#define | AD7799_IO2(x) |
#define | AD7799_TIMEOUT 0xFFFF |
#define | AD7799_RESET_DATA 0xFF |
Enumerations | |
enum | ad7799_type { ID_AD7798 = 0x8 , ID_AD7799 = 0x9 } |
Device type (AD7798/AD7799) More... | |
enum | ad7799_precision { AD7799_PRECISION_MV , AD7799_PRECISION_UV } |
Functions | |
int32_t | ad7799_read (struct ad7799_dev *device, uint8_t reg_addr, uint32_t *reg_data) |
Read device register. | |
int32_t | ad7799_write (struct ad7799_dev *device, uint8_t reg_addr, uint32_t reg_data) |
Write device register. | |
int32_t | ad7799_reset (struct ad7799_dev *device) |
Software reset of the device. | |
int32_t | ad7799_set_mode (struct ad7799_dev *device, uint8_t mode) |
Set the device mode. | |
int32_t | ad7799_set_channel (struct ad7799_dev *device, uint8_t ch) |
Select the ADC channel. | |
int32_t | ad7799_get_channel (struct ad7799_dev *device, uint8_t ch, uint32_t *reg_data) |
Read specific ADC channel. | |
int32_t | ad7799_read_channel (struct ad7799_dev *device, uint8_t ch, int32_t *data_scaled) |
Read data from specific ADC channel with specified precision. | |
int32_t | ad7799_set_gain (struct ad7799_dev *device, uint8_t gain) |
Set the ADC gain. | |
int32_t | ad7799_get_gain (struct ad7799_dev *device, uint8_t *gain) |
Get the ADC gain. | |
int32_t | ad7799_set_refdet (struct ad7799_dev *device, uint8_t ref_en) |
Enable or disable the reference detect function. | |
int32_t | ad7799_set_polarity (struct ad7799_dev *device, uint8_t polarity) |
Set ADC polarity. | |
int32_t | ad7799_dev_ready (struct ad7799_dev *device) |
Read the /RDY bit of status register and check the status of the device. | |
int32_t | ad7799_init (struct ad7799_dev **device, const struct ad7799_init_param *init_param) |
Initialize the device. | |
int32_t | ad7799_remove (struct ad7799_dev *device) |
Remove the device and release resources. | |
Header file of AD7798/AD7799 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 AD7799_BIPOLAR 0x0 /* Bipolar bit */ |
#define AD7799_CH_AVDD_MONITOR 0x7 /* AVDD Monitor */ |
#define AD7799_COMM_ADDR | ( | x | ) |
#define AD7799_COMM_CREAD 0x04 /* Continuous Read */ |
#define AD7799_COMM_READ 0x40 /* Read Operation */ |
#define AD7799_COMM_WEN 0x80 /* Write Enable */ |
#define AD7799_COMM_WRITE 0x00 /* Write Operation */ |
#define AD7799_CONF_BO_EN 0x2000 /* Burnout Current */ |
#define AD7799_CONF_BUF 0x10 /* Buffered Mode Enable */ |
#define AD7799_CONF_CHAN | ( | x | ) |
#define AD7799_CONF_GAIN | ( | x | ) |
#define AD7799_CONF_POLARITY | ( | x | ) |
#define AD7799_CONF_REFDET | ( | x | ) |
#define AD7799_GAIN_1 0x0 |
#define AD7799_GAIN_128 0x7 |
#define AD7799_GAIN_16 0x4 |
#define AD7799_GAIN_2 0x1 |
#define AD7799_GAIN_32 0x5 |
#define AD7799_GAIN_4 0x2 |
#define AD7799_GAIN_64 0x6 |
#define AD7799_GAIN_8 0x3 |
#define AD7799_ID_MASK 0xF |
#define AD7799_IO1 | ( | x | ) |
#define AD7799_IO2 | ( | x | ) |
#define AD7799_IOEN 0x40 |
#define AD7799_MODE_CAL_INT_FULL 0x5 /* Internal Full-Scale Calibration */ |
#define AD7799_MODE_CAL_INT_ZERO 0x4 /* Internal Zero-Scale Calibration */ |
#define AD7799_MODE_CAL_SYS_FULL 0x7 /* System Full-Scale Calibration */ |
#define AD7799_MODE_CAL_SYS_ZERO 0x6 /* System Zero-Scale Calibration */ |
#define AD7799_MODE_CONT 0x0 /* Continuous Conversion Mode */ |
#define AD7799_MODE_IDLE 0x2 /* Idle Mode */ |
#define AD7799_MODE_PSW | ( | x | ) |
#define AD7799_MODE_PWRDN 0x3 /* Power-Down Mode */ |
#define AD7799_MODE_RATE | ( | x | ) |
#define AD7799_MODE_SEL | ( | x | ) |
#define AD7799_MODE_SINGLE 0x1 /* Single Conversion Mode */ |
#define AD7799_REFDET_DIS 0x0 |
#define AD7799_REFDET_ENA 0x1 |
#define AD7799_REG_COMM 0x0 /* Communications Register(WO, 8-bit) */ |
#define AD7799_REG_CONF 0x2 /* Configuration Register (RW, 16-bit)*/ |
#define AD7799_REG_DATA 0x3 /* Data Register (RO, 16-/24-bit) */ |
#define AD7799_REG_FULLSCALE 0x7 /* Full-Scale Register (RW, 24-bit) */ |
#define AD7799_REG_ID 0x4 /* ID Register (RO, 8-bit) */ |
#define AD7799_REG_IO 0x5 /* IO Register (RO, 8-bit) */ |
#define AD7799_REG_MASK 0xF |
#define AD7799_REG_MODE 0x1 /* Mode Register (RW, 16-bit) */ |
#define AD7799_REG_OFFSET 0x6 /* Offset Register (RW, 24-bit) */ |
#define AD7799_REG_SIZE_1B 0x1 |
#define AD7799_REG_SIZE_2B 0x2 |
#define AD7799_REG_SIZE_3B 0x3 |
#define AD7799_REG_STAT 0x0 /* Status Register (RO, 8-bit) */ |
#define AD7799_RESET_DATA 0xFF |
#define AD7799_STAT_CH1 (1 << 0) /* Channel 1 */ |
#define AD7799_STAT_CH2 (1 << 1) /* Channel 2 */ |
#define AD7799_STAT_CH3 0x04 /* Channel 3 */ |
#define AD7799_STAT_ERR 0x40 /* Error (Overrange, Underrange) */ |
#define AD7799_STAT_RDY 0x80 /* Ready */ |
#define AD7799_TIMEOUT 0xFFFF |
#define AD7799_UNIPOLAR 0x1 /* Unipolar bit */ |
enum ad7799_precision |
enum ad7799_type |
int32_t ad7799_dev_ready | ( | struct ad7799_dev * | device | ) |
Read the /RDY bit of status register and check the status of the device.
device | - The device structure. |
int32_t ad7799_get_channel | ( | struct ad7799_dev * | device, |
uint8_t | ch, | ||
uint32_t * | reg_data ) |
Read specific ADC channel.
device | - The device structure. |
ch | - The ADC channel. |
reg_data | - The content of the data register. |
int32_t ad7799_get_gain | ( | struct ad7799_dev * | device, |
uint8_t * | gain ) |
Get the ADC gain.
device | - The device structure. |
gain | - the gain value from the register. |
int32_t ad7799_init | ( | struct ad7799_dev ** | device, |
const struct ad7799_init_param * | init_param ) |
Initialize the device.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int32_t ad7799_read | ( | struct ad7799_dev * | device, |
uint8_t | reg_addr, | ||
uint32_t * | reg_data ) |
Read device register.
device | - The device structure. |
reg_addr | - The register address. |
reg_data | - The data read from the register. |
int32_t ad7799_read_channel | ( | struct ad7799_dev * | device, |
uint8_t | ch, | ||
int32_t * | data_scaled ) |
Read data from specific ADC channel with specified precision.
device | - The device structure. |
ch | - The ADC channel. |
data_scaled | - The content of the data in mV/uV. |
int32_t ad7799_remove | ( | struct ad7799_dev * | device | ) |
Remove the device and release resources.
device | - The device structure. |
int32_t ad7799_reset | ( | struct ad7799_dev * | device | ) |
Software reset of the device.
device | - The device structure. |
int32_t ad7799_set_channel | ( | struct ad7799_dev * | device, |
uint8_t | ch ) |
Select the ADC channel.
device | - The device structure. |
ch | - The channel number. |
int32_t ad7799_set_gain | ( | struct ad7799_dev * | device, |
uint8_t | gain ) |
Set the ADC gain.
device | - The device structure. |
gain | - the channel number. |
int32_t ad7799_set_mode | ( | struct ad7799_dev * | device, |
uint8_t | mode ) |
Set the device mode.
device | - The device structure. |
mode | - The device mode. |
int32_t ad7799_set_polarity | ( | struct ad7799_dev * | device, |
uint8_t | polarity ) |
Set ADC polarity.
device | - The device structure. |
polarity | - set the device polarity: 0 - Bipolar coding 1 - Unipolar coding |
int32_t ad7799_set_refdet | ( | struct ad7799_dev * | device, |
uint8_t | ref_en ) |
Enable or disable the reference detect function.
device | - The device structure. |
ref_en | - 1 reference detect enable.
|
int32_t ad7799_write | ( | struct ad7799_dev * | device, |
uint8_t | reg_addr, | ||
uint32_t | reg_data ) |
Write device register.
device | - The device structure. |
reg_addr | - The register address. |
reg_data | - The data to be written. |