STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
STAR_ADS126X_definitions.h
Go to the documentation of this file.
1
2#ifndef ADS126X_DEFINITIONS_H
3#define ADS126X_DEFINITIONS_H
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9# ifndef __IO
10#define __IO volatile
11# endif
12
13// commands. Page 85, table 37.
14#define ADS126X_NOP 0x00
15#define ADS126X_RESET 0x06
16#define ADS126X_START1 0x08
17#define ADS126X_STOP1 0x0A
18#define ADS126X_START2 0x0C
19#define ADS126X_STOP2 0x0E
20#define ADS126X_RDATA1 0x12
21#define ADS126X_RDATA2 0x14
22#define ADS126X_SYOCAL1 0x16
23#define ADS126X_SYGCAL1 0x17
24#define ADS126X_SFOCAL1 0x19
25#define ADS126X_SYOCAL2 0x1B
26#define ADS126X_SYGCAL2 0x1C
27#define ADS126X_SFOCAL2 0x1E
28#define ADS126X_RREG 0x20
29#define ADS126X_WREG 0x40
30
31//register addresses. Page 88, table 38.
32#define ADS126X_ID 0x00
33#define ADS126X_POWER 0x01
34#define ADS126X_INTERFACE 0x02
35#define ADS126X_MODE0 0x03
36#define ADS126X_MODE1 0x04
37#define ADS126X_MODE2 0x05
38#define ADS126X_INPMUX 0x06
39#define ADS126X_OFCAL0 0x07
40#define ADS126X_OFCAL1 0x08
41#define ADS126X_OFCAL2 0x09
42#define ADS126X_FSCAL0 0x0A
43#define ADS126X_FSCAL1 0x0B
44#define ADS126X_FSCAL2 0x0C
45#define ADS126X_IDACMUX 0x0D
46#define ADS126X_IDACMAG 0x0E
47#define ADS126X_REFMUX 0x0F
48#define ADS126X_TDACP 0x10
49#define ADS126X_TDACN 0x11
50#define ADS126X_GPIOCON 0x12
51#define ADS126X_GPIODIR 0x13
52#define ADS126X_GPIODAT 0x14
53#define ADS126X_ADC2CFG 0x15
54#define ADS126X_ADC2MUX 0x16
55#define ADS126X_ADC2OFC0 0x17
56#define ADS126X_ADC2OFC1 0x18
57#define ADS126X_ADC2FSC0 0x19
58#define ADS126X_ADC2FSC1 0x1A
59
60#define ADS126X_REG_NUM 0x1B // number of registers
61
62// random values from the datasheet
63#define ADS126X_CHECK_BYTE 0x9B // used to calculate checksum
64#define ADS126X_CRC_BYTE 0b100000111
65#define ADS126X_DUMMY 0x00 // dummy for spi reads
66
67#define ADS126X_ENABLE 0x01 // used throughout the registers
68#define ADS126X_DISABLE 0x00
69
70// checksum byte. Page 90.
71#define ADS126X_CHECKSUM 0b01
72#define ADS126X_CHECK_CRC 0b10
73
74// MODE0 values. Page 91
75#define ADS126X_POL_NORM 0b0 // reverses the ADC1 reference multiplexer output polarity
76#define ADS126X_POL_REV 0b1
77#define ADS126X_CONV_CONT 0b0 // adc conversion run mode
78#define ADS126X_CONV_PULSE 0b1
79#define ADS126X_CHOP_0 0b00 // enables the ADC chop and IDAC rotation options
80#define ADS126X_CHOP_1 0b01
81#define ADS126X_CHOP_2 0b10
82#define ADS126X_CHOP_3 0b11
83#define ADS126X_DELAY_0 0b0000 // conversion delay in milliseconds
84#define ADS126X_DELAY_8700 0b0001
85#define ADS126X_DELAY_17000 0b0010
86#define ADS126X_DELAY_35000 0b0011
87#define ADS126X_DELAY_69000 0b0100
88#define ADS126X_DELAY_139000 0b0101
89#define ADS126X_DELAY_278000 0b0110
90#define ADS126X_DELAY_555000 0b0111
91#define ADS126X_DELAY_1_1 0b1000
92#define ADS126X_DELAY_2_2 0b1001
93#define ADS126X_DELAY_4_4 0b1010
94#define ADS126X_DELAY_8_8 0b1011
95
96// MODE1 values. Page 92
97#define ADS126X_SINC1 0b000 // configures the ADC digital filter
98#define ADS126X_SINC2 0b001
99#define ADS126X_SINC3 0b010
100#define ADS126X_SINC4 0b011
101#define ADS126X_FIR 0b100
102#define ADS126X_SINC5 0b101 // high-speed filter; valid only at rates > 7200 SPS
103#define ADS126X_BIAS_ADC1 0b0 // selects the ADC to connect the sensor bias
104#define ADS126X_BIAS_ADC2 0b1
105#define ADS126X_BIAS_PULLUP 0b0 // selects the sensor bias for pull-up or pull-down
106#define ADS126X_BIAS_PULLDOWN 0b1
107#define ADS126X_BIAS_MAG_0 0b000 // Selects the sensor bias current magnitude or the bias resistor
108#define ADS126X_BIAS_MAG_0_5 0b001
109#define ADS126X_BIAS_MAG_2 0b010
110#define ADS126X_BIAS_MAG_10 0b011
111#define ADS126X_BIAS_MAG_50 0b100
112#define ADS126X_BIAS_MAG_200 0b101
113#define ADS126X_BIAS_MAG_10M 0b110
114
115// MODE2 values. Page 93
116#define ADS126X_PGA_ENABLE 0b0 // pga bypass mode, different than other enable and disable
117#define ADS126X_PGA_BYPASS 0b1
118#define ADS126X_GAIN_1 0b000 // selects the PGA gain
119#define ADS126X_GAIN_2 0b001
120#define ADS126X_GAIN_4 0b010
121#define ADS126X_GAIN_8 0b011
122#define ADS126X_GAIN_16 0b100
123#define ADS126X_GAIN_32 0b101
124#define ADS126X_RATE_2_5 0b0000 // selects the ADC data rate in SPS. In FIR only 2.5, 5, 10, and 20
125#define ADS126X_RATE_5 0b0001
126#define ADS126X_RATE_10 0b0010
127#define ADS126X_RATE_16_6 0b0011
128#define ADS126X_RATE_20 0b0100
129#define ADS126X_RATE_50 0b0101
130#define ADS126X_RATE_60 0b0110
131#define ADS126X_RATE_100 0b0111
132#define ADS126X_RATE_400 0b1000
133#define ADS126X_RATE_1200 0b1001
134#define ADS126X_RATE_2400 0b1010
135#define ADS126X_RATE_4800 0b1011
136#define ADS126X_RATE_7200 0b1100
137#define ADS126X_RATE_14400 0b1101
138#define ADS126X_RATE_19200 0b1110
139#define ADS126X_RATE_38400 0b1111
140
141// pins to connect to. Page 94. Note that pins 0-9 correspond to the decimal values.
142#define ADS126X_AIN0 0b0000
143#define ADS126X_AIN1 0b0001
144#define ADS126X_AIN2 0b0010
145#define ADS126X_AIN3 0b0011
146#define ADS126X_AIN4 0b0100
147#define ADS126X_AIN5 0b0101
148#define ADS126X_AIN6 0b0110
149#define ADS126X_AIN7 0b0111
150#define ADS126X_AIN8 0b1000
151#define ADS126X_AIN9 0b1001
152#define ADS126X_AINCOM 0b1010
153#define ADS126X_TEMP 0b1011
154#define ADS126X_ANALOG 0b1100
155#define ADS126X_DIGITAL 0b1101
156#define ADS126X_TDAC 0b1110
157#define ADS126X_FLOAT 0b1111
158
159// IDAC Output pins. Page 96. Note that pins 0-9 correspond to the decimal values.
160#define ADS126X_IDAC_AIN0 0b0000
161#define ADS126X_IDAC_AIN1 0b0001
162#define ADS126X_IDAC_AIN2 0b0010
163#define ADS126X_IDAC_AIN3 0b0011
164#define ADS126X_IDAC_AIN4 0b0100
165#define ADS126X_IDAC_AIN5 0b0101
166#define ADS126X_IDAC_AIN6 0b0110
167#define ADS126X_IDAC_AIN7 0b0111
168#define ADS126X_IDAC_AIN8 0b1000
169#define ADS126X_IDAC_AIN9 0b1001
170#define ADS126X_IDAC_AINCOM 0b1010
171#define ADS126X_IDAC_NC 0b1011
172
173// IDAC Magnitute. Page 97
174#define ADS126X_IDAC_MAG_0 0b0000
175#define ADS126X_IDAC_MAG_50 0b0001
176#define ADS126X_IDAC_MAG_100 0b0010
177#define ADS126X_IDAC_MAG_250 0b0011
178#define ADS126X_IDAC_MAG_500 0b0100
179#define ADS126X_IDAC_MAG_750 0b0101
180#define ADS126X_IDAC_MAG_1000 0b0110
181#define ADS126X_IDAC_MAG_1500 0b0111
182#define ADS126X_IDAC_MAG_2000 0b1000
183#define ADS126X_IDAC_MAG_2500 0b1001
184#define ADS126X_IDAC_MAG_3000 0b1010
185
186// Reference Multiplexer. Page 98
187#define ADS126X_REF_POS_INT 0b000 // positive
188#define ADS126X_REF_POS_AIN0 0b001
189#define ADS126X_REF_POS_AIN2 0b010
190#define ADS126X_REF_POS_AIN4 0b011
191#define ADS126X_REF_POS_VDD 0b100
192#define ADS126X_REF_NEG_INT 0b000 // negative
193#define ADS126X_REF_NEG_AIN1 0b001
194#define ADS126X_REF_NEG_AIN3 0b010
195#define ADS126X_REF_NEG_AIN5 0b011
196#define ADS126X_REF_NEG_VSS 0b100
197
198// TDACP Output. Page 99
199#define ADS126X_TDACP_NC 0b0 // connects TDACP to pin AIN6
200#define ADS126X_TDACP_AIN6 0b1
201
202// TDACN Output. Page 100
203#define ADS126X_TDACN_NC 0b0 // connects TDACN to pin AIN7
204#define ADS126X_TDACN_AIN7 0b1
205
206// TDAC output magnitude. The value is V*{divider ratio}. Pages _54_, 99, 100
207#define ADS126X_TDAC_DIV_0_9 0b01001
208#define ADS126X_TDAC_DIV_0_7 0b01000
209#define ADS126X_TDAC_DIV_0_6 0b00111
210#define ADS126X_TDAC_DIV_0_55 0b00110
211#define ADS126X_TDAC_DIV_0_525 0b00101
212#define ADS126X_TDAC_DIV_0_5125 0b00100
213#define ADS126X_TDAC_DIV_0_50625 0b00011
214#define ADS126X_TDAC_DIV_0_503125 0b00010
215#define ADS126X_TDAC_DIV_0_5015625 0b00001
216#define ADS126X_TDAC_DIV_0_5 0b00000
217#define ADS126X_TDAC_DIV_0_4984375 0b10001
218#define ADS126X_TDAC_DIV_0_496875 0b10010
219#define ADS126X_TDAC_DIV_0_49375 0b10011
220#define ADS126X_TDAC_DIV_0_4875 0b10100
221#define ADS126X_TDAC_DIV_0_475 0b10101
222#define ADS126X_TDAC_DIV_0_45 0b10110
223#define ADS126X_TDAC_DIV_0_4 0b10111
224#define ADS126X_TDAC_DIV_0_3 0b11000
225#define ADS126X_TDAC_DIV_0_1 0b11001
226
227// gpio stuff. Pages 101-103
228#define ADS126X_GPIO_DISCONNECT 0b0 // connect or disconnect gpio pins
229#define ADS126X_GPIO_CONNECT 0b1
230#define ADS126X_GPIO_OUTPUT 0b0 // output or input
231#define ADS126X_GPIO_INPUT 0b1
232#define ADS126X_GPIO_LOW 0b0 // low or high in/out
233#define ADS126X_GPIO_HIGH 0b1
234
235// ADC2 Configuration
236#define ADS126X_ADC2_RATE_10 0b00 // data rate in SPS
237#define ADS126X_ADC2_RATE_100 0b01
238#define ADS126X_ADC2_RATE_400 0b10
239#define ADS126X_ADC2_RATE_800 0b11
240#define ADS126X_ADC2_REF_INT 0b000 // reference inputs as positive and negative pairs
241#define ADS126X_ADC2_REF_AIN0_AIN1 0b001
242#define ADS126X_ADC2_REF_AIN2_AIN3 0b010
243#define ADS126X_ADC2_REF_AIN4_AIN5 0b011
244#define ADS126X_ADC2_REF_V 0b111
245#define ADS126X_ADC2_GAIN_1 0b000 // gain of ADC2
246#define ADS126X_ADC2_GAIN_2 0b001
247#define ADS126X_ADC2_GAIN_4 0b010
248#define ADS126X_ADC2_GAIN_8 0b011
249#define ADS126X_ADC2_GAIN_16 0b100
250#define ADS126X_ADC2_GAIN_32 0b101
251#define ADS126X_ADC2_GAIN_64 0b110
252#define ADS126X_ADC2_GAIN_128 0b111
253
254/*!< Make a complete register map */
255typedef union { // page 89
256 struct {
257 uint8_t REV_ID:5; /*!< bit: 0.. 4 Revision ID */
258 uint8_t DEV_ID:3; /*!< bit: 5.. 8 Device ID */
259 } bit; /*!< Structure used for bit access */
260 uint8_t reg; /*!< Type used for register access */
262
263typedef union { // page 89
264 struct {
265 uint8_t INTREF:1; /*!< bit: 0 Internal Reference Enable */
266 uint8_t VBIAS:1; /*!< bit: 1 Level Shift Voltage Enable */
267 uint8_t :2; /*!< bit: 2.. 3 Reserved */
268 uint8_t RESET:1; /*!< bit: 4 Reset Indicator */
269 uint8_t :3; /*!< bit: 5.. 7 Reserved */
270 } bit;
271 uint8_t reg;
273
274typedef union { // page 90
275 struct {
276 uint8_t CRC:2; /*!< bit: 0.. 1 Checksum Byte Enable */
277 uint8_t STATUS:1; /*!< bit: 2 Status Byte Enable */
278 uint8_t TIMEOUT:1; /*!< bit: 3 Serial Interface Time-Out Enable */
279 uint8_t :4; /*!< bit: 4.. 7 Reserved */
280 } bit;
281 uint8_t reg;
283
284typedef union { // page 91
285 struct {
286 uint8_t DELAY:4; /*!< bit: 0.. 3 Conversion Delay */
287 uint8_t CHOP:2; /*!< bit: 4.. 5 Chop Mode Enable */
288 uint8_t RUNMODE:1; /*!< bit: 6 ADC Conversion Run Mode */
289 uint8_t REFREV:1; /*!< bit: 7 Reference Mux Polarity Reversal */
290 } bit;
291 uint8_t reg;
293
294typedef union { // page 92
295 struct {
296 uint8_t SBMAG:3; /*!< bit: 0.. 2 Sensor Bias Magnitude */
297 uint8_t SBPOL:1; /*!< bit: 3 Sensor Bias Polarity */
298 uint8_t SBADC:1; /*!< bit: 4 Sensor Bias ADC Connection */
299 uint8_t FILTER:3; /*!< bit: 5.. 7 Digital Filter */
300 } bit;
301 uint8_t reg;
303
304typedef union { // page 93
305 struct {
306 uint8_t DR:4; /*!< bit: 0.. 3 Data Rate */
307 uint8_t GAIN:3; /*!< bit: 4.. 6 PGA Gain */
308 uint8_t BYPASS:1; /*!< bit: 7 PGA Bypass Mode */
309 } bit;
310 uint8_t reg;
312
313typedef union { // page 94
314 struct {
315 uint8_t MUXN:4; /*!< bit: 0.. 3 Negative Input Multiplexer */
316 uint8_t MUXP:4; /*!< bit: 4.. 7 Positive Input Multiplexer */
317 } bit;
318 uint8_t reg;
320
321typedef union { // page 95
322 struct {
323 uint8_t OFC:8; /*!< bit: 0..7 Offset Calibration */
324 } bit;
325 uint8_t reg;
327
328typedef union { // page 95
329 struct {
330 uint8_t FSCAL:8; /*!< bit: 0..7 Offset Calibration */
331 } bit;
332 uint8_t reg;
334
335// Some AVR definitions got in the way of this for me...
336#ifndef __AVR__
337typedef union { // page 96
338 struct {
339 uint8_t MUX1:4; /*!< bit 0.. 3 IDAC1 Output Multiplexer */
340 uint8_t MUX2:4; /*!< bit 4.. 7 IDAC2 Output Multiplexer */
341 } bit;
342 uint8_t reg;
344#else
345typedef union { // page 96
346 struct {
347 uint8_t ADS_MUX1:4; /*!< bit 0.. 3 IDAC1 Output Multiplexer */
348 uint8_t ADS_MUX2:4; /*!< bit 4.. 7 IDAC2 Output Multiplexer */
349 } bit;
350 uint8_t reg;
352#endif
353
354typedef union { // page 97
355 struct {
356 uint8_t MAG1:4; /*!< bit 0.. 3 IDAC1 Current Magnitude */
357 uint8_t MAG2:4; /*!< bit 4.. 7 IDAC2 Current Magnitude */
358 } bit;
359 uint8_t reg;
361
362typedef union { // page 98
363 struct {
364 uint8_t RMUXN:3; /*!< bit 0.. 2 Reference Negative Input */
365 uint8_t RMUXP:3; /*!< bit 3.. 5 Reference Positive Input */
366 uint8_t :2; /*!< bit 6.. 7 Reserved */
367 } bit;
368 uint8_t reg;
370
371typedef union { // page 99
372 struct {
373 uint8_t MAGP:5; /*!< bit 0.. 4 MAGP Output Magnitude */
374 uint8_t :2; /*!< bit 5.. 6 Reserved */
375 uint8_t OUTP:1; /*!< bit 7 TDACP Output Connection */
376 } bit;
377 uint8_t reg;
379
380typedef union { // page 100
381 struct {
382 uint8_t MAGN:5; /*!< bit 0.. 4 TDACN Output Magnitude */
383 uint8_t :2; /*!< bit 5.. 6 Reserved */
384 uint8_t OUTN:1; /*!< bit 7 TDACN Output Connection */
385 } bit;
386 uint8_t reg;
388
389typedef union { // page 101
390 struct {
391 uint8_t CON0:1; /*!< bit 0 GPIO[0] Pin Connection */
392 uint8_t CON1:1; /*!< bit 1 GPIO[1] Pin Connection */
393 uint8_t CON2:1; /*!< bit 2 GPIO[2] Pin Connection */
394 uint8_t CON3:1; /*!< bit 3 GPIO[3] Pin Connection */
395 uint8_t CON4:1; /*!< bit 4 GPIO[4] Pin Connection */
396 uint8_t CON5:1; /*!< bit 5 GPIO[5] Pin Connection */
397 uint8_t CON6:1; /*!< bit 6 GPIO[6] Pin Connection */
398 uint8_t CON7:1; /*!< bit 7 GPIO[7] Pin Connection */
399 } bit;
400 uint8_t reg;
402
403typedef union { // page 102
404 struct {
405 uint8_t DIR0:1; /*!< bit 0 GPIO[0] Pin Direction */
406 uint8_t DIR1:1; /*!< bit 1 GPIO[1] Pin Direction */
407 uint8_t DIR2:1; /*!< bit 2 GPIO[2] Pin Direction */
408 uint8_t DIR3:1; /*!< bit 3 GPIO[3] Pin Direction */
409 uint8_t DIR4:1; /*!< bit 4 GPIO[4] Pin Direction */
410 uint8_t DIR5:1; /*!< bit 5 GPIO[5] Pin Direction */
411 uint8_t DIR6:1; /*!< bit 6 GPIO[6] Pin Direction */
412 uint8_t DIR7:1; /*!< bit 7 GPIO[7] Pin Direction */
413 } bit;
414 uint8_t reg;
416
417typedef union { // page 103
418 struct {
419 uint8_t DAT0:1; /*!< bit 0 GPIO[0] Pin Data */
420 uint8_t DAT1:1; /*!< bit 1 GPIO[1] Pin Data */
421 uint8_t DAT2:1; /*!< bit 2 GPIO[2] Pin Data */
422 uint8_t DAT3:1; /*!< bit 3 GPIO[3] Pin Data */
423 uint8_t DAT4:1; /*!< bit 4 GPIO[4] Pin Data */
424 uint8_t DAT5:1; /*!< bit 5 GPIO[5] Pin Data */
425 uint8_t DAT6:1; /*!< bit 6 GPIO[6] Pin Data */
426 uint8_t DAT7:1; /*!< bit 7 GPIO[7] Pin Data */
427 } bit;
428 uint8_t reg;
430
431typedef union { // page 104
432 struct {
433 uint8_t GAIN2:3; /*!< bit 0.. 2 ADC2 Gain */
434 uint8_t REF2:3; /*!< bit 3.. 5 ADC2 Reference Input */
435 uint8_t DR2:2; /*!< bit 6.. 7 ADC2 Data Rate */
436 } bit;
437 uint8_t reg;
439
440typedef union { // page 105
441 struct {
442 uint8_t MUXN:4; /*!< bit 0.. 3 ADC2 Negative Input Multiplexer */
443 uint8_t MUXP:4; /*!< bit 4.. 7 ADC2 Positive Input Multiplexer */
444 } bit;
445 uint8_t reg;
447
448typedef union { // page 106
449 struct {
450 uint8_t OFC2:8; /*!< bit 0.. 7 ADC2 Offset Calibration */
451 } bit;
452 uint8_t reg;
454
455typedef union { // page 106
456 struct {
457 uint8_t FSC2:8; /*!< bit 0.. 7 ADC2 Offset Calibration */
458 } bit;
459 uint8_t reg;
461
462typedef struct { // the entire register map, page 88
463 __IO ADS126X_ID_Type ID; /**< \brief Offset: 0x00 (R/W 8) Device Identification */
464 __IO ADS126X_POWER_Type POWER; /**< \brief Offset: 0x01 (R/W 8) Power */
465 __IO ADS126X_INTERFACE_Type INTERFACE; /**< \brief Offset: 0x02 (R/W 8) Interface */
466 __IO ADS126X_MODE0_Type MODE0; /**< \brief Offset: 0x03 (R/W 8) Mode0 */
467 __IO ADS126X_MODE1_Type MODE1; /**< \brief Offset: 0x04 (R/W 8) Mode1 */
468 __IO ADS126X_MODE2_Type MODE2; /**< \brief Offset: 0x05 (R/W 8) Mode2 */
469 __IO ADS126X_INPMUX_Type INPMUX; /**< \brief Offset: 0x06 (R/W 8) Input Multiplexer */
470 __IO ADS126X_OFCAL_Type OFCAL0; /**< \brief Offset: 0x07 (R/W 8) Offset Calibration 0 */
471 __IO ADS126X_OFCAL_Type OFCAL1; /**< \brief Offset: 0x08 (R/W 8) Offset Calibration 1 */
472 __IO ADS126X_OFCAL_Type OFCAL2; /**< \brief Offset: 0x09 (R/W 8) Offset Calibration 2 */
473 __IO ADS126X_FSCAL_Type FSCAL0; /**< \brief Offset: 0x0A (R/W 8) Full-Scale Calibration 0 */
474 __IO ADS126X_FSCAL_Type FSCAL1; /**< \brief Offset: 0x0B (R/W 8) Full-Scale Calibration 1 */
475 __IO ADS126X_FSCAL_Type FSCAL2; /**< \brief Offset: 0x0C (R/W 8) Full-Scale Calibration 2 */
476 __IO ADS126X_IDACMUX_Type IDACMUX; /**< \brief Offset: 0x0D (R/W 8) IDAC Multiplexer */
477 __IO ADS126X_IDACMAG_Type IDACMAG; /**< \brief Offset: 0x0E (R/W 8) IDAC Magnitude */
478 __IO ADS126X_REFMUX_Type REFMUX; /**< \brief Offset: 0x0F (R/W 8) Reference Multiplexer */
479 __IO ADS126X_TDACP_Type TDACP; /**< \brief Offset: 0x10 (R/W 8) TDACP Output */
480 __IO ADS126X_TDACN_Type TDACN; /**< \brief Offset: 0x11 (R/W 8) TDACN Negative Output */
481 __IO ADS126X_GPIOCON_Type GPIOCON; /**< \brief Offset: 0x12 (R/W 8) GPIO Connection */
482 __IO ADS126X_GPIODIR_Type GPIODIR; /**< \brief Offset: 0x13 (R/W 8) GPIO Direction */
483 __IO ADS126X_GPIODAT_Type GPIODAT; /**< \brief Offset: 0x14 (R/W 8) GPIO Data */
484 __IO ADS126X_ADC2CFG_Type ADC2CFG; /**< \brief Offset: 0x15 (R/W 8) ADC2 Configuration */
485 __IO ADS126X_ADC2MUX_Type ADC2MUX; /**< \brief Offset: 0x16 (R/W 8) ADC2 Input Multiplexer */
486 __IO ADS126X_ADC2OFC_Type ADC2OFC0; /**< \brief Offset: 0x17 (R/W 8) ADC2 Offset Calibration 0 */
487 __IO ADS126X_ADC2OFC_Type ADC2OFC1; /**< \brief Offset: 0x18 (R/W 8) ADC2 Offset Calibration 1 */
488 __IO ADS126X_ADC2FSC_Type ADC2FSC0; /**< \brief Offset: 0x19 (R/W 8) ADC2 Full-Scale Calibration 0 */
489 __IO ADS126X_ADC2FSC_Type ADC2FSC1; /**< \brief Offset: 0x1A (R/W 8) ADC2 Full-Scale Calibration 1 */
491
492typedef union { // page 70
493 struct {
494 uint8_t RESET:1; /*!< bit 0 Indicates device reset */
495 uint8_t PGAD_ALM:1; /*!< bit 1 ADC1 PGA differential output alarm */
496 uint8_t PGAH_ALM:1; /*!< bit 2 ADC1 PGA output high alarm */
497 uint8_t PGAL_ALM:1; /*!< bit 3 ADC1 PGA output low alarm */
498 uint8_t REF_ALM:1; /*!< bit 4 ADC1 low reference alarm */
499 uint8_t EXTCLK:1; /*!< bit 5 Indicates ADC clock source */
500 uint8_t ADC1:1; /*!< bit 6 status of ADC1 conversion data */
501 uint8_t ADC2:1; /*!< bit 7 status of ADC2 conversion data */
502 } bit;
503 uint8_t reg;
505
506#ifdef __cplusplus
507}
508#endif
509
510#endif // define ADS126X_DEFINITIONS_H
#define __IO
uint8_t reg
__IO ADS126X_FSCAL_Type FSCAL0
Offset: 0x0A (R/W 8) Full-Scale Calibration 0.
__IO ADS126X_ADC2MUX_Type ADC2MUX
Offset: 0x16 (R/W 8) ADC2 Input Multiplexer.
__IO ADS126X_ADC2CFG_Type ADC2CFG
Offset: 0x15 (R/W 8) ADC2 Configuration.
__IO ADS126X_OFCAL_Type OFCAL2
Offset: 0x09 (R/W 8) Offset Calibration 2.
__IO ADS126X_MODE2_Type MODE2
Offset: 0x05 (R/W 8) Mode2.
__IO ADS126X_ADC2OFC_Type ADC2OFC1
Offset: 0x18 (R/W 8) ADC2 Offset Calibration 1.
__IO ADS126X_ADC2OFC_Type ADC2OFC0
Offset: 0x17 (R/W 8) ADC2 Offset Calibration 0.
__IO ADS126X_FSCAL_Type FSCAL1
Offset: 0x0B (R/W 8) Full-Scale Calibration 1.
__IO ADS126X_ID_Type ID
Offset: 0x00 (R/W 8) Device Identification.
__IO ADS126X_OFCAL_Type OFCAL1
Offset: 0x08 (R/W 8) Offset Calibration 1.
__IO ADS126X_POWER_Type POWER
Offset: 0x01 (R/W 8) Power.
__IO ADS126X_GPIODAT_Type GPIODAT
Offset: 0x14 (R/W 8) GPIO Data.
__IO ADS126X_IDACMUX_Type IDACMUX
Offset: 0x0D (R/W 8) IDAC Multiplexer.
__IO ADS126X_INTERFACE_Type INTERFACE
Offset: 0x02 (R/W 8) Interface.
__IO ADS126X_MODE0_Type MODE0
Offset: 0x03 (R/W 8) Mode0.
__IO ADS126X_REFMUX_Type REFMUX
Offset: 0x0F (R/W 8) Reference Multiplexer.
__IO ADS126X_OFCAL_Type OFCAL0
Offset: 0x07 (R/W 8) Offset Calibration 0.
__IO ADS126X_ADC2FSC_Type ADC2FSC1
Offset: 0x1A (R/W 8) ADC2 Full-Scale Calibration 1.
__IO ADS126X_INPMUX_Type INPMUX
Offset: 0x06 (R/W 8) Input Multiplexer.
__IO ADS126X_MODE1_Type MODE1
Offset: 0x04 (R/W 8) Mode1.
__IO ADS126X_GPIODIR_Type GPIODIR
Offset: 0x13 (R/W 8) GPIO Direction.
__IO ADS126X_IDACMAG_Type IDACMAG
Offset: 0x0E (R/W 8) IDAC Magnitude.
__IO ADS126X_FSCAL_Type FSCAL2
Offset: 0x0C (R/W 8) Full-Scale Calibration 2.
__IO ADS126X_TDACN_Type TDACN
Offset: 0x11 (R/W 8) TDACN Negative Output.
__IO ADS126X_TDACP_Type TDACP
Offset: 0x10 (R/W 8) TDACP Output.
__IO ADS126X_ADC2FSC_Type ADC2FSC0
Offset: 0x19 (R/W 8) ADC2 Full-Scale Calibration 0.
__IO ADS126X_GPIOCON_Type GPIOCON
Offset: 0x12 (R/W 8) GPIO Connection.
uint8_t FSCAL
bit: 0..7 Offset Calibration
uint8_t CON2
bit 2 GPIO[2] Pin Connection
uint8_t CON3
bit 3 GPIO[3] Pin Connection
uint8_t CON4
bit 4 GPIO[4] Pin Connection
uint8_t CON6
bit 6 GPIO[6] Pin Connection
uint8_t CON0
bit 0 GPIO[0] Pin Connection
uint8_t CON1
bit 1 GPIO[1] Pin Connection
uint8_t CON5
bit 5 GPIO[5] Pin Connection
uint8_t CON7
bit 7 GPIO[7] Pin Connection
uint8_t DAT7
bit 7 GPIO[7] Pin Data
uint8_t DAT2
bit 2 GPIO[2] Pin Data
uint8_t DAT4
bit 4 GPIO[4] Pin Data
uint8_t DAT5
bit 5 GPIO[5] Pin Data
uint8_t DAT0
bit 0 GPIO[0] Pin Data
uint8_t DAT1
bit 1 GPIO[1] Pin Data
uint8_t DAT3
bit 3 GPIO[3] Pin Data
uint8_t DAT6
bit 6 GPIO[6] Pin Data
uint8_t DIR6
bit 6 GPIO[6] Pin Direction
uint8_t DIR2
bit 2 GPIO[2] Pin Direction
uint8_t DIR7
bit 7 GPIO[7] Pin Direction
uint8_t DIR4
bit 4 GPIO[4] Pin Direction
uint8_t DIR1
bit 1 GPIO[1] Pin Direction
uint8_t DIR0
bit 0 GPIO[0] Pin Direction
uint8_t DIR5
bit 5 GPIO[5] Pin Direction
uint8_t DIR3
bit 3 GPIO[3] Pin Direction
uint8_t reg
Type used for register access.
uint8_t TIMEOUT
bit: 3 Serial Interface Time-Out Enable
uint8_t STATUS
bit: 2 Status Byte Enable
uint8_t REFREV
bit: 7 Reference Mux Polarity Reversal
uint8_t RUNMODE
bit: 6 ADC Conversion Run Mode
uint8_t SBPOL
bit: 3 Sensor Bias Polarity
uint8_t SBADC
bit: 4 Sensor Bias ADC Connection
uint8_t BYPASS
bit: 7 PGA Bypass Mode
uint8_t OFC
bit: 0..7 Offset Calibration
uint8_t RESET
bit: 4 Reset Indicator
uint8_t VBIAS
bit: 1 Level Shift Voltage Enable
uint8_t INTREF
bit: 0 Internal Reference Enable
uint8_t ADC1
bit 6 status of ADC1 conversion data
uint8_t RESET
bit 0 Indicates device reset
uint8_t EXTCLK
bit 5 Indicates ADC clock source
uint8_t PGAL_ALM
bit 3 ADC1 PGA output low alarm
uint8_t PGAH_ALM
bit 2 ADC1 PGA output high alarm
uint8_t REF_ALM
bit 4 ADC1 low reference alarm
uint8_t ADC2
bit 7 status of ADC2 conversion data
uint8_t PGAD_ALM
bit 1 ADC1 PGA differential output alarm
uint8_t OUTN
bit 7 TDACN Output Connection
uint8_t OUTP
bit 7 TDACP Output Connection