24-Bit Instrumentation ADC Recommendations - Page 1
Forum section: electronics / projects

author: geo_leeman
author_rank: Regular Contributor
timestamp: September 04, 2019, 02:52:36 pm
content: I'm working on a project that is using the "blue pill" as the microcontroller (STM32 M0 8 MHz) that reads an accelerometer, four analog sensors, and logs to an SD card. The analog inputs are pressure/temperature and need to be digitized at the highest resolution possible, so I'm using a 24-bit ADC. I started with the ADS1243, but ideally I want to log everything at 10Hz which isn't possible with the ADS1243 as it is 30 SPS max. Even 5 Hz would be pushing it I think with settling time after switching the MUX (say 1 sample settling = 8 sample periods to measure all 4 channels so 30/8 = 3.75Hz). I'm going to be doing some other revisions, so it sounds like an ADC change out is in order. I've been looking at the ADS1217, but was wondering if any of you had recommendations?I've used some simultaneous high rate ADCs before like the MAX11040K, which seems like overkill here. So to summarize, what's your favorite 24-bit ADC that can sample 4 channels at a minimum of 10Hz each (ideally a bit more so we have some headroom).

author: Gibson486
author_rank: Frequent Contributor
timestamp: September 04, 2019, 03:14:44 pm
content: When it comes to ADCs, I use Linear Tech/Analog or TI. For yours, I am sure that Linear tech makes something that could fit the bill...

author: MagicSmoker
author_rank: Super Contributor
timestamp: September 04, 2019, 03:21:48 pm
content: Hmmm... anything over a native resolution of 18b is exceptionally difficult to implement in practice, especially with a 5V (or lower) reference. After all, the LSB for an 18b ADC with a 5V Vref is a mere 19uV, and for a 24b ADC it will be 300nV. That's probably going to be in the same ballpark as the Johnson noise of the sensor resistances.

author: OM222O
author_rank: Frequent Contributor
timestamp: September 04, 2019, 05:01:17 pm
content: ADS1219 / ADS1220With the built in reference and some basic filtering, I could get them to 10uV accuracy24 bit SD with a max sample rate of 1KSPS , or a minimum of 20. they also have built in PGAs and some features to correct for offset errors. the ADS1220 has also some more features to detect shorts and whatnot. they're really versatile and I've used them in a lot of projects before.I think you can get even better results with an external reference, such as those 0 ppm/c ones made by AD, although they cost a hefty penny (about 10$).

author: geo_leeman
author_rank: Regular Contributor
timestamp: September 04, 2019, 05:30:33 pm
content: You know - I've used the ADS1220 before and totally forgot about it! It is really a very nice part. Most of what I do is scientific instrumentation type work, so a $10 reference is nothing compared to the cost of the sensors they are hooking up! I forgot about it going up to 1 ksps as well.I've got a MUX sitting in front of the ADC as well to connect the inputs to the sensor, ground, or Vref to perform some initial measurements on startup of ground/vref to verify system operation.

author: Kleinstein
author_rank: Super Contributor
timestamp: September 04, 2019, 07:36:35 pm
content: If the noise level is critical, one could consider separate ADCs for each signal.Many SD-ADCs are not that well suited for use with a MUX and may loose additional time on switching. It is not just the noise of the ADC, it is more about reducing the bandwidth for the sensor signals.There are a few chips with multiple ADCs. The higher speed may be overkill but the main disadvantage is a little higher power.A good external reference may be a good idea. Especially pressure sensors are often ratio-metric and thus need access to the reference level anyway.

author: David Hess
author_rank: Super Contributor
timestamp: September 04, 2019, 10:11:12 pm
content: For precision applications, usually you want a maximum sampling rate of 50 or 60 samples/second, or a submultiple of these, to reject 50 or 60 Hz power line noise. This meshes well with converters that integrate their inputs like delta-sigma converters however the same result can be produced by averaging the samples from a sampling converter over the integration time.Instead of looking for a 4+ channel device which can meet your other requirements, I would be tempted to use 4 less expensive 1 channel parts like the LTC2484 or perhaps LTC2440 for maximum sample rate.

