TI ADS1219 ADC driver
- Mike Teachman
- Posts: 155
- Joined: Mon Jun 13, 2016 3:19 pm
- Location: Victoria, BC, Canada
TI ADS1219 ADC driver
If you need a 24-bit ADC here is a driver for the Texas Instruments ADS1219
https://github.com/miketeachman/micropython-ads1219
All device functions are supported in this driver. Tested with uPy v1.10 running on ESP32 port.
datasheet:
http://www.ti.com/lit/ds/symlink/ads1219.pdf
https://github.com/miketeachman/micropython-ads1219
All device functions are supported in this driver. Tested with uPy v1.10 running on ESP32 port.
datasheet:
http://www.ti.com/lit/ds/symlink/ads1219.pdf
- rcolistete
- Posts: 352
- Joined: Thu Dec 31, 2015 3:12 pm
- Location: Brazil
- Contact:
Re: TI ADS1219 ADC driver
This new 24 bits ADC seems to be very good, thanks for the MicroPython driver.
Do you have any suggestion of breakout board with ADS1219, besides this one (very expensive) at AliExpress ?
Do you have any suggestion of breakout board with ADS1219, besides this one (very expensive) at AliExpress ?
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).
- Mike Teachman
- Posts: 155
- Joined: Mon Jun 13, 2016 3:19 pm
- Location: Victoria, BC, Canada
Re: TI ADS1219 ADC driver
At this time there is no low-cost breakout board available for this device. It is possible to make your own - I added a section to the github repo listing the parts I used.
https://github.com/miketeachman/micropy ... kout-board
https://github.com/miketeachman/micropy ... kout-board
- rcolistete
- Posts: 352
- Joined: Thu Dec 31, 2015 3:12 pm
- Location: Brazil
- Contact:
Re: TI ADS1219 ADC driver
Thanks very much.
My "MicroPython Samples". My "MicroPython Firmwares" with many options (double precision, ulab, etc).
-
- Posts: 847
- Joined: Mon Nov 20, 2017 10:18 am
Re: TI ADS1219 ADC driver
A noob question here.
If it is a 24bit ADC and your Vref is 3.3v then the sensitivity it has to read is 3.3v/(2**24) = 0.00000019669532775878905 volts
What sort of hardware would be needed to decouple and isolate the ADC so that such fine voltages are not just inducted from the air??
I have used the ads1115 with the RPi many times and have had others ask this question even though it is only a 16bit ADC
If it is a 24bit ADC and your Vref is 3.3v then the sensitivity it has to read is 3.3v/(2**24) = 0.00000019669532775878905 volts
What sort of hardware would be needed to decouple and isolate the ADC so that such fine voltages are not just inducted from the air??
I have used the ads1115 with the RPi many times and have had others ask this question even though it is only a 16bit ADC
Re: TI ADS1219 ADC driver
You can hardly achieve 24-bit resoulution. ADS1219 is a delta-sigma ADC, and the actual (effective) resolution depends on voltage reference, the sample time and the overall circut design. See the section 7.1 in the datasheet for more details.OutoftheBOTS_ wrote: ↑Mon Mar 04, 2019 3:13 amA noob question here.
If it is a 24bit ADC and your Vref is 3.3v then the sensitivity it has to read is 3.3v/(2**24) = 0.00000019669532775878905 volts
What sort of hardware would be needed to decouple and isolate the ADC so that such fine voltages are not just inducted from the air??
I have used the ads1115 with the RPi many times and have had others ask this question even though it is only a 16bit ADC
ADS1219 has an internal voltage reference of 2.048V. If the external reference is used, it must be a special voltage reference chip. Using power supply 3.3V as refference you will hardly get more than 12-bit resolution.
With a simple breakout board you will never get a good results. The ADC board must be very carefully designd, with good grounding and shielding. Reading the datasheet several times and studying some refference design is a must if you want to use this chip.
- Mike Teachman
- Posts: 155
- Joined: Mon Jun 13, 2016 3:19 pm
- Location: Victoria, BC, Canada
Re: TI ADS1219 ADC driver
For this ADC the useful resolution is much less than 24-bits: it is 17.6 bits, not 24-bits as the first page of the TI datasheet suggests. (often I find that the first page of a datasheet is 1/2 marketing and 1/2 engineering specification). The 24-bit resolution is true in that the full scale of the device is divided into 2^24 steps, but due to noise in the device, the noise-free resolution ("flicker free") is only 17.6 bits in the best case. Also, if the device is used single-ended, another bit can be subtracted. For example, assume that the signal range matches the internal 2.048V reference - then, there are 16.6 noise-free bits to cover the voltage range 0 to 2.048V.OutoftheBOTS_ wrote: ↑Mon Mar 04, 2019 3:13 amIf it is a 24bit ADC and your Vref is 3.3v then the sensitivity it has to read is 3.3v/(2**24) = 0.00000019669532775878905 volts
What sort of hardware would be needed to decouple and isolate the ADC so that such fine voltages are not just inducted from the air??
For the topic of hardware design I like this article:
https://www.analog.com/en/analog-dialog ... unded.html
Looking at the spec for this 16-bit ADC shows that the noise-free resolution is 16 bits at the majority of gain and SPS combinations. Again, subtract a bit for a single-ended system, leaves 15 bits.I have used the ads1115 with the RPi many times and have had others ask this question even though it is only a 16bit ADC
Interesting ... the 24-bit ADS1219 ADC has only 1.6 bits more noise-free resolution than the 16-bit ADS1115 ADC
Why use the ADS1219? For my application, there are some features that make it better than the ADS1115
-- built-in input buffers to deal with high-impedance sensor outputs
-- a bit better noise-free resolution
-- separate analog and digital inputs for power and ground
-- option to use a high precision external reference (I likely won't need this though)
-- input channel configuration to calibrate the offset
Last edited by Mike Teachman on Tue Mar 05, 2019 6:19 am, edited 1 time in total.
- Mike Teachman
- Posts: 155
- Joined: Mon Jun 13, 2016 3:19 pm
- Location: Victoria, BC, Canada
Re: TI ADS1219 ADC driver
I'm a bit more optimistic on the ability to get acceptable performance using a breakout board. I'm using this ADC in an air quality sensor project, documented on Hackaday:loboris wrote: ↑Mon Mar 04, 2019 7:26 amYou can hardly achieve 24-bit resoulution. ADS1219 is a delta-sigma ADC, and the actual (effective) resolution depends on voltage reference, the sample time and the overall circut design. See the section 7.1 in the datasheet for more details.
ADS1219 has an internal voltage reference of 2.048V. If the external reference is used, it must be a special voltage reference chip. Using power supply 3.3V as refference you will hardly get more than 12-bit resolution.
With a simple breakout board you will never get a good results. The ADC board must be very carefully designd, with good grounding and shielding. Reading the datasheet several times and studying some refference design is a must if you want to use this chip.
https://hackaday.io/project/162059-street-sense
My first prototype will use a breakout board for the ADC + soldered veroboard (Adafruit Perma-proto) construction.
Separate LDO voltage regulator for the analog supply. Internal 2.048 reference.
The 2nd prototype will be built on a custom PCB using best practices for laying out a mixed signal board.
I'll try to remember to report back here on what performance is possible. If you are curious how this turns out, I think you can subscribe to the Hackaday project listed above. I update the project logs every couple of weeks.
-
- Posts: 847
- Joined: Mon Nov 20, 2017 10:18 am
Re: TI ADS1219 ADC driver
I always learn so much by following these convos