Go to the documentation of this file.
52 #define AD7156_ADDRESS 0x48
55 #define AD7156_REG_STATUS 0x00
56 #define AD7156_REG_CH1_DATA_H 0x01
57 #define AD7156_REG_CH1_DATA_L 0x02
58 #define AD7156_REG_CH2_DATA_H 0x03
59 #define AD7156_REG_CH2_DATA_L 0x04
60 #define AD7156_REG_CH1_AVG_H 0x05
61 #define AD7156_REG_CH1_AVG_L 0x06
62 #define AD7156_REG_CH2_AVG_H 0x07
63 #define AD7156_REG_CH2_AVG_L 0x08
64 #define AD7156_REG_CH1_SENS_THRSH_H 0x09
65 #define AD7156_REG_CH1_TMO_THRSH_L 0x0A
66 #define AD7156_REG_CH1_SETUP 0x0B
67 #define AD7156_REG_CH2_SENS_THRSH_H 0x0C
68 #define AD7156_REG_CH2_TMO_THRSH_L 0x0D
69 #define AD7156_REG_CH2_SETUP 0x0E
70 #define AD7156_REG_CONFIG 0x0F
71 #define AD7156_REG_PWR_DWN_TMR 0x10
72 #define AD7156_REG_CH1_CAPDAC 0x11
73 #define AD7156_REG_CH2_CAPDAC 0x12
74 #define AD7156_REG_SERIAL_N3 0x13
75 #define AD7156_REG_SERIAL_N2 0x14
76 #define AD7156_REG_SERIAL_N1 0x15
77 #define AD7156_REG_SERIAL_N0 0x16
78 #define AD7156_REG_CHIP_ID 0x17
81 #define AD7156_STATUS_PWR_DWN (1 << 7)
82 #define AD7156_STATUS_DAC_STEP2 (1 << 6)
83 #define AD7156_STATUS_OUT2 (1 << 5)
84 #define AD7156_STATUS_DAC_STEP1 (1 << 4)
85 #define AD7156_STATUS_OUT1 (1 << 3)
86 #define AD7156_STATUS_C1_C2 (1 << 2)
87 #define AD7156_STATUS_RDY2 (1 << 1)
88 #define AD7156_STATUS_RDY1 (1 << 0)
91 #define AD7156_CH1_SETUP_RANGE(x) (((x) & 0x3) << 6)
92 #define AD7156_CH1_SETUP_HYST1 (1 << 4)
93 #define AD7156_CH1_SETUP_THR1(x) ((x) & 0xF)
96 #define AD7156_CH2_SETUP_RANGE(x) (((x) & 0x3) << 6)
97 #define AD7156_CH2_SETUP_HYST2 (1 << 4)
98 #define AD7156_CH2_SETUP_THR2(x) ((x) & 0xF)
101 #define AD7156_CDC_RANGE_2_PF 0
102 #define AD7156_CDC_RANGE_0_5_PF 1
103 #define AD7156_CDC_RANGE_1_PF 2
104 #define AD7156_CDC_RANGE_4_PF 3
107 #define AD7156_CONFIG_THR_FIXED (1 << 7)
108 #define AD7156_CONFIG_THR_MD(x) (((x) & 0x3) << 5)
109 #define AD7156_CONFIG_EN_CH1 (1 << 4)
110 #define AD7156_CONFIG_EN_CH2 (1 << 3)
111 #define AD7156_CONFIG_MD(x) ((x) & 0x7)
114 #define AD7156_ADAPTIVE_THRESHOLD 0
115 #define AD7156_FIXED_THRESHOLD 1
118 #define AD7156_THR_MODE_NEGATIVE 0
119 #define AD7156_THR_MODE_POSITIVE 1
120 #define AD7156_THR_MODE_IN_WINDOW 2
121 #define AD7156_THR_MODE_OU_WINDOW 3
124 #define AD7156_CONV_MODE_IDLE 0
125 #define AD7156_CONV_MODE_CONT_CONV 1
126 #define AD7156_CONV_MODE_SINGLE_CONV 2
127 #define AD7156_CONV_MODE_PWR_DWN 3
130 #define AD7156_PWR_DWN_TMR_TIMEOUT(x) (((x) & 0x3F) | (1 << 6))
133 #define AD7156_CH1_CAPDAC_DAC_EN1 (1 << 7)
134 #define AD7156_CH1_CAPDAC_DAC_AUTO1 (1 << 6)
135 #define AD7156_CH1_CAPDAC_DAC_VAL1(x) ((x) & 0x3F)
138 #define AD7156_CH2_CAPDAC_DAC_EN2 (1 << 7)
139 #define AD7156_CH2_CAPDAC_DAC_AUTO2 (1 << 6)
140 #define AD7156_CH2_CAPDAC_DAC_VAL2(x) ((x) & 0x3F)
143 #define AD7156_DEFAULT_ID 0x88
146 #define AD7156_RESET_CMD 0xBF
149 #define AD7156_CHANNEL1 1
150 #define AD7156_CHANNEL2 2
178 uint8_t* p_read_data,
179 uint8_t register_address,
180 uint8_t bytes_number);
184 uint16_t register_value,
185 uint8_t register_address,
186 uint8_t bytes_number);
205 uint8_t enable_conv);
230 float p_fsensitivity);
#define AD7156_CONFIG_THR_FIXED
Definition: ad7156.h:111
#define AD7156_REG_CHIP_ID
Definition: ad7156.h:78
#define AD7156_CDC_RANGE_0_5_PF
Definition: ad7156.h:106
float ad7156_read_channel_capacitance(struct ad7156_dev *dev, uint8_t channel)
Reads a sample the selected channel and converts the data to picofarads(pF).
Definition: ad7156.c:508
int32_t no_os_i2c_write(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Write data to slave device.
Definition: no_os_i2c.c:85
int32_t no_os_i2c_init(struct no_os_i2c_desc **desc, const struct no_os_i2c_init_param *param)
Initialize the I2C communication peripheral.
Definition: no_os_i2c.c:51
void ad7156_reset(struct ad7156_dev *dev)
Resets the device.
Definition: ad7156.c:159
void ad7156_set_range(struct ad7156_dev *dev, uint32_t channel, uint8_t range)
Sets the input range of the specified channel.
Definition: ad7156.c:247
void ad7156_get_register_value(struct ad7156_dev *dev, uint8_t *p_read_data, uint8_t register_address, uint8_t bytes_number)
Performs a burst read of a specified number of registers.
Definition: ad7156.c:60
void ad7156_set_power_mode(struct ad7156_dev *dev, uint8_t pwr_mode)
Sets the converter mode of operation.
Definition: ad7156.c:179
#define AD7156_REG_CONFIG
Definition: ad7156.h:70
int32_t no_os_i2c_remove(struct no_os_i2c_desc *desc)
Free the resources allocated by no_os_i2c_init().
Definition: no_os_i2c.c:70
float ad7156_channel1_range
Definition: ad7156.h:172
#define AD7156_REG_CH1_DATA_H
Definition: ad7156.h:56
Definition: ad9361_util.h:75
void ad7156_set_threshold_mode(struct ad7156_dev *dev, uint8_t thr_mode, uint8_t thr_fixed)
Selects the threshold mode of operation.
Definition: ad7156.c:338
void ad7156_set_sensitivity(struct ad7156_dev *dev, uint8_t channel, float p_fsensitivity)
Writes a value(pF) to the sensitivity register. This functions should be used when adaptive threshold...
Definition: ad7156.c:407
void ad7156_set_register_value(struct ad7156_dev *dev, uint16_t register_value, uint8_t register_address, uint8_t bytes_number)
Writes data into one or two registers.
Definition: ad7156.c:79
#define AD7156_REG_CH1_SETUP
Definition: ad7156.h:66
uint16_t ad7156_wait_read_channel_data(struct ad7156_dev *dev, uint8_t channel)
Waits for a finished CDC conversion and reads a 12-bit sample from the selected channel.
Definition: ad7156.c:467
#define AD7156_CONFIG_THR_MD(x)
Definition: ad7156.h:112
void ad7156_set_threshold(struct ad7156_dev *dev, uint8_t channel, float p_fthr)
Writes to the threshold register when threshold fixed mode is enabled.
Definition: ad7156.c:371
int8_t ad7156_init(struct ad7156_dev **device, struct ad7156_init_param init_param)
Initializes the communication peripheral and the initial Values for AD7156 Board.
Definition: ad7156.c:106
Header file of AD7156 Driver.
void ad7156_set_threshold_mode(struct ad7156_dev *dev, uint8_t thr_mode, uint8_t thr_fixed)
Selects the threshold mode of operation.
Definition: ad7156.c:338
int32_t ad7156_remove(struct ad7156_dev *dev)
Free the resources allocated by ad7156_init().
Definition: ad7156.c:141
#define AD7156_REG_CH2_DATA_H
Definition: ad7156.h:58
#define AD7156_CONFIG_EN_CH2
Definition: ad7156.h:114
#define AD7156_REG_CH2_SETUP
Definition: ad7156.h:69
void ad7156_channel_state(struct ad7156_dev *dev, uint8_t channel, uint8_t enable_conv)
Enables or disables conversion on the selected channel.
Definition: ad7156.c:210
uint16_t ad7156_wait_read_channel_data(struct ad7156_dev *dev, uint8_t channel)
Waits for a finished CDC conversion and reads a 12-bit sample from the selected channel.
Definition: ad7156.c:467
struct no_os_i2c_desc * i2c_desc
Definition: ad7156.h:170
#define AD7156_REG_CH2_SENS_THRSH_H
Definition: ad7156.h:67
float ad7156_read_channel_capacitance(struct ad7156_dev *dev, uint8_t channel)
Reads a sample the selected channel and converts the data to picofarads(pF).
Definition: ad7156.c:508
#define AD7156_CONFIG_MD(x)
Definition: ad7156.h:115
#define AD7156_REG_CH1_SENS_THRSH_H
Definition: ad7156.h:64
float ad7156_get_range(struct ad7156_dev *dev, uint32_t channel)
Reads the range bits from the device and returns the range in pF.
Definition: ad7156.c:286
void ad7156_channel_state(struct ad7156_dev *dev, uint8_t channel, uint8_t enable_conv)
Enables or disables conversion on the selected channel.
Definition: ad7156.c:210
float ad7156_channel2_range
Definition: ad7156.h:173
uint16_t ad7156_read_channel_data(struct ad7156_dev *dev, uint8_t channel)
Reads a 12-bit sample from the selected channel.
Definition: ad7156.c:436
Structure holding I2C descriptor.
Definition: no_os_i2c.h:81
void ad7156_set_power_mode(struct ad7156_dev *dev, uint8_t pwr_mode)
Sets the converter mode of operation.
Definition: ad7156.c:179
#define AD7156_CDC_RANGE_1_PF
Definition: ad7156.h:107
int32_t no_os_i2c_read(struct no_os_i2c_desc *desc, uint8_t *data, uint8_t bytes_number, uint8_t stop_bit)
I2C Read data from slave device.
Definition: no_os_i2c.c:104
#define AD7156_CH1_SETUP_RANGE(x)
Definition: ad7156.h:91
struct no_os_i2c_init_param i2c_init
Definition: ad7156.h:178
Header file of I2C Interface.
float ad7156_channel1_range
Definition: ad7156.h:180
float ad7156_channel2_range
Definition: ad7156.h:181
#define AD7156_STATUS_RDY1
Definition: ad7156.h:88
#define AD7156_CDC_RANGE_4_PF
Definition: ad7156.h:108
int32_t ad7156_remove(struct ad7156_dev *dev)
Free the resources allocated by ad7156_init().
Definition: ad7156.c:141
#define AD7156_RESET_CMD
Definition: ad7156.h:158
float ad7156_get_range(struct ad7156_dev *dev, uint32_t channel)
Reads the range bits from the device and returns the range in pF.
Definition: ad7156.c:286
#define AD7156_CDC_RANGE_2_PF
Definition: ad7156.h:105
Structure holding the parameters for I2C initialization.
Definition: no_os_i2c.h:64
#define AD7156_REG_STATUS
Definition: ad7156.h:55
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:96
uint16_t ad7156_read_channel_data(struct ad7156_dev *dev, uint8_t channel)
Reads a 12-bit sample from the selected channel.
Definition: ad7156.c:436
void ad7156_set_range(struct ad7156_dev *dev, uint32_t channel, uint8_t range)
Sets the input range of the specified channel.
Definition: ad7156.c:247
float ad7156_wait_read_channel_capacitance(struct ad7156_dev *dev, uint8_t channel)
Waits for a finished CDC conversion the selected channel, reads a sample and converts the data to pic...
Definition: ad7156.c:539
void ad7156_set_register_value(struct ad7156_dev *dev, uint16_t register_value, uint8_t register_address, uint8_t bytes_number)
Writes data into one or two registers.
Definition: ad7156.c:79
#define AD7156_CONFIG_EN_CH1
Definition: ad7156.h:113
void ad7156_set_threshold(struct ad7156_dev *dev, uint8_t channel, float p_fthr)
Writes to the threshold register when threshold fixed mode is enabled.
Definition: ad7156.c:371
int8_t ad7156_init(struct ad7156_dev **device, struct ad7156_init_param init_param)
Initializes the communication peripheral and the initial Values for AD7156 Board.
Definition: ad7156.c:106
#define AD7156_DEFAULT_ID
Definition: ad7156.h:155
void ad7156_reset(struct ad7156_dev *dev)
Resets the device.
Definition: ad7156.c:159
void ad7156_set_sensitivity(struct ad7156_dev *dev, uint8_t channel, float p_fsensitivity)
Writes a value(pF) to the sensitivity register. This functions should be used when adaptive threshold...
Definition: ad7156.c:407
float ad7156_wait_read_channel_capacitance(struct ad7156_dev *dev, uint8_t channel)
Waits for a finished CDC conversion the selected channel, reads a sample and converts the data to pic...
Definition: ad7156.c:539
#define AD7156_STATUS_RDY2
Definition: ad7156.h:87
void ad7156_get_register_value(struct ad7156_dev *dev, uint8_t *p_read_data, uint8_t register_address, uint8_t bytes_number)
Performs a burst read of a specified number of registers.
Definition: ad7156.c:60