author: splin
author_rank: Frequent Contributor
timestamp: September 04, 2019, 11:16:29 pm
content: Quote from: geo_leeman on September 04, 2019, 02:52:36 pmThere are no ADCs that I know of that have a linearity specification better than +/- 0.5ppm typ, 2ppm max (LTC2737/7/8-20 - very expensive, around $30) which limits accuracy to 19 bits at best.If the measurement accuracy is relative to the voltage reference (rather than ratiometric) you'll be doing very well to get below a few 10's of ppm error without an expensive reference and expensive periodic calibrations.16ppm equates to 16 bit accuracy, so do you really need a 24 bit ADC? Resolution >> accuracy can still be useful of course so here are a few AD parts to consider - I don't have the time to find the data for TI/Maxim etc parts. The noise performance is normalized to 40SPS fully settled to allow 4 x 10SPS channels:DeviceCost (1K)Noise free bits @ 40SPS (fully settled)Max INL (ppm)AD7797$3.4919.5 4AD7124-4$4.4419.5 4AD7768-1$5.9520.8 (est) 7AD7172-2$6.9321.8 5AD7176-2$9.2522.15(est) 7AD7175-2$11.8523.5(est) 3.5AD7177-2$14.6523.5(est) 3.5ADS1217$10.2522.5(est) 12To achieve the datasheet peformance requires a very low noise, high linearity differential buffer amplifier + filter that can suppress the kickback charge from the ADC's input sampling capacitance. (Note that the above table values are for the ADC's input buffer disabled, where available, to get the best INL). The drivers can easily equal or exceed the ADC cost in multi-channel configurations.You could use 4 x SE to differential convertors (if required) + 4 x buffer amplifiers + 4 x ADC R/C input filters feeding a 4x2 multiplexor to the ADC (some ADCS include the multiplexor). The drivers (buffers) can use slow, precision amplifiers by using a large capacitor in the filter to suppress the kickback.Alternatively a 4 to 1 multiplexor can mux the sensor inputs into a single SE -> diff, buffer + filter stage at lower cost. But in this case the filter has to settle to > 20+ bits in between each conversion. (Eg. if 5ms settling time is allowed then the ADC conversions have to be at 50SPS with slightly worse noise performance than in the table above). The filter capacitor has to be much smaller and the driver amp has to be much faster to suppress the kickback. The amp will be more expensive but only one is required. An AD4896/7 is one good option being low noise, including at low frequencies, and very fast, but it may be an overkill.The SE -> diff and buffer amp will also add linearity errors so havng the multiplexor last also allows a better amp to be used without escalating overall cost too much.Another big advantage of having only one driver is that there can't be any gain differences between channels so calibration is simplified. Added ADS1217 to table.Also note that the noise performance in the datasheets is for 0V input. For non-zero inputs the voltage reference noise has to be added in proportion to the signal level (as a fraction of the full scale input) which may be significant compared to the ADC noise. For example an LM399 may have 4uVpp 0.1-10Hz noise or approx .6ppm (plus a bit more for the 40SPS rate used in this application). 0.6ppm is approx 20.6 bits which is rather more than most of the listed ADCs' intrinsic noise. Cheaper band gap references can be even noisier.Also note that ADC zero offset and gain drift with time and temperature will add additional errors, unless auto zero and/or gain calibration capability are provided, which may affect ADC choice.

author: David Hess
author_rank: Super Contributor
timestamp: September 04, 2019, 11:21:27 pm
content: Quote from: splin on September 04, 2019, 11:16:29 pmA small gain difference between channels is usually irrelevant because gain (and offset) error in the sensors will require gain adjustment of each channel anyway.

author: geo_leeman
author_rank: Regular Contributor
timestamp: September 05, 2019, 01:39:27 pm
content: All great advice folks! This is one of those applications where measuring the small changes in temperature/pressure are more important that the absolute values as it's in a lab setting, so a high BOM cost really is not a factor at all (quantity 2). Basically we've got two thermistors, each driven by a constant current source and we're measuring the voltage across the thermistor and two pressure transducers that are something like 7.5mV/V output and being amplified by INA122 by 133X for 5V full scale output. I''m tempted to go with the ADS1220 as it is a "known" quantity to me, but the AD1217 and AD7177-2 are tempting, but potentially overkill.The INA122 poses a low output impedance for the pressure signals, but would buffering the thermistors externally be advisable? I'm looking at slowly changing signals here (think monitoring a diffusion process that takes ~1hr) so the bandwidth here is low, it's just been requested to measure at 5-10Hz. Maybe driving the ref pins from the 5V excitation for the pressure transducers in a ratiometric configuration is the best here. Though that might introduce temperature errors.

author: OM222O
author_rank: Frequent Contributor
timestamp: September 05, 2019, 02:43:59 pm
content: just a word of reference and full scale values, the "binary" values are a lot more common than odd ball values such as 5V. maybe consider going down to 4.096V?I'm not saying you can't find decent 5V references, just that the other values are more common and you can might have better luck finding them to your sepc.

author: Kleinstein
author_rank: Super Contributor
timestamp: September 05, 2019, 04:27:01 pm
content: With a 24 bit or similar ADC there is usually no simple LSB to mV ratio, so no need for special 2.56 or 4.096 V references. The scale factor is just another floating point factor.The INA122 is a low power INA, not a low noise one. The input noise may not be lower than the ADC input noise. So one could as well use just a buffer and the ADC internal gain option. I would start with the sensor and depending on it's noise choose an amplifier with slightly lower noise. If not needed (e.g. noise already higher than the ADC noise (with gain)) it can help to avoid extra analog gain. The "gain" insider the SD-ADCs is quite stable and linear - it's quite some effort to build an external gain stage that good.If the RTD or termistors need buffering depends on the ADC and resistance value. Chances are good 100 Ohms and maybe 1 K can work without. For 10 K it may well need a buffer (maybe ADC internal).For ratio-metric sensors I would more like drive the sensor excitation from the ADC reference. Depending on the ADC this could very well just the voltage over the reference resistors.

author: max_torque
author_rank: Super Contributor
timestamp: September 05, 2019, 09:38:59 pm
content: Use your constant current source to both excite the sensor, and to create the ADCs refference voltage across a calibration resistor! That means you can use a low precision current source.

author: geo_leeman
author_rank: Regular Contributor
timestamp: September 09, 2019, 08:07:35 pm
content: Ok - I already had a current source driving the thermistors, so I've put them in series along with a resistor to create the reference voltage as suggested. I'm going to just use the PGA in the ADC as well as suggested. I've decided to go with 4 of the ADS1220. At $8/per it's not insanely expensive and means no mux/settle issues. The next question is should I bother clocking them from the same source vs. let each use its own internal clock? I can put a KC2505B series oscillator buffered with some 745HC1G14s on for quite cheap, but don't know that it's worth the parts count increase?

author: nctnico
author_rank: Super Contributor
timestamp: September 09, 2019, 09:17:13 pm
content: Quote from: geo_leeman on September 04, 2019, 02:52:36 pmI've used the ADS1216 for one of my designs. The downside with all these ADS12xx converters is that they need several consequtive samples on the same channel for the internal filters to work so the effective samplerate drops a lot quickly. IIRC I got to something like 100SPS for 5 or 6 channels. They are also not so nice to interface / control.Ofcourse the surrounding design needs a lot of attention as well to keep noise out and get rid of stray currents which may cause an offset.

author: Gibson486
author_rank: Frequent Contributor
timestamp: September 10, 2019, 01:17:24 pm
content: Quote from: nctnico on September 09, 2019, 09:17:13 pmI have used that chip before. Usually multiplexed (greater than 4) ADCs are a pain to talk to. When you finally get it working though, they are great.

author: amspire
author_rank: Super Contributor
timestamp: September 10, 2019, 02:45:29 pm
content: There is Avia Semiconductor's HX711 24 bit sigma delta A/D used in many of the weight scales. The cost is 56c in one off quantities or 35c for 1000 quantities from LCSC.It measures at either 10 or 80 samples/second, has differential inputs of either +/-20, +/- 40 or +/- 80 mV (it is designed for bridge circuits). It includes a regulated supply for driving a bridge circuit. It has built in 50 and 60hz rejection.There is no linearity spec. On the +/-20mV range, offset drift is typically +/- 6nV per degC and the gain drift is +/- 5ppm per degC.Common mode rejection of the differential input on the +/- 20mV range is 100dB.2.6V - 5.5V operation, -40C to 85C. External or internal clock and built in band gap reference.There are 2 input channels so for 4 channels, you would need two of the chips.Other 24 bit A/d are the HX 712, 710A, 710B, 710C, 720 and 530B all on LCSC at cheap prices.The 712 and the 530B specifies an INL of +/- 0.001% of FS. All the chips are built on the same technology, so I would expect them all to have similar performance.