Designing a means of measuring 0--20V to 1mV precision - Page 1
Forum section: electronics / projects

author: PerArdua
author_rank: Regular Contributor
timestamp: September 07, 2024, 06:28:09 pm
content: Hi,I have an application which requires monitoring a DC signal which can vary between 0- -19.5V to a steady 1mV precision at around 5-10 samples per second. The signal itself is stable to less than 10uV, verified with a keysight bench multimeter. This is for a hobby application, and I would like to use it as an opportunity to learn more about designing with relative high precision ADCs. I've done some reading - primarily "The Data Conversion Handbook - Kester", which has been very useful to gain an understanding of what I will need to consider. However, I would like to run some of my thinking/calculations past more experienced individuals to check my understand.Rounding to 0 - -20V signal for convenience, I determine the required count of the device to be 20,000 counts. (20V/0.001V = 20000).However, iterating through the following a few time, and browsing various ADCs (with price a relatively large factor), I found that I would certainly need to precondition the signal. For the time being I assume that I noiselessly invert and attenuate the input to 0 - 5V.The noise free resolution, which assumes ideal ADC/system behaviour, would therefore be Vfs/20000 = 5V/20000 = 250uVpp.The corresponding allowable rms noise is given by Vpp/6.6 (assuming gaussian distribution) = 250uV/6.6 ~= 37uVrms.This means the noise-free code res of the ADC should be = log10(Vfs/Vpp)/log10(2) = log10(5V/250uV)/log10(2) = 14.3.The effective resolution, which accounts for ADC noise, is log10(Vfs/(Vpp/6.6))/log10(2) = log10(5V/(250uV/6.6))/log10(2) = 17.01.This means I need, at minimum, and a 15 bit ADC with an effective resolution of 18 bits - according to my interpretation of the data conversion handbook's theory.Now looking for a real device, I feel like I am not understanding the specifications. For example, looking at the ADS8326 (https://www.ti.com/general/docs/suppproductinfo.tsp?distId=10&gotoUrl=https%3A%2F%2Fwww.ti.com%2Flit%2Fgpn%2Fads8326) it says that it is a 16 bit ADC. However, judging by a quick glace at "features" on page 1, it says it has a noise of 3LSBpp. This would make it unsuitable. If I then look at page 3, DC Accuracy, Noise is listed as 30uVrms, which is allowable by my spec.Is this because the 3LSBpp noise is referring to the specs on pages 4 and 5 for AC Accuracy, ENOB? What also confuses me is that, assuming a 0 - 5V spread, 18 bit resolution goes down to 19uV. This is 50 times smaller than my desired 1mV resolution - do I really need such a low noise ADC?Thank you for taking the time to read - as I say, I'm new to this theory.

author: dobsonr741
author_rank: Frequent Contributor
timestamp: September 07, 2024, 06:47:42 pm
content: You will have other sources of noise and nonlinearity. All together with the ADC will define your budget. So even if you feel good about and ADC, the complete system might not meet your objective. So it makes sense to have more margin by a better ADC. Also, to make the ADC perform according to the data sheet you’ll need to do significant efforts on keeping power, reference clean, and protect against EMI.

author: moffy
author_rank: Super Contributor
timestamp: September 07, 2024, 10:47:26 pm
content: You could attenuate and level shift the 0 to -20V signal with a couple of precision resistors and pulling it up to the REF voltage used by the ADC as long as you don't mind the signal being inverted, but that can be corrected by the micro reading the ADC. Of course the ref voltage needs to be stable, but that goes regardless, and you would need to calibrate the REF, but you would probably need to do that anyway.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: September 07, 2024, 10:47:32 pm
content: The ADS8326 is a bit expensive (Eur 11 @ Mouser). it is also much faster then you need, and faster ADC's pick up more noise. You can average a lot of samples to reduce noise, but that still leaves the high price. ADS1115 (SPI) or ADS1118 (I2C) may do it. They're 16 bit too, but I think you can get only 15 bits out of them with uni polar measurements. But it also costs about half of the ADS8326, but it's still cutting it close.MCP3561 has plenty of bits, it's built in reference also seems to be quite good, and on top of that it is very affordable.But when you start getting over 12 bits or so, accuracy and linearity start becoming more problematic. Voltage divider resistor drift with age and temperature (Just forget about carbon film resistors) Voltage references also drift with age and temperature, and your ADC is never going to be better then your voltage reference. Sometimes you can do radiometric measurements, and then you do not need a voltage reference at all, and this removes an important error source.Also:>>> log(20000)/log(2) = 14.2877That is... what radiometric measurements do. No need to go though 5V and 250uV if you just want to calculate how many bits you need to resovle one out of 20000.And there are probably a bunch of other ADC's too...

author: PerArdua
author_rank: Regular Contributor
timestamp: September 08, 2024, 01:34:35 pm
content: Thanks to everyone that replied.I see the advantage of choosing an ADC that has extra bits, but the figures for the ADS8326 still confuse me - so I don't feel confident in my understanding of the theory. Is it really typical that someone would specify the required effective resolution to be 50 times lower than the noiseless resolution?I did come across the MCP3561 as an option, though it does seem a bit thermonuclear in its specs for this application. Whilst on one hand I'm happy to just get something working, I'm also keen to use this as an opportunity to improve my understanding of the theory.

author: showman
author_rank: Contributor
timestamp: September 08, 2024, 05:03:52 pm
content: Quote from: PerArdua on September 07, 2024, 06:28:09 pmBoth the noise-free and effective resolutions take the ADC noise into account, first one peak-to-peak and the second one RMS.QuoteNo, you need an ADC with 15 (or rather 14.3) bitnoise-freeresolution. This does not directly tell what the resolution of the ADC has to be, can be 16, can be 18, can be 24, depending on the noise.Also neither the noise-free nor the effective resolution cannot be higher than the resolution of the ADC (well, maybe for some definition, but I don't think it is common).So if you have a 16-bit ADC with 15 bit noise-free resolution, its effective resolution will not be 18 bits, but 16 since the ADC cannot physically have higher resolution. But if you have a 20-bit ADC with 15-bit noise-free resolution, its effective resolution can be 18 bits. Or in other words, if there is no noise, then ADC resolution = noise-free resolution = effective resolution.QuoteWhy? What is the size of the LSB? Multiplying that by 3 what is the pp noise in uV? What is the RMS value calculated from that? How does that compare to the 30 uV given elsewhere?QuoteNo.QuoteWhere did you get this 18 from or why do you use it here? As determined, the noise free res has to be 15 bits. For 5V full scale that would be LSB size of ~150 uV, but your measured signal is actually 4 times larger, so the measurement resolution is 4*150 = 600 uV, just below your 1 mV requirement.QuoteDepending on the ADC and the rest of the system, not necessarily. If the noise is gaussian you can oversample and average it out, in fact in that case you might not in principle need even 15-bit ADC but a lower resolution one can work.Also what the others said, you need to take nonlinearities, gain and offset errors, power supplies, reference, divider/attenuator etc into account. And of course also the noise of your signal. It can be (DC)-stable to 10 uV over some time, but that does not tell what the noise is.

author: Zoli
author_rank: Frequent Contributor
timestamp: September 08, 2024, 05:33:11 pm
content: Take a look at the ICL7135(and 2nd source/clones).

author: Kleinstein
author_rank: Super Contributor
timestamp: September 08, 2024, 05:38:46 pm
content: the ADS8326 is a relatively fast sampling ADC. This means there is a rather large input bandwidth. One usually want some low pass filtering (anti aliasing) in front and for the slow wanted output rate likely oversampling / averaging to approximate an integrating ADC and with the right time frame (multiple of 20 ms) suppress mains hum. So the oversampling part is kind of wanted anyway to avoid extra noise from frequencies outside the range of inerest, not just from the ADC but also the signal source and reference.The SD ADCs do this averaging internally. Less fitlering needed for anti-aliasing. The redued BW makes it easier for these ADCs to get the rather low noise.The ICL7135 is kind of borderline - just 1 mV resolution for a 20 V range. There are naturally cases when the result alterntes between 2 readings. It also needs care to get good INL. Also the ICL7135 is borderline with 5 readings per second from the speed.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: September 08, 2024, 08:03:12 pm
content: Quote from: PerArdua on September 08, 2024, 01:34:35 pmIt's probably time to try some.The Nuvoton NAU7802 is available on low cost boards, and I think there is from China HX710/HX711/HX712 series that might be good enough.Check out the ADC modules from the usual suspects like Adafruit and Seeed etc, they have done a lot of price/performance filtering for you, and they are easy to check.eghttps://www.adafruit.com/search?q=ADC

author: tooki
author_rank: Super Contributor
timestamp: September 08, 2024, 08:18:29 pm
content: Take a look at this:https://www.eevblog.com/forum/projects/ode-to-the-ina226-voltagecurrent-sensor/The INA226 is a voltage and current sensor that does mV resolution. (In essence, it’s a 16-bit ADC with an analog front-end built in.) Using this part might be a way to let you reach your goal and only focus on the ADC without having to design an analog front-end.

author: Zoli
author_rank: Frequent Contributor
timestamp: September 08, 2024, 08:47:47 pm
content: Quote from: Kleinstein on September 08, 2024, 05:38:46 pmHmmm:Quote from: ICL7135 datasheetDepending the complexity/budget, looks like the ICL7135 still can be used; the main advantage is the direct negative voltage conversion, which simplifies the input circuit.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: September 09, 2024, 12:03:32 pm
content: Quote from: PCB.Wiz on September 08, 2024, 08:03:12 pmThat is probably a good Idea. It gives you some real experience.HX711 is quite noisy, and it does not have any decent built in reference, but it's very cheap and easily available. As-is you can use it for radiometric measurments, if you want to measure real voltages, then adding a voltage reference is a good idea.ADC's such as ADS1115 and ADS1118 are also easily available on breakout boards. Just stick one in a breadboard and add a uC with some firmware.There are also lots of uC's with built in ADC's, but most will not get to the resolution you want.Building real things and making measurements helps you gain real experience and that is an important part of understanding what all those numbers in datasheets mean.