adc13  2.0.0.0
adc13.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef ADC13_H
29 #define ADC13_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
38 #include "math.h"
39 
60 #define ADC13_CMD_NOP 0x00
61 #define ADC13_CMD_RESET 0x06
62 #define ADC13_CMD_START1 0x08
63 #define ADC13_CMD_STOP1 0x0A
64 #define ADC13_CMD_START2 0x0C
65 #define ADC13_CMD_STOP2 0x0E
66 #define ADC13_CMD_RDATA1 0x12
67 #define ADC13_CMD_RDATA2 0x14
68 #define ADC13_CMD_SYOCAL1 0x16
69 #define ADC13_CMD_SYGCAL1 0x17
70 #define ADC13_CMD_SFOCAL1 0x19
71 #define ADC13_CMD_SYOCAL2 0x1B
72 #define ADC13_CMD_SYGCAL2 0x1C
73 #define ADC13_CMD_SFOCAL2 0x1E
74 #define ADC13_CMD_RREG 0x20
75 #define ADC13_CMD_WREG 0x40
76  // adc13_cmd
78 
93 #define ADC13_REG_ID 0x00
94 #define ADC13_REG_POWER 0x01
95 #define ADC13_REG_INTERFACE 0x02
96 #define ADC13_REG_MODE0 0x03
97 #define ADC13_REG_MODE1 0x04
98 #define ADC13_REG_MODE2 0x05
99 #define ADC13_REG_INPMUX 0x06
100 #define ADC13_REG_OFCAL0 0x07
101 #define ADC13_REG_OFCAL1 0x08
102 #define ADC13_REG_OFCAL2 0x09
103 #define ADC13_REG_FSCAL0 0x0A
104 #define ADC13_REG_FSCAL1 0x0B
105 #define ADC13_REG_FSCAL2 0x0C
106 #define ADC13_REG_IDACMUX 0x0D
107 #define ADC13_REG_IDACMAG 0x0E
108 #define ADC13_REG_REFMUX 0x0F
109 #define ADC13_REG_TDACP 0x10
110 #define ADC13_REG_TDACN 0x11
111 #define ADC13_REG_GPIOCON 0x12
112 #define ADC13_REG_GPIODIR 0x13
113 #define ADC13_REG_GPIODAT 0x14
114  // adc13_reg
116 
131 #define ADC13_ID_DEV_MASK 0xE0
132 #define ADC13_ID_REV_MASK 0x1F
133 #define ADC13_POWER_RESET_MASK 0x10
134 #define ADC13_POWER_VBIAS_MASK 0x02
135 #define ADC13_POWER_INTREF_MASK 0x01
136 #define ADC13_INTERFACE_TIMEOUT_MASK 0x08
137 #define ADC13_INTERFACE_STATUS_MASK 0x04
138 #define ADC13_INTERFACE_CRC_MASK 0x03
139 #define ADC13_MODE0_REFREV_MASK 0x80
140 #define ADC13_MODE0_RUN_MODE_MASK 0x40
141 #define ADC13_MODE0_CHOP_MASK 0x30
142 #define ADC13_MODE0_DELAY_MASK 0x0F
143 #define ADC13_MODE1_FILTER_MASK 0xE0
144 #define ADC13_MODE1_SBADC_MASK 0x10
145 #define ADC13_MODE1_SBPOL_MASK 0x08
146 #define ADC13_MODE1_SBMAG_MASK 0x07
147 #define ADC13_MODE2_BYPASS_MASK 0x80
148 #define ADC13_MODE2_GAIN_MASK 0x70
149 #define ADC13_MODE2_DR_MASK 0x0F
150 #define ADC13_INPMUX_MUXP_MASK 0xF0
151 #define ADC13_INPMUX_MUXN_MASK 0x0F
152 #define ADC13_IDACMUX_MUX2_MASK 0xF0
153 #define ADC13_IDACMUX_MUX1_MASK 0x0F
154 #define ADC13_IDACMAG_MAG2_MASK 0xF0
155 #define ADC13_IDACMAG_MAG1_MASK 0x0F
156 #define ADC13_REFMUX_RMUXP_MASK 0x38
157 #define ADC13_REFMUX_RMUXN_MASK 0x07
158 #define ADC13_TDACP_OUTP_MASK 0x80
159 #define ADC13_TDACP_MAGP_MASK 0x1F
160 #define ADC13_TDACN_OUTN_MASK 0x80
161 #define ADC13_TDACN_MAGN_MASK 0x1F
162 #define ADC13_REG_COUNT_MASK 0x1F
163 
168 #define ADC13_STATUS_ADC2_NEW_DATA 0x80
169 #define ADC13_STATUS_ADC1_NEW_DATA 0x40
170 #define ADC13_STATUS_EXTCLK_EXTERNAL 0x20
171 #define ADC13_STATUS_REF_ALM_LOW_REF 0x10
172 #define ADC13_STATUS_PGAL_ALM_LOW_VOLTAGE 0x08
173 #define ADC13_STATUS_PGAH_ALM_HIGH_VOLTAGE 0x04
174 #define ADC13_STATUS_PGAD_ALM_DIFF_RANGE 0x02
175 #define ADC13_STATUS_RESET_OCCURRED 0x01
176 
181 #define ADC13_POWER_RESET_NO_NEW_RESET 0
182 #define ADC13_POWER_RESET_OCCURRED 1
183 #define ADC13_POWER_VBIAS_DISABLE 0
184 #define ADC13_POWER_VBIAS_ENABLE 1
185 #define ADC13_POWER_INTREF_DISABLE 0
186 #define ADC13_POWER_INTREF_ENABLE 1
187 
192 #define ADC13_INTERFACE_TIMEOUT_DISABLE 0
193 #define ADC13_INTERFACE_TIMEOUT_ENABLE 1
194 #define ADC13_INTERFACE_STATUS_DISABLE 0
195 #define ADC13_INTERFACE_STATUS_ENABLE 1
196 #define ADC13_INTERFACE_CRC_DISABLE 0
197 #define ADC13_INTERFACE_CRC_ENABLE_CHECKSUM 1
198 #define ADC13_INTERFACE_CRC_ENABLE_CRC 2
199 
204 #define ADC13_MODE0_REFREV_NORMAL 0
205 #define ADC13_MODE0_REFREV_REVERSE 1
206 #define ADC13_MODE0_RUN_MODE_CONTINUOUS 0
207 #define ADC13_MODE0_RUN_MODE_ONE_SHOT 1
208 #define ADC13_MODE0_CHOP_DISABLE 0
209 #define ADC13_MODE0_CHOP_ENABLE 1
210 #define ADC13_MODE0_CHOP_IDAC_ENABLE 2
211 #define ADC13_MODE0_CHOP_AND_IDAC_ENABLE 3
212 #define ADC13_MODE0_DELAY_NO_DELAY 0
213 #define ADC13_MODE0_DELAY_8p7uS 1
214 #define ADC13_MODE0_DELAY_17uS 2
215 #define ADC13_MODE0_DELAY_35uS 3
216 #define ADC13_MODE0_DELAY_69uS 4
217 #define ADC13_MODE0_DELAY_139uS 5
218 #define ADC13_MODE0_DELAY_278uS 6
219 #define ADC13_MODE0_DELAY_555uS 7
220 #define ADC13_MODE0_DELAY_1p1mS 8
221 #define ADC13_MODE0_DELAY_2p2mS 9
222 #define ADC13_MODE0_DELAY_4p4mS 10
223 #define ADC13_MODE0_DELAY_8p8mS 11
224 
229 #define ADC13_MODE1_FILTER_SINC1_MODE 0
230 #define ADC13_MODE1_FILTER_SINC2_MODE 1
231 #define ADC13_MODE1_FILTER_SINC3_MODE 2
232 #define ADC13_MODE1_FILTER_SINC4_MODE 3
233 #define ADC13_MODE1_FILTER_FIR_MODE 4
234 #define ADC13_MODE1_SBADC_ADC1_OUT 0
235 #define ADC13_MODE1_SBADC_ADC2_OUT 1
236 #define ADC13_MODE1_SBPOL_PULLUP_MODE 0
237 #define ADC13_MODE1_SBPOL_PULLDOWN_MODE 1
238 #define ADC13_MODE1_SBMAG_NO_CURR_NO_RES 0
239 #define ADC13_MODE1_SBMAG_0p5uA_CURR 1
240 #define ADC13_MODE1_SBMAG_2uA_CURR 2
241 #define ADC13_MODE1_SBMAG_10uA_CURR 3
242 #define ADC13_MODE1_SBMAG_50uA_CURR 4
243 #define ADC13_MODE1_SBMAG_200uA_CURR 5
244 #define ADC13_MODE1_SBMAG_10MOHM_RES 6
245 
250 #define ADC13_MODE2_BYPASS_PGA_ENABLED 0
251 #define ADC13_MODE2_BYPASS_PGA_BYPASSED 1
252 #define ADC13_MODE2_GAIN_1 0
253 #define ADC13_MODE2_GAIN_2 1
254 #define ADC13_MODE2_GAIN_4 2
255 #define ADC13_MODE2_GAIN_8 3
256 #define ADC13_MODE2_GAIN_16 4
257 #define ADC13_MODE2_GAIN_32 5
258 #define ADC13_MODE2_DR_2p5SPS 0
259 #define ADC13_MODE2_DR_5SPS 1
260 #define ADC13_MODE2_DR_10SPS 2
261 #define ADC13_MODE2_DR_16p6SPS 3
262 #define ADC13_MODE2_DR_20SPS 4
263 #define ADC13_MODE2_DR_50SPS 5
264 #define ADC13_MODE2_DR_60SPS 6
265 #define ADC13_MODE2_DR_100SPS 7
266 #define ADC13_MODE2_DR_400SPS 8
267 #define ADC13_MODE2_DR_1200SPS 9
268 #define ADC13_MODE2_DR_2400SPS 10
269 #define ADC13_MODE2_DR_4800SPS 11
270 #define ADC13_MODE2_DR_7200SPS 12
271 #define ADC13_MODE2_DR_14400SPS 13
272 #define ADC13_MODE2_DR_19200SPS 14
273 #define ADC13_MODE2_DR_38400SPS 15
274 
279 #define ADC13_INPMUX_MUXP_AIN0 0
280 #define ADC13_INPMUX_MUXP_AIN1 1
281 #define ADC13_INPMUX_MUXP_AIN2 2
282 #define ADC13_INPMUX_MUXP_AIN3 3
283 #define ADC13_INPMUX_MUXP_AIN4 4
284 #define ADC13_INPMUX_MUXP_AIN5 5
285 #define ADC13_INPMUX_MUXP_AIN6 6
286 #define ADC13_INPMUX_MUXP_AIN7 7
287 #define ADC13_INPMUX_MUXP_AIN8 8
288 #define ADC13_INPMUX_MUXP_AIN9 9
289 #define ADC13_INPMUX_MUXP_AINCOM 10
290 #define ADC13_INPMUX_MUXP_TEMP_SENSOR_POS 11
291 #define ADC13_INPMUX_MUXP_AN_POW_SUPP_POS 12
292 #define ADC13_INPMUX_MUXP_DIG_POW_SUPP_POS 13
293 #define ADC13_INPMUX_MUXP_TDAC_POS 14
294 #define ADC13_INPMUX_MUXP_FLOAT 15
295 #define ADC13_INPMUX_MUXN_AIN0 0
296 #define ADC13_INPMUX_MUXN_AIN1 1
297 #define ADC13_INPMUX_MUXN_AIN2 2
298 #define ADC13_INPMUX_MUXN_AIN3 3
299 #define ADC13_INPMUX_MUXN_AIN4 4
300 #define ADC13_INPMUX_MUXN_AIN5 5
301 #define ADC13_INPMUX_MUXN_AIN6 6
302 #define ADC13_INPMUX_MUXN_AIN7 7
303 #define ADC13_INPMUX_MUXN_AIN8 8
304 #define ADC13_INPMUX_MUXN_AIN9 9
305 #define ADC13_INPMUX_MUXN_AINCOM 10
306 #define ADC13_INPMUX_MUXN_TEMP_SENSOR_NEG 11
307 #define ADC13_INPMUX_MUXN_AN_POW_SUPP_NEG 12
308 #define ADC13_INPMUX_MUXN_DIG_POW_SUPP_NEG 13
309 #define ADC13_INPMUX_MUXN_TDAC_NEG 14
310 #define ADC13_INPMUX_MUXN_FLOAT 15
311 
316 #define ADC13_IDACMUX_MUX2_AIN0 0
317 #define ADC13_IDACMUX_MUX2_AIN1 1
318 #define ADC13_IDACMUX_MUX2_AIN2 2
319 #define ADC13_IDACMUX_MUX2_AIN3 3
320 #define ADC13_IDACMUX_MUX2_AIN4 4
321 #define ADC13_IDACMUX_MUX2_AIN5 5
322 #define ADC13_IDACMUX_MUX2_AIN6 6
323 #define ADC13_IDACMUX_MUX2_AIN7 7
324 #define ADC13_IDACMUX_MUX2_AIN8 8
325 #define ADC13_IDACMUX_MUX2_AIN9 9
326 #define ADC13_IDACMUX_MUX2_AINCOM 10
327 #define ADC13_IDACMUX_MUX2_NO_CONNECTION 11
328 #define ADC13_IDACMUX_MUX1_AIN0 0
329 #define ADC13_IDACMUX_MUX1_AIN1 1
330 #define ADC13_IDACMUX_MUX1_AIN2 2
331 #define ADC13_IDACMUX_MUX1_AIN3 3
332 #define ADC13_IDACMUX_MUX1_AIN4 4
333 #define ADC13_IDACMUX_MUX1_AIN5 5
334 #define ADC13_IDACMUX_MUX1_AIN6 6
335 #define ADC13_IDACMUX_MUX1_AIN7 7
336 #define ADC13_IDACMUX_MUX1_AIN8 8
337 #define ADC13_IDACMUX_MUX1_AIN9 9
338 #define ADC13_IDACMUX_MUX1_AINCOM 10
339 #define ADC13_IDACMUX_MUX1_NO_CONNECTION 11
340 
345 #define ADC13_IDACMAG_MAG2_OFF 0
346 #define ADC13_IDACMAG_MAG2_50uA 1
347 #define ADC13_IDACMAG_MAG2_100uA 2
348 #define ADC13_IDACMAG_MAG2_250uA 3
349 #define ADC13_IDACMAG_MAG2_500uA 4
350 #define ADC13_IDACMAG_MAG2_750uA 5
351 #define ADC13_IDACMAG_MAG2_1000uA 6
352 #define ADC13_IDACMAG_MAG2_1500uA 7
353 #define ADC13_IDACMAG_MAG2_2000uA 8
354 #define ADC13_IDACMAG_MAG2_2500uA 9
355 #define ADC13_IDACMAG_MAG2_3000uA 10
356 #define ADC13_IDACMAG_MAG1_OFF 0
357 #define ADC13_IDACMAG_MAG1_50uA 1
358 #define ADC13_IDACMAG_MAG1_100uA 2
359 #define ADC13_IDACMAG_MAG1_250uA 3
360 #define ADC13_IDACMAG_MAG1_500uA 4
361 #define ADC13_IDACMAG_MAG1_750uA 5
362 #define ADC13_IDACMAG_MAG1_1000uA 6
363 #define ADC13_IDACMAG_MAG1_1500uA 7
364 #define ADC13_IDACMAG_MAG1_2000uA 8
365 #define ADC13_IDACMAG_MAG1_2500uA 9
366 #define ADC13_IDACMAG_MAG1_3000uA 10
367 
372 #define ADC13_REFMUX_RMUXP_INTERNAL 0
373 #define ADC13_REFMUX_RMUXP_EXT_AIN0 1
374 #define ADC13_REFMUX_RMUXP_EXT_AIN2 2
375 #define ADC13_REFMUX_RMUXP_EXT_AIN4 3
376 #define ADC13_REFMUX_RMUXP_INTERNAL_AVDD 4
377 #define ADC13_REFMUX_RMUXN_INTERNAL 0
378 #define ADC13_REFMUX_RMUXN_EXT_AIN1 1
379 #define ADC13_REFMUX_RMUXN_EXT_AIN3 2
380 #define ADC13_REFMUX_RMUXN_EXT_AIN5 3
381 #define ADC13_REFMUX_RMUXN_INTERNAL_AVSS 4
382 
387 #define ADC13_TDACP_OUTP_NO_CONNECTION 0
388 #define ADC13_TDACP_OUTP_AIN6 1
389 #define ADC13_TDACP_MAGP_4p5V 9
390 #define ADC13_TDACP_MAGP_3p5V 8
391 #define ADC13_TDACP_MAGP_3V 7
392 #define ADC13_TDACP_MAGP_2p75V 6
393 #define ADC13_TDACP_MAGP_2p625V 5
394 #define ADC13_TDACP_MAGP_2p5625V 4
395 #define ADC13_TDACP_MAGP_2p53125V 3
396 #define ADC13_TDACP_MAGP_2p515625V 2
397 #define ADC13_TDACP_MAGP_2p5078125V 1
398 #define ADC13_TDACP_MAGP_2p5V 0
399 #define ADC13_TDACP_MAGP_2p4921875V 17
400 #define ADC13_TDACP_MAGP_2p484375V 18
401 #define ADC13_TDACP_MAGP_2p46875V 19
402 #define ADC13_TDACP_MAGP_2p4375V 20
403 #define ADC13_TDACP_MAGP_2p375V 21
404 #define ADC13_TDACP_MAGP_2p25V 22
405 #define ADC13_TDACP_MAGP_2V 23
406 #define ADC13_TDACP_MAGP_1p5V 24
407 #define ADC13_TDACP_MAGP_0p5V 25
408 
413 #define ADC13_TDACN_OUTN_NO_CONNECTION 0
414 #define ADC13_TDACN_OUTN_AIN7 1
415 #define ADC13_TDACN_MAGN_4p5V 9
416 #define ADC13_TDACN_MAGN_3p5V 8
417 #define ADC13_TDACN_MAGN_3V 7
418 #define ADC13_TDACN_MAGN_2p75V 6
419 #define ADC13_TDACN_MAGN_2p625V 5
420 #define ADC13_TDACN_MAGN_2p5625V 4
421 #define ADC13_TDACN_MAGN_2p53125V 3
422 #define ADC13_TDACN_MAGN_2p515625V 2
423 #define ADC13_TDACN_MAGN_2p5078125V 1
424 #define ADC13_TDACN_MAGN_2p5V 0
425 #define ADC13_TDACN_MAGN_2p4921875V 17
426 #define ADC13_TDACN_MAGN_2p484375V 18
427 #define ADC13_TDACN_MAGN_2p46875V 19
428 #define ADC13_TDACN_MAGN_2p4375V 20
429 #define ADC13_TDACN_MAGN_2p375V 21
430 #define ADC13_TDACN_MAGN_2p25V 22
431 #define ADC13_TDACN_MAGN_2V 23
432 #define ADC13_TDACN_MAGN_1p5V 24
433 #define ADC13_TDACN_MAGN_0p5V 25
434 
439 #define ADC13_GPIO0 0x01
440 #define ADC13_GPIO1 0x02
441 #define ADC13_GPIO2 0x04
442 #define ADC13_GPIO3 0x08
443 #define ADC13_GPIO4 0x10
444 #define ADC13_GPIO5 0x20
445 #define ADC13_GPIO6 0x40
446 #define ADC13_GPIO7 0x80
447 
452 #define ADC13_VREF_INTERNAL 2.5
453 #define ADC13_VREF_INTERNAL_AVDD 5
454 #define ADC13_VREF_3V3 3.3
455 #define ADC13_VREF_5V 5
456 
461 #define ADC13_CHECKSUM_CONSTANT 0x9B
462 
467 #define ADC13_TEMP_MILIVOLTS 122.4
468 #define ADC13_TEMP_V_TO_MV 1000
469 #define ADC13_TEMP_COEFF 0.42
470 #define ADC13_TEMP_OFFSET 25.0
471 #define ADC13_TEMP_HEAT_OFFSET 0.7
472 
477 #define GET_RIGHTMOST_SET_BIT( bit_mask ) ( uint8_t )( log10( ( double ) \
478  ( bit_mask & ~( bit_mask - 1 ) ) ) / log10( 2.0 ) )
479 
484 #define SET_REG_BITS( reg_data, bit_mask, in_data ) ( ( reg_data & ~( bit_mask ) ) | \
485  ( ( in_data << GET_RIGHTMOST_SET_BIT( bit_mask ) ) \
486  & bit_mask ) )
487 
492 #define GET_REG_BITS( reg_data, bit_mask ) ( ( reg_data & bit_mask ) >> GET_RIGHTMOST_SET_BIT( bit_mask ) )
493  // adc13_set
495 
510 #define ADC13_MAP_MIKROBUS( cfg, mikrobus ) \
511  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
512  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
513  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
514  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
515  cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
516  cfg.str = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
517  cfg.dtr = MIKROBUS( mikrobus, MIKROBUS_INT )
518  // adc13_map // adc13
521 
526 typedef struct
527 {
528  // Output pins
529  digital_out_t rst;
530  digital_out_t str;
532  // Input pins
533  digital_in_t dtr;
535  // Modules
536  spi_master_t spi;
538  pin_name_t chip_select;
540 } adc13_t;
541 
546 typedef struct
547 {
548  // Communication gpio pins
549  pin_name_t miso;
550  pin_name_t mosi;
551  pin_name_t sck;
552  pin_name_t cs;
554  // Additional gpio pins
555  pin_name_t rst;
556  pin_name_t str;
557  pin_name_t dtr;
559  // static variable
560  uint32_t spi_speed;
561  spi_master_mode_t spi_mode;
562  spi_master_chip_select_polarity_t cs_polarity;
564 } adc13_cfg_t;
565 
570 typedef enum
571 {
572  ADC13_OK = 0,
573  ADC13_ERROR = -1
574 
576 
592 void adc13_cfg_setup ( adc13_cfg_t *cfg );
593 
608 err_t adc13_init ( adc13_t *ctx, adc13_cfg_t *cfg );
609 
623 err_t adc13_default_cfg ( adc13_t *ctx );
624 
640 err_t adc13_generic_write ( adc13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
641 
657 err_t adc13_generic_read ( adc13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
658 
672 err_t adc13_send_command ( adc13_t *ctx, uint8_t cmd );
673 
683 void adc13_set_str_pin ( adc13_t *ctx, uint8_t state );
684 
694 void adc13_set_rst_pin ( adc13_t *ctx, uint8_t state );
695 
704 uint8_t adc13_get_dtr_pin ( adc13_t *ctx );
705 
714 void adc13_reset_by_pin ( adc13_t *ctx );
715 
727 err_t adc13_reset_by_command ( adc13_t *ctx );
728 
737 void adc13_power_down ( adc13_t *ctx );
738 
747 void adc13_power_up ( adc13_t *ctx );
748 
762 err_t adc13_read_register ( adc13_t *ctx, uint8_t reg, uint8_t *data_out );
763 
777 err_t adc13_write_register ( adc13_t *ctx, uint8_t reg, uint8_t data_in );
778 
794 err_t adc13_read_registers ( adc13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t count );
795 
811 err_t adc13_write_registers ( adc13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t count );
812 
828 err_t adc13_set_register_bits ( adc13_t *ctx, uint8_t reg, uint8_t bit_mask, uint8_t data_in );
829 
844 err_t adc13_get_register_bits ( adc13_t *ctx, uint8_t reg, uint8_t bit_mask, uint8_t *data_out );
845 
858 err_t adc13_read_raw_data ( adc13_t *ctx, int32_t *data_out );
859 
874 err_t adc13_measure_voltage ( adc13_t *ctx, float vref, float *voltage );
875 
888 err_t adc13_measure_temperature ( adc13_t *ctx, float *temperature );
889 
903 err_t adc13_set_input_channel ( adc13_t *ctx, uint8_t pos, uint8_t neg );
904 
918 err_t adc13_set_voltage_reference ( adc13_t *ctx, uint8_t pos, uint8_t neg );
919 
932 err_t adc13_set_gain ( adc13_t *ctx, uint8_t gain );
933 
946 err_t adc13_set_sample_rate ( adc13_t *ctx, uint8_t s_rate );
947 
948 #ifdef __cplusplus
949 }
950 #endif
951 #endif // ADC13_H
952  // adc13
954 
955 // ------------------------------------------------------------------------ END
adc13_return_value_t
adc13_return_value_t
ADC 13 Click return value data.
Definition: adc13.h:569
adc13_power_down
void adc13_power_down(adc13_t *ctx)
ADC 13 power down function.
adc13_set_rst_pin
void adc13_set_rst_pin(adc13_t *ctx, uint8_t state)
ADC 13 set RST pin function.
adc13_measure_temperature
err_t adc13_measure_temperature(adc13_t *ctx, float *temperature)
ADC 13 measure temperature function.
adc13_read_raw_data
err_t adc13_read_raw_data(adc13_t *ctx, int32_t *data_out)
ADC 13 read raw data function.
adc13_write_registers
err_t adc13_write_registers(adc13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t count)
ADC 13 write registers function.
adc13_init
err_t adc13_init(adc13_t *ctx, adc13_cfg_t *cfg)
ADC 13 initialization function.
adc13_generic_read
err_t adc13_generic_read(adc13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
ADC 13 data reading function.
adc13_read_registers
err_t adc13_read_registers(adc13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t count)
ADC 13 read registers function.
adc13_set_register_bits
err_t adc13_set_register_bits(adc13_t *ctx, uint8_t reg, uint8_t bit_mask, uint8_t data_in)
ADC 13 set register bits function.
adc13_read_register
err_t adc13_read_register(adc13_t *ctx, uint8_t reg, uint8_t *data_out)
ADC 13 read register function.
ADC13_OK
Definition: adc13.h:571
adc13_power_up
void adc13_power_up(adc13_t *ctx)
ADC 13 power up function.
adc13_get_register_bits
err_t adc13_get_register_bits(adc13_t *ctx, uint8_t reg, uint8_t bit_mask, uint8_t *data_out)
ADC 13 get register bits function.
adc13_cfg_t
ADC 13 Click configuration object.
Definition: adc13.h:545
adc13_default_cfg
err_t adc13_default_cfg(adc13_t *ctx)
ADC 13 default configuration function.
adc13_cfg_setup
void adc13_cfg_setup(adc13_cfg_t *cfg)
ADC 13 configuration object setup function.
adc13_reset_by_pin
void adc13_reset_by_pin(adc13_t *ctx)
ADC 13 reset by pin function.
adc13_generic_write
err_t adc13_generic_write(adc13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
ADC 13 data writing function.
adc13_get_dtr_pin
uint8_t adc13_get_dtr_pin(adc13_t *ctx)
ADC 13 get DTR pin function.
adc13_set_input_channel
err_t adc13_set_input_channel(adc13_t *ctx, uint8_t pos, uint8_t neg)
ADC 13 set input channel function.
adc13_set_voltage_reference
err_t adc13_set_voltage_reference(adc13_t *ctx, uint8_t pos, uint8_t neg)
ADC 13 set voltage reference function.
adc13_send_command
err_t adc13_send_command(adc13_t *ctx, uint8_t cmd)
ADC 13 send command function.
ADC13_ERROR
Definition: adc13.h:572
adc13_measure_voltage
err_t adc13_measure_voltage(adc13_t *ctx, float vref, float *voltage)
ADC 13 measure voltage function.
adc13_set_sample_rate
err_t adc13_set_sample_rate(adc13_t *ctx, uint8_t s_rate)
ADC 13 set sample rate function.
adc13_set_str_pin
void adc13_set_str_pin(adc13_t *ctx, uint8_t state)
ADC 13 set STR pin function.
adc13_reset_by_command
err_t adc13_reset_by_command(adc13_t *ctx)
ADC 13 reset by command function.
adc13_write_register
err_t adc13_write_register(adc13_t *ctx, uint8_t reg, uint8_t data_in)
ADC 13 write register function.
adc13_set_gain
err_t adc13_set_gain(adc13_t *ctx, uint8_t gain)
ADC 13 set gain function.
adc13_t
ADC 13 Click context object.
Definition: adc13.h:525