|
#define | AD7606_REG_STATUS 0x01 |
|
#define | AD7606_REG_CONFIG 0x02 |
|
#define | AD7606_REG_RANGE_CH_ADDR(ch) (0x03 + ((ch) >> 1)) |
|
#define | AD7606_REG_BANDWIDTH 0x07 |
|
#define | AD7606_REG_OVERSAMPLING 0x08 |
|
#define | AD7606_REG_GAIN_CH(ch) (0x09 + (ch)) |
|
#define | AD7606_REG_OFFSET_CH(ch) (0x11 + (ch)) |
|
#define | AD7606_REG_PHASE_CH(ch) (0x19 + (ch)) |
|
#define | AD7606_REG_DIGITAL_DIAG_ENABLE 0x21 |
|
#define | AD7606_REG_DIGITAL_DIAG_ERR 0x22 |
|
#define | AD7606_REG_OPEN_DETECT_ENABLE 0x23 |
|
#define | AD7606_REG_OPEN_DETECTED 0x24 |
|
#define | AD7606_REG_AIN_OV_UV_DIAG_ENABLE 0x25 |
|
#define | AD7606_REG_AIN_OV_DIAG_ERROR 0x26 |
|
#define | AD7606_REG_AIN_UV_DIAG_ERROR 0x27 |
|
#define | AD7606_REG_DIAGNOSTIC_MUX_CH(ch) (0x28 + ((ch) >> 1)) |
|
#define | AD7606_REG_OPEN_DETECT_QUEUE 0x2C |
|
#define | AD7606_REG_CLK_FS_COUNTER 0x2D |
|
#define | AD7606_REG_CLK_OS_COUNTER 0x2E |
|
#define | AD7606_REG_ID 0x2F |
|
#define | AD7606_STATUS_CHANNEL_MSK NO_OS_GENMASK(2,0) |
|
#define | AD7606_AIN_UV_ERR_MSK NO_OS_BIT(3) |
|
#define | AD7606_AIN_OV_ERR_MSK NO_OS_BIT(4) |
|
#define | AD7606_OPEN_DETECTED_MSK NO_OS_BIT(5) |
|
#define | AD7606_DIGITAL_ERROR_MSK NO_OS_BIT(6) |
|
#define | AD7606_RESET_DETECT_MSK NO_OS_BIT(7) |
|
#define | AD7606_CONFIG_OPERATION_MODE_MSK NO_OS_GENMASK(1,0) |
|
#define | AD7606_CONFIG_DOUT_FORMAT_MSK NO_OS_GENMASK(4,3) |
|
#define | AD7606_CONFIG_EXT_OS_CLOCK_MSK NO_OS_BIT(5) |
|
#define | AD7606_CONFIG_STATUS_HEADER_MSK NO_OS_BIT(6) |
|
#define | AD7606_RANGE_CH_MSK(ch) (NO_OS_GENMASK(3, 0) << (4 * ((ch) % 2))) |
|
#define | AD7606_RANGE_CH_MODE(ch, mode) ((NO_OS_GENMASK(3, 0) & mode) << (4 * ((ch) % 2))) |
|
#define | AD7606_OS_PAD_MSK NO_OS_GENMASK(7,4) |
|
#define | AD7606_OS_RATIO_MSK NO_OS_GENMASK(3,0) |
|
#define | AD7606_ID_DEVICE_ID_MSK NO_OS_GENMASK(7,4) |
|
#define | AD7606_ID_SILICON_REVISION_MSK NO_OS_GENMASK(3,0) |
|
#define | AD7606_GAIN_MSK NO_OS_GENMASK(5,0) |
|
#define | AD7606_ROM_CRC_ERR_EN_MSK NO_OS_BIT(0) |
|
#define | AD7606_MM_CRC_ERR_EN_MSK NO_OS_BIT(1) |
|
#define | AD7606_INT_CRC_ERR_EN_MSK NO_OS_BIT(2) |
|
#define | AD7606_SPI_WRITE_ERR_EN_MSK NO_OS_BIT(3) |
|
#define | AD7606_SPI_READ_ERR_EN_MSK NO_OS_BIT(4) |
|
#define | AD7606_BUSY_STUCK_HIGH_ERR_EN_MSK NO_OS_BIT(5) |
|
#define | AD7606_CLK_FS_OS_COUNTER_EN_MSK NO_OS_BIT(6) |
|
#define | AD7606_INTERFACE_CHECK_EN_MSK NO_OS_BIT(7) |
|
#define | AD7606_DIAGN_MUX_CH_MSK(ch) (NO_OS_GENMASK(2, 0) << (3 * (ch & 0x1))) |
|
#define | AD7606_RD_FLAG_MSK(x) (NO_OS_BIT(6) | ((x) & 0x3F)) |
|
#define | AD7606_WR_FLAG_MSK(x) ((x) & 0x3F) |
|
#define | AD7606_MAX_CHANNELS 8 |
|
|
int32_t | ad7606_spi_reg_read (struct ad7606_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
| Read a device register via SPI. More...
|
|
int32_t | ad7606_spi_reg_write (struct ad7606_dev *dev, uint8_t reg_addr, uint8_t reg_data) |
| Write a device register via SPI. More...
|
|
int32_t | ad7606_spi_write_mask (struct ad7606_dev *dev, uint32_t addr, uint32_t mask, uint32_t val) |
| Write a device register via SPI with masking. More...
|
|
int32_t | ad7606_spi_data_read (struct ad7606_dev *dev, uint32_t *data) |
| Read conversion data. More...
|
|
int32_t | ad7606_read (struct ad7606_dev *dev, uint32_t *data) |
| Blocking conversion start and data read. More...
|
|
int32_t | ad7606_convst (struct ad7606_dev *dev) |
| Toggle the CONVST pin to start a conversion. More...
|
|
int32_t | ad7606_reset (struct ad7606_dev *dev) |
| Reset the device by toggling the reset GPIO. More...
|
|
int32_t | ad7606_set_oversampling (struct ad7606_dev *dev, struct ad7606_oversampling oversampling) |
| Set the oversampling ratio. More...
|
|
int32_t | ad7606_set_ch_range (struct ad7606_dev *dev, uint8_t ch, struct ad7606_range range) |
| Set the channel operation range. More...
|
|
int32_t | ad7606_set_ch_offset (struct ad7606_dev *dev, uint8_t ch, int8_t offset) |
| Set the channel offset. More...
|
|
int32_t | ad7606_set_ch_phase (struct ad7606_dev *dev, uint8_t ch, uint8_t phase) |
| Set the channel phase. More...
|
|
int32_t | ad7606_set_ch_gain (struct ad7606_dev *dev, uint8_t ch, uint8_t gain) |
| Set the channel gain. More...
|
|
int32_t | ad7606_set_config (struct ad7606_dev *dev, struct ad7606_config config) |
| Set the device config register. More...
|
|
int32_t | ad7606_set_digital_diag (struct ad7606_dev *dev, struct ad7606_digital_diag diag) |
| Set the device digital diagnostics configuration. More...
|
|
int32_t | ad7606_init (struct ad7606_dev **device, struct ad7606_init_param *init_param) |
| Initialize the ad7606 device structure. More...
|
|
int32_t | ad7606_remove (struct ad7606_dev *dev) |
| Free any resource used by the driver. More...
|
|
Header file for the ad7606 Driver.
- Author
- Stefan Popa (stefa.nosp@m.n.po.nosp@m.pa@an.nosp@m.alog.nosp@m..com)
-
Darius Berghe (dariu.nosp@m.s.be.nosp@m.rghe@.nosp@m.anal.nosp@m.og.co.nosp@m.m)
Copyright 2019, 2021(c) Analog Devices, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
- Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, 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.