Page 1 of 1

TI ADS1219 ADC driver

Posted: Sat Mar 02, 2019 12:57 am
by Mike Teachman
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

Re: TI ADS1219 ADC driver

Posted: Sun Mar 03, 2019 10:21 am
by rcolistete
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 ?

Re: TI ADS1219 ADC driver

Posted: Sun Mar 03, 2019 8:34 pm
by Mike Teachman
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

ads1219-breakout.jpg
ads1219-breakout.jpg (20.38 KiB) Viewed 6523 times

Re: TI ADS1219 ADC driver

Posted: Sun Mar 03, 2019 10:58 pm
by rcolistete
Thanks very much.

Re: TI ADS1219 ADC driver

Posted: Mon Mar 04, 2019 3:13 am
by OutoftheBOTS_
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

Re: TI ADS1219 ADC driver

Posted: Mon Mar 04, 2019 7:26 am
by loboris
OutoftheBOTS_ wrote:
Mon Mar 04, 2019 3:13 am
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
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.
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.

Re: TI ADS1219 ADC driver

Posted: Tue Mar 05, 2019 6:11 am
by Mike Teachman
OutoftheBOTS_ wrote:
Mon Mar 04, 2019 3:13 am
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??
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.

For the topic of hardware design I like this article:
https://www.analog.com/en/analog-dialog ... unded.html
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
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.
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

Re: TI ADS1219 ADC driver

Posted: Tue Mar 05, 2019 6:18 am
by Mike Teachman
loboris wrote:
Mon Mar 04, 2019 7:26 am
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.
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.
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:
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.

Re: TI ADS1219 ADC driver

Posted: Wed Mar 06, 2019 10:07 am
by OutoftheBOTS_
I always learn so much by following these convos