no-OS
ad7124.h
Go to the documentation of this file.
1 /***************************************************************************/
33 #ifndef __AD7124_H__
34 #define __AD7124_H__
35 
36 /******************************************************************************/
37 /***************************** Include Files **********************************/
38 /******************************************************************************/
39 #include <stdint.h>
40 #include <stdbool.h>
41 #include "no_os_spi.h"
42 #include "no_os_delay.h"
43 #include "no_os_util.h"
44 
45 /******************************************************************************/
46 /********************** Macros and Constants Definitions **********************/
47 /******************************************************************************/
48 #define AD7124_RW 1 /* Read and Write */
49 #define AD7124_R 2 /* Read only */
50 #define AD7124_W 3 /* Write only */
51 
52 /* Total Number of Setups */
53 #define AD7124_MAX_SETUPS 8
54 /* Maximum number of channels */
55 #define AD7124_MAX_CHANNELS 16
56 
57 /* AD7124-4 Standard Device ID */
58 #define AD7124_4_STD_ID 0x04
59 /* AD7124-4 B Grade Device ID */
60 #define AD7124_4_B_GRADE_ID 0x06
61 /* Device ID for the re-designed die in the AD7124-4 standard part and B-grade */
62 #define AD7124_4_NEW_ID 0x07
63 
64 /* AD7124-8 Standard Device ID */
65 #define AD7124_8_STD_ID 0x14
66 /* AD7124-8 B and W Grade Device ID */
67 #define AD7124_8_B_W_GRADE_ID 0x16
68 /* Device ID for the re-designed die in the AD7124-8 standard part, B-grade and W-grade */
69 #define AD7124_8_NEW_ID 0x17
70 
71 /* AD7124 Register Map */
72 #define AD7124_COMM_REG 0x00
73 #define AD7124_STATUS_REG 0x00
74 #define AD7124_ADC_CTRL_REG 0x01
75 #define AD7124_DATA_REG 0x02
76 #define AD7124_IO_CTRL1_REG 0x03
77 #define AD7124_IO_CTRL2_REG 0x04
78 #define AD7124_ID_REG 0x05
79 #define AD7124_ERR_REG 0x06
80 #define AD7124_ERREN_REG 0x07
81 #define AD7124_CH0_MAP_REG 0x09
82 #define AD7124_CH1_MAP_REG 0x0A
83 #define AD7124_CH2_MAP_REG 0x0B
84 #define AD7124_CH3_MAP_REG 0x0C
85 #define AD7124_CH4_MAP_REG 0x0D
86 #define AD7124_CH5_MAP_REG 0x0E
87 #define AD7124_CH6_MAP_REG 0x0F
88 #define AD7124_CH7_MAP_REG 0x10
89 #define AD7124_CH8_MAP_REG 0x11
90 #define AD7124_CH9_MAP_REG 0x12
91 #define AD7124_CH10_MAP_REG 0x13
92 #define AD7124_CH11_MAP_REG 0x14
93 #define AD7124_CH12_MAP_REG 0x15
94 #define AD7124_CH13_MAP_REG 0x16
95 #define AD7124_CH14_MAP_REG 0x17
96 #define AD7124_CH15_MAP_REG 0x18
97 #define AD7124_CFG0_REG 0x19
98 #define AD7124_CFG1_REG 0x1A
99 #define AD7124_CFG2_REG 0x1B
100 #define AD7124_CFG3_REG 0x1C
101 #define AD7124_CFG4_REG 0x1D
102 #define AD7124_CFG5_REG 0x1E
103 #define AD7124_CFG6_REG 0x1F
104 #define AD7124_CFG7_REG 0x20
105 #define AD7124_FILT0_REG 0x21
106 #define AD7124_FILT1_REG 0x22
107 #define AD7124_FILT2_REG 0x23
108 #define AD7124_FILT3_REG 0x24
109 #define AD7124_FILT4_REG 0x25
110 #define AD7124_FILT5_REG 0x26
111 #define AD7124_FILT6_REG 0x27
112 #define AD7124_FILT7_REG 0x28
113 #define AD7124_OFFS0_REG 0x29
114 #define AD7124_OFFS1_REG 0x2A
115 #define AD7124_OFFS2_REG 0x2B
116 #define AD7124_OFFS3_REG 0x2C
117 #define AD7124_OFFS4_REG 0x2D
118 #define AD7124_OFFS5_REG 0x2E
119 #define AD7124_OFFS6_REG 0x2F
120 #define AD7124_OFFS7_REG 0x30
121 #define AD7124_GAIN0_REG 0x31
122 #define AD7124_GAIN1_REG 0x32
123 #define AD7124_GAIN2_REG 0x33
124 #define AD7124_GAIN3_REG 0x34
125 #define AD7124_GAIN4_REG 0x35
126 #define AD7124_GAIN5_REG 0x36
127 #define AD7124_GAIN6_REG 0x37
128 #define AD7124_GAIN7_REG 0x38
129 
130 /* Communication Register bits */
131 #define AD7124_COMM_REG_WEN (0 << 7)
132 #define AD7124_COMM_REG_WR (0 << 6)
133 #define AD7124_COMM_REG_RD (1 << 6)
134 #define AD7124_COMM_REG_RA(x) ((x) & 0x3F)
135 
136 /* Status Register bits */
137 #define AD7124_STATUS_REG_RDY (1 << 7)
138 #define AD7124_STATUS_REG_ERROR_FLAG (1 << 6)
139 #define AD7124_STATUS_REG_POR_FLAG (1 << 4)
140 #define AD7124_STATUS_REG_CH_ACTIVE(x) ((x) & 0xF)
141 
142 /* ADC_Control Register bits */
143 #define AD7124_ADC_CTRL_REG_DOUT_RDY_DEL (1 << 12)
144 #define AD7124_ADC_CTRL_REG_CONT_READ (1 << 11)
145 #define AD7124_ADC_CTRL_REG_DATA_STATUS (1 << 10)
146 #define AD7124_ADC_CTRL_REG_CS_EN (1 << 9)
147 #define AD7124_ADC_CTRL_REG_REF_EN (1 << 8)
148 #define AD7124_ADC_CTRL_REG_POWER_MODE(x) (((x) & 0x3) << 6)
149 #define AD7124_ADC_CTRL_REG_MODE(x) (((x) & 0xF) << 2)
150 #define AD7124_ADC_CTRL_REG_CLK_SEL(x) (((x) & 0x3) << 0)
151 
152 /* IO_Control_1 Register bits */
153 #define AD7124_IO_CTRL1_REG_GPIO_DAT2 (1 << 23)
154 #define AD7124_IO_CTRL1_REG_GPIO_DAT1 (1 << 22)
155 #define AD7124_IO_CTRL1_REG_GPIO_CTRL2 (1 << 19)
156 #define AD7124_IO_CTRL1_REG_GPIO_CTRL1 (1 << 18)
157 #define AD7124_IO_CTRL1_REG_PDSW (1 << 15)
158 #define AD7124_IO_CTRL1_REG_IOUT1(x) (((x) & 0x7) << 11)
159 #define AD7124_IO_CTRL1_REG_IOUT0(x) (((x) & 0x7) << 8)
160 #define AD7124_IO_CTRL1_REG_IOUT_CH1(x) (((x) & 0xF) << 4)
161 #define AD7124_IO_CTRL1_REG_IOUT_CH0(x) (((x) & 0xF) << 0)
162 
163 /* IO_Control_1 AD7124-8 specific bits */
164 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT4 (1 << 23)
165 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT3 (1 << 22)
166 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT2 (1 << 21)
167 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT1 (1 << 20)
168 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL4 (1 << 19)
169 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL3 (1 << 18)
170 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL2 (1 << 17)
171 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL1 (1 << 16)
172 
173 /* IO_Control_2 Register bits */
174 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 15)
175 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 14)
176 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 11)
177 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 10)
178 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 5)
179 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 4)
180 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
181 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
182 
183 /* IO_Control_2 AD7124-8 specific bits */
184 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS15 (1 << 15)
185 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS14 (1 << 14)
186 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS13 (1 << 13)
187 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS12 (1 << 12)
188 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS11 (1 << 11)
189 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS10 (1 << 10)
190 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS9 (1 << 9)
191 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS8 (1 << 8)
192 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 7)
193 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 6)
194 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 5)
195 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 4)
196 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 3)
197 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 2)
198 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
199 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
200 
201 /* ID Register bits */
202 #define AD7124_ID_REG_DEVICE_ID(x) (((x) & 0xF) << 4)
203 #define AD7124_ID_REG_SILICON_REV(x) (((x) & 0xF) << 0)
204 
205 /* Error Register bits */
206 #define AD7124_ERR_REG_LDO_CAP_ERR (1 << 19)
207 #define AD7124_ERR_REG_ADC_CAL_ERR (1 << 18)
208 #define AD7124_ERR_REG_ADC_CONV_ERR (1 << 17)
209 #define AD7124_ERR_REG_ADC_SAT_ERR (1 << 16)
210 #define AD7124_ERR_REG_AINP_OV_ERR (1 << 15)
211 #define AD7124_ERR_REG_AINP_UV_ERR (1 << 14)
212 #define AD7124_ERR_REG_AINM_OV_ERR (1 << 13)
213 #define AD7124_ERR_REG_AINM_UV_ERR (1 << 12)
214 #define AD7124_ERR_REG_REF_DET_ERR (1 << 11)
215 #define AD7124_ERR_REG_DLDO_PSM_ERR (1 << 9)
216 #define AD7124_ERR_REG_ALDO_PSM_ERR (1 << 7)
217 #define AD7124_ERR_REG_SPI_IGNORE_ERR (1 << 6)
218 #define AD7124_ERR_REG_SPI_SLCK_CNT_ERR (1 << 5)
219 #define AD7124_ERR_REG_SPI_READ_ERR (1 << 4)
220 #define AD7124_ERR_REG_SPI_WRITE_ERR (1 << 3)
221 #define AD7124_ERR_REG_SPI_CRC_ERR (1 << 2)
222 #define AD7124_ERR_REG_MM_CRC_ERR (1 << 1)
223 #define AD7124_ERR_REG_ROM_CRC_ERR (1 << 0)
224 
225 /* Error_En Register bits */
226 #define AD7124_ERREN_REG_MCLK_CNT_EN (1 << 22)
227 #define AD7124_ERREN_REG_LDO_CAP_CHK_TEST_EN (1 << 21)
228 #define AD7124_ERREN_REG_LDO_CAP_CHK(x) (((x) & 0x3) << 19)
229 #define AD7124_ERREN_REG_ADC_CAL_ERR_EN (1 << 18)
230 #define AD7124_ERREN_REG_ADC_CONV_ERR_EN (1 << 17)
231 #define AD7124_ERREN_REG_ADC_SAT_ERR_EN (1 << 16)
232 #define AD7124_ERREN_REG_AINP_OV_ERR_EN (1 << 15)
233 #define AD7124_ERREN_REG_AINP_UV_ERR_EN (1 << 14)
234 #define AD7124_ERREN_REG_AINM_OV_ERR_EN (1 << 13)
235 #define AD7124_ERREN_REG_AINM_UV_ERR_EN (1 << 12)
236 #define AD7124_ERREN_REG_REF_DET_ERR_EN (1 << 11)
237 #define AD7124_ERREN_REG_DLDO_PSM_TRIP_TEST_EN (1 << 10)
238 #define AD7124_ERREN_REG_DLDO_PSM_ERR_ERR (1 << 9)
239 #define AD7124_ERREN_REG_ALDO_PSM_TRIP_TEST_EN (1 << 8)
240 #define AD7124_ERREN_REG_ALDO_PSM_ERR_EN (1 << 7)
241 #define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN (1 << 6)
242 #define AD7124_ERREN_REG_SPI_SCLK_CNT_ERR_EN (1 << 5)
243 #define AD7124_ERREN_REG_SPI_READ_ERR_EN (1 << 4)
244 #define AD7124_ERREN_REG_SPI_WRITE_ERR_EN (1 << 3)
245 #define AD7124_ERREN_REG_SPI_CRC_ERR_EN (1 << 2)
246 #define AD7124_ERREN_REG_MM_CRC_ERR_EN (1 << 1)
247 #define AD7124_ERREN_REG_ROM_CRC_ERR_EN (1 << 0)
248 
249 /* Channel Registers 0-15 bits */
250 #define AD7124_CH_MAP_REG_CH_ENABLE (1 << 15)
251 #define AD7124_CH_MAP_REG_SETUP(x) (((x) & 0x7) << 12)
252 #define AD7124_CH_MAP_REG_AINP(x) (((x) & 0x1F) << 5)
253 #define AD7124_CH_MAP_REG_AINM(x) (((x) & 0x1F) << 0)
254 
255 /* Configuration Registers 0-7 bits */
256 #define AD7124_CFG_REG_BIPOLAR (1 << 11)
257 #define AD7124_CFG_REG_BURNOUT(x) (((x) & 0x3) << 9)
258 #define AD7124_CFG_REG_REF_BUFP (1 << 8)
259 #define AD7124_CFG_REG_REF_BUFM (1 << 7)
260 #define AD7124_CFG_REG_AIN_BUFP (1 << 6)
261 #define AD7124_CFG_REG_AINN_BUFM (1 << 5)
262 #define AD7124_CFG_REG_REF_SEL(x) ((x) & 0x3) << 3
263 #define AD7124_CFG_REG_PGA(x) (((x) & 0x7) << 0)
264 
265 /* Filter Register 0-7 bits */
266 #define AD7124_FILT_REG_FILTER(x) (((x) & 0x7) << 21)
267 #define AD7124_FILT_REG_REJ60 (1 << 20)
268 #define AD7124_FILT_REG_POST_FILTER(x) (((x) & 0x7) << 17)
269 #define AD7124_FILT_REG_SINGLE_CYCLE (1 << 16)
270 #define AD7124_FILT_REG_FS(x) (((x) & 0x7FF) << 0)
271 
272 #define AD7124_CRC8_POLYNOMIAL_REPRESENTATION 0x07 /* x8 + x2 + x + 1 */
273 #define AD7124_DISABLE_CRC 0
274 #define AD7124_USE_CRC 1
275 #define AD7124_CHMAP_REG_SETUP_SEL_MSK NO_OS_GENMASK(14,12)
276 #define AD7124_CHMAP_REG_AINPOS_MSK NO_OS_GENMASK(9,5)
277 #define AD7124_CHMAP_REG_AINNEG_MSK NO_OS_GENMASK(4,0)
278 #define AD7124_ADC_CTRL_REG_MODE_MSK NO_OS_GENMASK(5,2)
279 #define AD7124_SETUP_CONF_REG_REF_SEL_MSK NO_OS_GENMASK(4,3)
280 #define AD7124_REF_BUF_MSK NO_OS_GENMASK(8,7)
281 #define AD7124_AIN_BUF_MSK NO_OS_GENMASK(6,5)
282 #define AD7124_POWER_MODE_MSK NO_OS_GENMASK(7,6)
283 
284 /******************************************************************************/
285 /*************************** Types Declarations *******************************/
286 /******************************************************************************/
294 };
295 
311 };
312 
348 };
349 
357 };
358 
365  uint8_t setup_sel;
367 };
368 
374  /* External Reference REFIN1+/-*/
376  /* External Reference REFIN2+/-*/
378  /* Internal 2.5V Reference */
380  /* AVDD - AVSS */
382  /* Maximum Reference Sources */
384 };
385 
392  bool ref_buff;
393  bool ain_buff;
395 };
396 
405 };
406 
407 /* Device register info */
409  int32_t addr;
410  int32_t value;
411  int32_t size;
412  int32_t rw;
413 };
414 
415 /* AD7124 registers list */
475 };
476 
481 struct ad7124_dev {
482  /* SPI */
484  /* Device Settings */
486  int16_t use_crc;
487  int16_t check_ready;
490  /* Active Device */
492  /* Reference enable */
493  bool ref_en;
494  /* Power modes */
496  /* Setups */
498  /* Channel Mapping*/
500 };
501 
503  /* SPI */
505  /* Device Settings */
507  int16_t use_crc;
508  int16_t check_ready;
511  /* Active Device */
513  /* Reference enable */
514  bool ref_en;
515  /* Power modes */
517  /* Setups */
519  /* Channel Mapping*/
521 };
522 
523 /******************************************************************************/
524 /************************ Functions Declarations ******************************/
525 /******************************************************************************/
526 /* Reads the value of the specified register without a device state check. */
527 int32_t ad7124_no_check_read_register(struct ad7124_dev *dev,
528  struct ad7124_st_reg* p_reg);
529 
530 /* Writes the value of the specified register without a device state check. */
531 int32_t ad7124_no_check_write_register(struct ad7124_dev *dev,
532  struct ad7124_st_reg reg);
533 
534 /* Reads the value of the specified register. */
535 int32_t ad7124_read_register(struct ad7124_dev *dev,
536  struct ad7124_st_reg* p_reg);
537 
538 /* Wrap the read register function to give it a modern signature. */
539 int32_t ad7124_read_register2(struct ad7124_dev *dev,
540  uint32_t reg,
541  uint32_t *readval);
542 
543 /* Writes the value of the specified register. */
544 int32_t ad7124_write_register(struct ad7124_dev *dev,
545  struct ad7124_st_reg reg);
546 
547 /* Wrap the write register function to give it a modern signature. */
548 int32_t ad7124_write_register2(struct ad7124_dev *dev,
549  uint32_t reg,
550  uint32_t writeval);
551 
552 /* Resets the device. */
553 int32_t ad7124_reset(struct ad7124_dev *dev);
554 
555 /* Waits until the device can accept read and write user actions. */
556 int32_t ad7124_wait_for_spi_ready(struct ad7124_dev *dev,
557  uint32_t timeout);
558 
559 /* Waits until the device finishes the power-on reset operation. */
560 int32_t ad7124_wait_to_power_on(struct ad7124_dev *dev,
561  uint32_t timeout);
562 
563 /* Waits until a new conversion result is available. */
564 int32_t ad7124_wait_for_conv_ready(struct ad7124_dev *dev,
565  uint32_t timeout);
566 
567 /* Reads the conversion result from the device. */
568 int32_t ad7124_read_data(struct ad7124_dev *dev,
569  int32_t* p_data);
570 
571 /* Get the ID of the channel of the latest conversion. */
572 int32_t ad7124_get_read_chan_id(struct ad7124_dev *dev, uint32_t *status);
573 
574 /* Computes the CRC checksum for a data buffer. */
575 uint8_t ad7124_compute_crc8(uint8_t* p_buf,
576  uint8_t buf_size);
577 
578 /* Computes the XOR checksum for a data buffer. */
579 uint8_t AD7124_ComputeXOR8(uint8_t * p_buf,
580  uint8_t buf_size);
581 
582 /* Updates the CRC settings. */
583 void ad7124_update_crcsetting(struct ad7124_dev *dev);
584 
585 /* Updates the device SPI interface settings. */
587 
588 /* Get the AD7124 reference clock. */
589 int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk);
590 
591 /* Get the filter coefficient for the sample rate. */
592 int32_t ad7124_fltcoff_get(struct ad7124_dev *dev,
593  int16_t chn_no,
594  uint16_t *flt_coff);
595 
596 /* Calculate ODR of the device. */
597 float ad7124_get_odr(struct ad7124_dev *dev, int16_t ch_no);
598 
599 /* Set ODR of the device. */
600 int32_t ad7124_set_odr(struct ad7124_dev *dev,
601  float odr,
602  int16_t chn_no);
603 
604 /* SPI write to device using a mask. */
605 int ad7124_reg_write_msk(struct ad7124_dev *dev,
606  uint32_t reg_addr,
607  uint32_t data,
608  uint32_t mask);
609 
610 /* Set ADC Mode */
611 int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode mode);
612 
613 /* Enable/Disable Channels */
615  uint8_t chn_no,
616  bool channel_status);
617 
618 /* Configure Analog inputs to channel */
620  uint8_t chn_no,
621  struct ad7124_analog_inputs analog_input);
622 
623 /* Assign setup to channel */
625  uint8_t ch_no,
626  uint8_t setup);
627 
628 /* Assign polarity to setup */
630  bool bipolar,
631  uint8_t setup_id);
632 
633 /* Assign reference source to setup */
635  enum ad7124_reference_source ref_source,
636  uint8_t setup_id,
637  bool ref_en);
638 
639 /* Enable/Disable input and reference buffers to setup */
641  bool ain_buff,
642  bool ref_buff,
643  uint8_t setup_id);
644 
645 /* Select the power mode */
647  enum ad7124_power_mode mode);
648 
649 /* Initializes the AD7124 */
650 int32_t ad7124_setup(struct ad7124_dev **device,
651  struct ad7124_init_param *init_param);
652 
653 /* Free the resources allocated by ad7124_setup(). */
654 int32_t ad7124_remove(struct ad7124_dev *dev);
655 
656 #endif /* __AD7124_H__ */
657 
ad7124_dev::active_device
enum ad7124_device_type active_device
Definition: ad7124.h:491
AD7124_AIN9
@ AD7124_AIN9
Definition: ad7124.h:327
ad7124_dev::spi_desc
struct no_os_spi_desc * spi_desc
Definition: ad7124.h:483
ad7124_dev::use_crc
int16_t use_crc
Definition: ad7124.h:486
AD7124_ADC_Control
@ AD7124_ADC_Control
Definition: ad7124.h:418
ADC_MAX_MODES
@ ADC_MAX_MODES
Definition: ad7124.h:310
AD7124_REF_BUF_MSK
#define AD7124_REF_BUF_MSK
Definition: ad7124.h:280
AD7124_Config_6
@ AD7124_Config_6
Definition: ad7124.h:448
timeout
uint32_t timeout
Definition: ad413x.c:49
no_os_alloc.h
ad7124_st_reg::value
int32_t value
Definition: ad7124.h:410
AD7124_8_NEW_ID
#define AD7124_8_NEW_ID
Definition: ad7124.h:69
AD7124_8_B_W_GRADE_ID
#define AD7124_8_B_W_GRADE_ID
Definition: ad7124.h:67
ad7124_analog_inputs::ainp
enum ad7124_analog_input ainp
Definition: ad7124.h:355
iio_trigger.h
Header file for iio_trigger.
ad7124_reset
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:258
AD7124_Config_1
@ AD7124_Config_1
Definition: ad7124.h:443
AD7124_IN_FULL_SCALE_GAIN
@ AD7124_IN_FULL_SCALE_GAIN
Definition: ad7124.h:307
AD7124_Filter_6
@ AD7124_Filter_6
Definition: ad7124.h:456
ad7124_init_param::setups
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:518
ad7124_init_param::use_crc
int16_t use_crc
Definition: ad7124.h:507
AD7124_IDLE
@ AD7124_IDLE
Definition: ad7124.h:305
ad7124_remove
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1126
AD7124_IOCon2
@ AD7124_IOCon2
Definition: ad7124.h:421
AD7124_DLDO_DGND_P
@ AD7124_DLDO_DGND_P
Definition: ad7124.h:344
ad7124_analog_inputs::ainm
enum ad7124_analog_input ainm
Definition: ad7124.h:356
AD7124_4_NEW_ID
#define AD7124_4_NEW_ID
Definition: ad7124.h:62
ad7124_reg_write_msk
int ad7124_reg_write_msk(struct ad7124_dev *dev, uint32_t reg_addr, uint32_t data, uint32_t mask)
SPI internal register write to device using a mask.
Definition: ad7124.c:694
AD7124_STATUS_REG_POR_FLAG
#define AD7124_STATUS_REG_POR_FLAG
Definition: ad7124.h:139
no_os_spi_write_and_read
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
AD7124_COMM_REG_WEN
#define AD7124_COMM_REG_WEN
Definition: ad7124.h:131
AD7124_FILT_REG_FS
#define AD7124_FILT_REG_FS(x)
Definition: ad7124.h:270
ad7124_dev
Device Structure.
Definition: ad7124.h:481
AD7124_ALDO_AVSS_M
@ AD7124_ALDO_AVSS_M
Definition: ad7124.h:343
ad7124_wait_to_power_on
int32_t ad7124_wait_to_power_on(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device finishes the power-on reset operation.
Definition: ad7124.c:326
iio_ad7091r8.h
Header file of IIO AD7091R8 driver header file.
ad7124_channel_setup
Channel setup.
Definition: ad7124.h:390
AD7124_MAX_CHANNELS
#define AD7124_MAX_CHANNELS
Definition: ad7124.h:55
ad7124_set_reference_source
int ad7124_set_reference_source(struct ad7124_dev *device, enum ad7124_reference_source ref_source, uint8_t setup_id, bool ref_en)
Definition: ad7124.c:870
no_os_spi.h
Header file of SPI Interface.
AD7124_IOVDD_DGND_P
@ AD7124_IOVDD_DGND_P
Definition: ad7124.h:340
AD7124_MAX_SETUPS
#define AD7124_MAX_SETUPS
Definition: ad7124.h:53
AD7124_AIN7
@ AD7124_AIN7
Definition: ad7124.h:325
ad7124_dev::check_ready
int16_t check_ready
Definition: ad7124.h:487
ad7124_write_register
int32_t ad7124_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:221
ad7124_reg_write_msk
int ad7124_reg_write_msk(struct ad7124_dev *dev, uint32_t reg_addr, uint32_t data, uint32_t mask)
SPI internal register write to device using a mask.
Definition: ad7124.c:694
AD7124_FILT_REG_POST_FILTER
#define AD7124_FILT_REG_POST_FILTER(x)
Definition: ad7124.h:268
AD7124_ERR_REG
#define AD7124_ERR_REG
Definition: ad7124.h:79
AD7124_Gain_0
@ AD7124_Gain_0
Definition: ad7124.h:466
ad7124_wait_for_conv_ready
int32_t ad7124_wait_for_conv_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until a new conversion result is available.
Definition: ad7124.c:362
AD7124_STATUS_REG_CH_ACTIVE
#define AD7124_STATUS_REG_CH_ACTIVE(x)
Definition: ad7124.h:140
AD7124_Offset_0
@ AD7124_Offset_0
Definition: ad7124.h:458
EXTERNAL_REFIN1
@ EXTERNAL_REFIN1
Definition: ad7124.h:375
AD7124_IOVDD_DGND_M
@ AD7124_IOVDD_DGND_M
Definition: ad7124.h:341
ad7124_dev::chan_map
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:499
AD7124_CFG_REG_AINN_BUFM
#define AD7124_CFG_REG_AINN_BUFM
Definition: ad7124.h:261
iio_trig_disable
int iio_trig_disable(void *trig)
Disable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:127
ad7124_assign_setup
int ad7124_assign_setup(struct ad7124_dev *device, uint8_t ch_no, uint8_t setup)
Assign Setup to Channel.
Definition: ad7124.c:812
AD7124_AIN15
@ AD7124_AIN15
Definition: ad7124.h:333
no_os_delay.h
Header file of Delay functions.
AD7124_Channel_12
@ AD7124_Channel_12
Definition: ad7124.h:438
AD7124_COMM_REG_WR
#define AD7124_COMM_REG_WR
Definition: ad7124.h:132
ad7124_connect_analog_input
int ad7124_connect_analog_input(struct ad7124_dev *device, uint8_t chn_no, struct ad7124_analog_inputs analog_input)
Set Analog Inputs to channel.
Definition: ad7124.c:775
AD7124_STANDBY
@ AD7124_STANDBY
Definition: ad7124.h:303
ad7124_update_dev_spi_settings
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:492
AD7124_CFG_REG_BIPOLAR
#define AD7124_CFG_REG_BIPOLAR
Definition: ad7124.h:256
AD7124_ALDO_AVSS_P
@ AD7124_ALDO_AVSS_P
Definition: ad7124.h:342
ad7124_analog_input
ad7124_analog_input
ADC input sources for each channel.
Definition: ad7124.h:317
AD7124_CH0_MAP_REG
#define AD7124_CH0_MAP_REG
Definition: ad7124.h:81
AD7124_Mclk_Count
@ AD7124_Mclk_Count
Definition: ad7124.h:425
device
Definition: ad9361_util.h:69
AD7124_AIN13
@ AD7124_AIN13
Definition: ad7124.h:331
AD7124_Channel_8
@ AD7124_Channel_8
Definition: ad7124.h:434
AD7124_Gain_1
@ AD7124_Gain_1
Definition: ad7124.h:467
AD7124_Data
@ AD7124_Data
Definition: ad7124.h:419
ad7124_registers
ad7124_registers
Definition: ad7124.h:416
AD7124_Offset_5
@ AD7124_Offset_5
Definition: ad7124.h:463
ad7124_update_crcsetting
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:471
AD7124_USE_CRC
#define AD7124_USE_CRC
Definition: ad7124.h:274
ad7124_no_check_write_register
int32_t ad7124_no_check_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register without checking if the device is ready to accept user req...
Definition: ad7124.c:129
AD7124_AVDD_AVSS_P
@ AD7124_AVDD_AVSS_P
Definition: ad7124.h:338
AD7124_AIN12
@ AD7124_AIN12
Definition: ad7124.h:330
AD7124_Filter_5
@ AD7124_Filter_5
Definition: ad7124.h:455
AD7124_Filter_3
@ AD7124_Filter_3
Definition: ad7124.h:453
ad7124_reference_source
ad7124_reference_source
Type of ADC Reference.
Definition: ad7124.h:373
AD7124_POWER_DOWN
@ AD7124_POWER_DOWN
Definition: ad7124.h:304
ad7124_channel_setup::bi_unipolar
bool bi_unipolar
Definition: ad7124.h:391
AD7124_AIN6
@ AD7124_AIN6
Definition: ad7124.h:324
ad7616_init_param::mode
enum ad7616_mode mode
Definition: ad7616.h:226
AD7124_Filter_1
@ AD7124_Filter_1
Definition: ad7124.h:451
ad7124_channel_map::ain
struct ad7124_analog_inputs ain
Definition: ad7124.h:366
AD7124_Gain_3
@ AD7124_Gain_3
Definition: ad7124.h:469
ad7124_read_data
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:396
AD7124_MID_POWER
@ AD7124_MID_POWER
Definition: ad7124.h:403
AD7124_CHMAP_REG_AINNEG_MSK
#define AD7124_CHMAP_REG_AINNEG_MSK
Definition: ad7124.h:277
ad7124_update_crcsetting
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:471
AD7124_Offset_3
@ AD7124_Offset_3
Definition: ad7124.h:461
ad7124_init_param::ref_en
bool ref_en
Definition: ad7124.h:514
AD7124_CFG0_REG
#define AD7124_CFG0_REG
Definition: ad7124.h:97
ad7124_no_check_write_register
int32_t ad7124_no_check_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register without checking if the device is ready to accept user req...
Definition: ad7124.c:129
AD7124_ADC_CTRL_REG
#define AD7124_ADC_CTRL_REG
Definition: ad7124.h:74
AD7124_Error_En
@ AD7124_Error_En
Definition: ad7124.h:424
AD7124_AIN1
@ AD7124_AIN1
Definition: ad7124.h:319
ad7124_channel_setup::ref_source
enum ad7124_reference_source ref_source
Definition: ad7124.h:394
AD7124_Channel_11
@ AD7124_Channel_11
Definition: ad7124.h:437
ad7124_init_param::active_device
enum ad7124_device_type active_device
Definition: ad7124.h:512
AD7124_Channel_4
@ AD7124_Channel_4
Definition: ad7124.h:430
AD7124_Channel_0
@ AD7124_Channel_0
Definition: ad7124.h:426
ad7124_wait_for_spi_ready
int32_t ad7124_wait_for_spi_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device can accept read and write user actions.
Definition: ad7124.c:290
AD7124_SINGLE
@ AD7124_SINGLE
Definition: ad7124.h:302
AD7124_AIN5
@ AD7124_AIN5
Definition: ad7124.h:323
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
AD7124_CFG_REG_REF_BUFP
#define AD7124_CFG_REG_REF_BUFP
Definition: ad7124.h:258
no_os_field_prep
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
ad7124_dev::mode
enum ad7124_mode mode
Definition: ad7124.h:489
ad7124_read_register
int32_t ad7124_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:174
ad7124_init_param::mode
enum ad7124_mode mode
Definition: ad7124.h:510
AD7124_8_STD_ID
#define AD7124_8_STD_ID
Definition: ad7124.h:65
AD7124_ERREN_REG_SPI_CRC_ERR_EN
#define AD7124_ERREN_REG_SPI_CRC_ERR_EN
Definition: ad7124.h:245
ad7124_st_reg::addr
int32_t addr
Definition: ad7124.h:409
iio.h
Header file of iio.
AD7124_V_20MV_P
@ AD7124_V_20MV_P
Definition: ad7124.h:346
no_os_error.h
Error codes definition.
ad7091r8_iio_timer_trig_desc
struct iio_trigger ad7091r8_iio_timer_trig_desc
Definition: iio_ad7091r8_trig.c:48
AD7124_Config_7
@ AD7124_Config_7
Definition: ad7124.h:449
ad7124_fltcoff_get
int32_t ad7124_fltcoff_get(struct ad7124_dev *dev, int16_t chn_num, uint16_t *flt_coff)
Get the filter coefficient for the sample rate.
Definition: ad7124.c:550
AD7124_LOW_POWER
@ AD7124_LOW_POWER
Definition: ad7124.h:402
ad7124_init_param::chan_map
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:520
AD7124_FILT_REG_FILTER
#define AD7124_FILT_REG_FILTER(x)
Definition: ad7124.h:266
AD7124_ADC_CTRL_REG_REF_EN
#define AD7124_ADC_CTRL_REG_REF_EN
Definition: ad7124.h:147
AD7124_Gain_2
@ AD7124_Gain_2
Definition: ad7124.h:468
AD7124_Offset_6
@ AD7124_Offset_6
Definition: ad7124.h:464
ad7124_dev::power_mode
enum ad7124_power_mode power_mode
Definition: ad7124.h:495
ad7124_init_param::power_mode
enum ad7124_power_mode power_mode
Definition: ad7124.h:516
AD7124_AVSS
@ AD7124_AVSS
Definition: ad7124.h:335
AD7124_AIN0
@ AD7124_AIN0
Definition: ad7124.h:318
ad7124_write_register2
int32_t ad7124_write_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t writeval)
Wrap the write register function to give it a modern signature.
Definition: ad7124.c:244
ad7124_fltcoff_get
int32_t ad7124_fltcoff_get(struct ad7124_dev *dev, int16_t chn_no, uint16_t *flt_coff)
Get the filter coefficient for the sample rate.
Definition: ad7124.c:550
ad7124_no_check_read_register
int32_t ad7124_no_check_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register without checking if the device is ready to accept user requ...
Definition: ad7124.c:60
iio_trig_enable
int iio_trig_enable(void *trig)
Enable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:110
ad7124_channel_map
Channel mapping.
Definition: ad7124.h:363
AD7124_Channel_10
@ AD7124_Channel_10
Definition: ad7124.h:436
ad7124_set_channel_status
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_num, bool channel_status)
Definition: ad7124.c:744
AD7124_Config_0
@ AD7124_Config_0
Definition: ad7124.h:442
AD7124_SETUP_CONF_REG_REF_SEL_MSK
#define AD7124_SETUP_CONF_REG_REF_SEL_MSK
Definition: ad7124.h:279
ad7124_set_adc_mode
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode adc_mode)
Set ADC Mode.
Definition: ad7124.c:718
ad7124_mode
ad7124_mode
ADC Modes of Operation.
Definition: ad7124.h:300
ad7124_set_power_mode
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:966
ad7124_init_param::spi_rdy_poll_cnt
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:509
AD7124_COMM_REG_RD
#define AD7124_COMM_REG_RD
Definition: ad7124.h:133
ID_AD7124_4
@ ID_AD7124_4
Definition: ad7124.h:292
ad7124_init_param::spi_init
struct no_os_spi_init_param * spi_init
Definition: ad7124.h:504
AD7124_STATUS_REG_RDY
#define AD7124_STATUS_REG_RDY
Definition: ad7124.h:137
ID_AD7124_8
@ ID_AD7124_8
Definition: ad7124.h:293
AD7124_Filter_4
@ AD7124_Filter_4
Definition: ad7124.h:454
AD7124_CH_MAP_REG_CH_ENABLE
#define AD7124_CH_MAP_REG_CH_ENABLE
Definition: ad7124.h:250
ad7124_setup
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:990
AD7124_DLDO_DGND_M
@ AD7124_DLDO_DGND_M
Definition: ad7124.h:345
AD7124_Channel_2
@ AD7124_Channel_2
Definition: ad7124.h:428
ad7124_update_dev_spi_settings
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:492
ad7124_set_adc_mode
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode mode)
Set ADC Mode.
Definition: ad7124.c:718
AD7124_Filter_2
@ AD7124_Filter_2
Definition: ad7124.h:452
AD7124_ID
@ AD7124_ID
Definition: ad7124.h:422
ad7124_reset
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:258
AD7124_HIGH_POWER
@ AD7124_HIGH_POWER
Definition: ad7124.h:404
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
ad7124_fclk_get
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:513
ad7124_channel_setup::ref_buff
bool ref_buff
Definition: ad7124.h:392
ad7124_dev::ref_en
bool ref_en
Definition: ad7124.h:493
ad7124_set_power_mode
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:966
AD7124_Config_2
@ AD7124_Config_2
Definition: ad7124.h:444
AD7124_Offset_7
@ AD7124_Offset_7
Definition: ad7124.h:465
ad7124_init_param::check_ready
int16_t check_ready
Definition: ad7124.h:508
AD7124_IN_REF
@ AD7124_IN_REF
Definition: ad7124.h:336
ad7124_connect_analog_input
int ad7124_connect_analog_input(struct ad7124_dev *device, uint8_t chn_num, struct ad7124_analog_inputs analog_input)
Set Analog Inputs to channel.
Definition: ad7124.c:775
AD7124_4_B_GRADE_ID
#define AD7124_4_B_GRADE_ID
Definition: ad7124.h:60
ad7124_remove
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1126
AD7124_ADC_CTRL_REG_MODE_MSK
#define AD7124_ADC_CTRL_REG_MODE_MSK
Definition: ad7124.h:278
AD7124_CFG_REG_REF_BUFM
#define AD7124_CFG_REG_REF_BUFM
Definition: ad7124.h:259
AD7124_Offset_4
@ AD7124_Offset_4
Definition: ad7124.h:462
ad7124_init_param
Definition: ad7124.h:502
AD7124_ComputeXOR8
uint8_t AD7124_ComputeXOR8(uint8_t *p_buf, uint8_t buf_size)
AD7124_Channel_5
@ AD7124_Channel_5
Definition: ad7124.h:431
AD7124_AIN11
@ AD7124_AIN11
Definition: ad7124.h:329
AD7124_AIN_BUF_MSK
#define AD7124_AIN_BUF_MSK
Definition: ad7124.h:281
AD7124_DGND
@ AD7124_DGND
Definition: ad7124.h:337
AD7124_Filter_7
@ AD7124_Filter_7
Definition: ad7124.h:457
AD7124_FILT_REG_SINGLE_CYCLE
#define AD7124_FILT_REG_SINGLE_CYCLE
Definition: ad7124.h:269
AD7124_SYS_ZERO_SCALE_GAIN
@ AD7124_SYS_ZERO_SCALE_GAIN
Definition: ad7124.h:309
ad7124_set_reference_source
int ad7124_set_reference_source(struct ad7124_dev *device, enum ad7124_reference_source ref_source, uint8_t setup_id, bool ref_en)
Definition: ad7124.c:870
ad7124_init_param::regs
struct ad7124_st_reg * regs
Definition: ad7124.h:506
AD7124_4_STD_ID
#define AD7124_4_STD_ID
Definition: ad7124.h:58
AD7124_CHMAP_REG_AINPOS_MSK
#define AD7124_CHMAP_REG_AINPOS_MSK
Definition: ad7124.h:276
AD7124_ERREN_REG_SPI_IGNORE_ERR_EN
#define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN
Definition: ad7124.h:241
no_os_malloc
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
ad7124_wait_for_conv_ready
int32_t ad7124_wait_for_conv_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until a new conversion result is available.
Definition: ad7124.c:362
AD7124_DATA_REG
#define AD7124_DATA_REG
Definition: ad7124.h:75
INTERNAL_REF
@ INTERNAL_REF
Definition: ad7124.h:379
AD7124_Channel_7
@ AD7124_Channel_7
Definition: ad7124.h:433
ad7124_setup
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:990
AD7124_Error
@ AD7124_Error
Definition: ad7124.h:423
ad7124_channel_setup::ain_buff
bool ain_buff
Definition: ad7124.h:393
AD7124_Channel_6
@ AD7124_Channel_6
Definition: ad7124.h:432
AD7124_REG_NO
@ AD7124_REG_NO
Definition: ad7124.h:474
AD7124_Gain_7
@ AD7124_Gain_7
Definition: ad7124.h:473
AD7124_Gain_4
@ AD7124_Gain_4
Definition: ad7124.h:470
AD7124_Channel_1
@ AD7124_Channel_1
Definition: ad7124.h:427
ad7124_compute_crc8
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:442
AD7124_V_20MV_M
@ AD7124_V_20MV_M
Definition: ad7124.h:347
AD7124_SYS_ZERO_SCALE_OFF
@ AD7124_SYS_ZERO_SCALE_OFF
Definition: ad7124.h:308
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
ad7124_enable_buffers
int ad7124_enable_buffers(struct ad7124_dev *device, bool ain_buff, bool ref_buff, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:918
AD7124_Channel_3
@ AD7124_Channel_3
Definition: ad7124.h:429
AD7124_CONTINUOUS
@ AD7124_CONTINUOUS
Definition: ad7124.h:301
AD7124_IOCon1
@ AD7124_IOCon1
Definition: ad7124.h:420
AD7124_DISABLE_CRC
#define AD7124_DISABLE_CRC
Definition: ad7124.h:273
iio_trigger
Definition: iio_types.h:231
AD7124_TEMP_SENSOR
@ AD7124_TEMP_SENSOR
Definition: ad7124.h:334
ad7124_analog_inputs
Positive and negative analog inputs.
Definition: ad7124.h:354
ad7124_channel_map::setup_sel
uint8_t setup_sel
Definition: ad7124.h:365
EXTERNAL_REFIN2
@ EXTERNAL_REFIN2
Definition: ad7124.h:377
ad7124_set_odr
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_num)
Set ODR of the device.
Definition: ad7124.c:651
AD7124_Offset_1
@ AD7124_Offset_1
Definition: ad7124.h:459
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
ad7124_get_odr
float ad7124_get_odr(struct ad7124_dev *dev, int16_t ch_no)
Calculate ODR of the device.
Definition: ad7124.c:602
AD7124_Offset_2
@ AD7124_Offset_2
Definition: ad7124.h:460
ad7124_dev::setups
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:497
AD7124_Config_4
@ AD7124_Config_4
Definition: ad7124.h:446
ad7124_read_register2
int32_t ad7124_read_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t *readval)
Wrap the read register function to give it a modern signature.
Definition: ad7124.c:197
AD7124_POWER_MODE_MSK
#define AD7124_POWER_MODE_MSK
Definition: ad7124.h:282
bipolar
@ bipolar
Definition: ad5446.h:71
ad7124_st_reg
Definition: ad7124.h:408
ad7124_enable_buffers
int ad7124_enable_buffers(struct ad7124_dev *device, bool inbuf_en, bool refbuf_en, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:918
AD7124_Gain_6
@ AD7124_Gain_6
Definition: ad7124.h:472
ad7124_read_data
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:396
ad7124_set_polarity
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:839
AD7124_AIN8
@ AD7124_AIN8
Definition: ad7124.h:326
MAX_REF_SOURCES
@ MAX_REF_SOURCES
Definition: ad7124.h:383
ad7124_channel_map::channel_enable
bool channel_enable
Definition: ad7124.h:364
no_os_spi_remove
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
ad7124_compute_crc8
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:442
ad7124.h
AD7124 header file. Devices: AD7124-4, AD7124-8.
ad7124_assign_setup
int ad7124_assign_setup(struct ad7124_dev *device, uint8_t chn_num, uint8_t setup)
Assign Setup to Channel.
Definition: ad7124.c:812
AD7124_COMM_REG_RA
#define AD7124_COMM_REG_RA(x)
Definition: ad7124.h:134
ad7124_get_read_chan_id
int32_t ad7124_get_read_chan_id(struct ad7124_dev *dev, uint32_t *status)
Get the ID of the channel of the latest conversion.
Definition: ad7124.c:422
AD7124_CHMAP_REG_SETUP_SEL_MSK
#define AD7124_CHMAP_REG_SETUP_SEL_MSK
Definition: ad7124.h:275
ad7124_power_mode
ad7124_power_mode
Power modes.
Definition: ad7124.h:401
ad7124_wait_for_spi_ready
int32_t ad7124_wait_for_spi_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device can accept read and write user actions.
Definition: ad7124.c:290
AD7124_AIN3
@ AD7124_AIN3
Definition: ad7124.h:321
AD7124_POST_RESET_DELAY
#define AD7124_POST_RESET_DELAY
Definition: ad7124.c:49
ad7124_read_register
int32_t ad7124_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:174
ad7124_get_odr
float ad7124_get_odr(struct ad7124_dev *dev, int16_t chn_num)
Calculate ODR of the device.
Definition: ad7124.c:602
AD7124_Channel_13
@ AD7124_Channel_13
Definition: ad7124.h:439
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
ad7124_fclk_get
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:513
AD7124_ERR_REG_SPI_IGNORE_ERR
#define AD7124_ERR_REG_SPI_IGNORE_ERR
Definition: ad7124.h:217
AD7124_Channel_15
@ AD7124_Channel_15
Definition: ad7124.h:441
AD7124_AIN14
@ AD7124_AIN14
Definition: ad7124.h:332
iio_trigger::is_synchronous
bool is_synchronous
Definition: iio_types.h:234
ad7124_st_reg::rw
int32_t rw
Definition: ad7124.h:412
ad7124_device_type
ad7124_device_type
Definition: ad7124.h:291
AD7124_CFG_REG_AIN_BUFP
#define AD7124_CFG_REG_AIN_BUFP
Definition: ad7124.h:260
AD7124_Channel_9
@ AD7124_Channel_9
Definition: ad7124.h:435
no_os_util.h
Header file of utility functions.
ad7124_write_register
int32_t ad7124_write_register(struct ad7124_dev *dev, struct ad7124_st_reg p_reg)
Writes the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:221
AD7124_AVDD_AVSS_M
@ AD7124_AVDD_AVSS_M
Definition: ad7124.h:339
AD7124_ID_REG
#define AD7124_ID_REG
Definition: ad7124.h:78
AD7124_AIN4
@ AD7124_AIN4
Definition: ad7124.h:322
AD7124_AIN10
@ AD7124_AIN10
Definition: ad7124.h:328
ad7124_st_reg::size
int32_t size
Definition: ad7124.h:411
ad7124_read_register2
int32_t ad7124_read_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t *readval)
Wrap the read register function to give it a modern signature.
Definition: ad7124.c:197
ad7124_set_channel_status
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_no, bool channel_status)
Definition: ad7124.c:744
AD7124_Gain_5
@ AD7124_Gain_5
Definition: ad7124.h:471
AD7124_Channel_14
@ AD7124_Channel_14
Definition: ad7124.h:440
ad7124_dev::regs
struct ad7124_st_reg * regs
Definition: ad7124.h:485
AD7124_Status
@ AD7124_Status
Definition: ad7124.h:417
ad7124_dev::spi_rdy_poll_cnt
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:488
AD7124_CRC8_POLYNOMIAL_REPRESENTATION
#define AD7124_CRC8_POLYNOMIAL_REPRESENTATION
Definition: ad7124.h:272
AD7124_STATUS_REG
#define AD7124_STATUS_REG
Definition: ad7124.h:73
AD7124_Filter_0
@ AD7124_Filter_0
Definition: ad7124.h:450
ad7124_set_polarity
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:839
AD7124_ADC_CTRL_REG_DATA_STATUS
#define AD7124_ADC_CTRL_REG_DATA_STATUS
Definition: ad7124.h:145
ad7124_no_check_read_register
int32_t ad7124_no_check_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register without checking if the device is ready to accept user requ...
Definition: ad7124.c:60
ad7124_write_register2
int32_t ad7124_write_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t writeval)
Wrap the write register function to give it a modern signature.
Definition: ad7124.c:244
AD7124_Config_3
@ AD7124_Config_3
Definition: ad7124.h:445
ad7124_wait_to_power_on
int32_t ad7124_wait_to_power_on(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device finishes the power-on reset operation.
Definition: ad7124.c:326
ad7124_get_read_chan_id
int32_t ad7124_get_read_chan_id(struct ad7124_dev *dev, uint32_t *status)
Get the ID of the channel of the latest conversion.
Definition: ad7124.c:422
AD7124_AIN2
@ AD7124_AIN2
Definition: ad7124.h:320
AD7124_Config_5
@ AD7124_Config_5
Definition: ad7124.h:447
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
ad7124_set_odr
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_no)
Set ODR of the device.
Definition: ad7124.c:651
AVDD_AVSS
@ AVDD_AVSS
Definition: ad7124.h:381
AD7124_IN_ZERO_SCALE_OFF
@ AD7124_IN_ZERO_SCALE_OFF
Definition: ad7124.h:306