## What is the relation between ADC resolution and DVM digits??

28 posts / 0 new
Author
Message

Hi freaks

I have a few mcp3424(18 bit adc) lying around & recently ordered a OLED display.So i was thinking to build a precise DVM with that.As per this link,a 5.5 digit DVM is constructed with a 24 bit ADC.My question is preety simple....what is the relation between ADC resolution and DVM digits??With a 18 bit ADC,what will be the precision digits after decimal to measure??Or suppose,if i use a 20/22 bit ADC,then what will be the decimal digits for them?? Please explain anybody.................

Total votes: 0
`bmax = ceil(d*(log(10)/log(2)))`

and log(10)/log(2) is a fixed constant: 3.3219280948873623 so roughly:

`bmax = ceil(d * 3.32)`

So:

Decimal digits   Bits required to represent:

5                       17

6                       20

7                       24

8                       27

9                       30

and even

5.5                     19

Total votes: 0

The ADC resolution would be the AREF voltage divided by the 2 raised to the number of bits, i.e.  in the first part of your question you have an 18 bit adc,

so if AREF is 5 volts, the resolution of the ADC will be 5 / 262144 ~= 19uV or about 5 decimal places.

Note also the floating point precision of GCC is also only about 5 decimal places unless you use a toolchain with double floats.

Jim

Click Link: Get Free Stock: Retire early! PM for strategy

share.robinhood.com/jamesc3274
get \$5 free gold/silver https://www.onegold.com/join/713...

Total votes: 1

Don't get too hung-up on bit count, all they do is give you precision. They don't give you accuracy. Dig deeper into the datasheet.

For example, your 18-bit chip give you steps that are 0.00038% of full scale. But the chip has a possible gain error of 0.3% which drops the accuracy of your chip to around 10 bits. And by the time you put a front end in place you'll be lucky to get 1% accuracy or around 7 bits.

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

Total votes: 0

to build a precise DVM

A great project to work on.

But know that Fluke and HP meters cost a lot to obtain this performance for a reason, getting such accuracy isn't trivial.

Note, too, that there is a little bit of a difference between measuring very small voltages, and measuring a watch battery with great precision and accuracy.

The analog front end is the source of a lot of error for both measurements, op-amp off sets voltages, drifts with temperature, etc.

Even setting up a precision voltage divider that is accurate to X decimal places can prove challenging.

I think one of the hurdles to overcome when tackling such a project is accurately measuring your results!

Clearly you need a meter with at least on order of magnitude better resolution and accuracy than what you are building in order to quantify how well your design works!

If you have a Fluke meter available to you, then problem solved.

Otherwise you never really know how good your meter is performing, in spite of its displaying lots of digits on the display.

JC

Total votes: 0

clawson wrote:
Decimal digits Bits required to represent:

I won't disagree on the "raw" values given.  Now, how many of those digits of any use in a real situation?  The above presupposes a "perfect" analog subsystem with perfect compensation for supplyV (read: battery) changes and perfect compensation for temperature changes and perfect reference and perfectly clean ground and no noise anywhere, including on the signal.

Thus, a typical utility DVM gives a few reading updates per second, with [probably] a bunch of oversampling and averaging.  (In practice if the lower digits are constantly updated they'll just be flickering anyway and you eye can't grasp them...)

Hopefully ka7ehk will see this as he spent many years in the business.  Another fun thing is to open a junk meter of the quality you'd like to achieve, and do some reverse-engineering on the circuitry.  You'll find lots of compensation and filtering circuitry.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

Total votes: 0

Brian Fairchild wrote:

Don't get too hung-up on bit count, all they do is give you precision. They don't give you accuracy. Dig deeper into the datasheet.

For example, your 18-bit chip give you steps that are 0.00038% of full scale. But the chip has a possible gain error of 0.3% which drops the accuracy of your chip to around 10 bits. And by the time you put a front end in place you'll be lucky to get 1% accuracy or around 7 bits.

True, but you can buy Voltage Reference parts these days, with quite an improvement on that 0.3%

I can see

0.04%, 5ppm  for \$2.75

0.02% and 5ppm for \$5.11

0.01% 0.6ppm for \$63

Total votes: 0

Who-me wrote:

True, but you can buy Voltage Reference parts these days, with quite an improvement on that 0.3%

Agreed, but that 0.3% figure (actually it's 0.35% when I re-read the datasheet) is labelled as a 'gain error' as it lumps together the voltage reference error and the error of the front end amplifier of the ADC. I've also just spotted that if you choose a 60 samples per second sample rate the number of bits drops to 14.

It's quite instructive to look at the specification of  purpose built meters. A Fluke 77...

DC Volts 0.3% + 1 digit

AC Volts 2.0% + 2 digits

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

Total votes: 0

Brian Fairchild wrote:

It's quite instructive to look at the specification of  purpose built meters. A Fluke 77...

DC Volts 0.3% + 1 digit

AC Volts 2.0% + 2 digits

Yes, I find this for a uni-trend UT171C  for example

 Specifications Range Best Accuracy Model UT171C DC Voltage(V) 600mV/6V/60V/600V/1000V ±(0.025%+5) AC Voltage(V) 600mV/6V/60V/600V/1000V ±(0.4%+40) DC Current (A) 600uA/6000uA/60mA/600mA/6A/10A ±(0.15%+2) AC Current (A) 600uA/6000uA/60mA/600mA/6A/10A ±(0.75%+5) Resistance(Ω) 600Ω/6KΩ/60KΩ/600KΩ/6MΩ/60MΩ ±(0.05%+2) Admittance(S) 60nS ±(1.0%+10) Capacitance(F) 6nF/60nF/600nF/6μF/60μF/600μF/6mF/60mF ±(2.5%+40) Frequency(Hz) 10Hz-10MHz ±(0.01%+5) Temperature(°C) -40°C ～1000°C ±(1.0%+3℃) Temperature(°F) -40°F～1832°F ±(1.5%+5℉) Features Display Count 60000(EBTN) Auto Range √ Manual Range √ True RMS √ Bandwidth (Hz) 100kHz √ AC+DC √ V.F.C √ 4-20mA Loop 0-100% √ LoZ(ACV) Around 3KΩ √ Continuity Buzzer √ Diode Around 3V √ Duty Cycle 0.1% ～ 99.9% √ NCV √ Data Hold/MAX/MIN √ Peak Hold √ Relative Mode √ Trend Capture √ MAX/MIN √ Data Storage 9999 Display Type OLED LCD Backlight √ Analogue Bar Graph 31 USB Interface √ Mis-Plug Alarm √ Low Battery Indication √ Auto Power Off Around 15 minutes √ Re-Chargeable Battery Input Protection √ Input Impedance for DCV ≥10MΩ √
Total votes: 0

Thanks to all for the prompt responses!!

A 5.5 digit DVM means it is a 200000 counts.Am i correct?

clawson wrote:
Decimal digits Bits required to represent: 5 17 6 20 7 24 8 27 9 30 and even 5.5 19

As per the MCP3424 datasheet,i have effective 17 bits of resolution(MSB represents the sign bit).So as per the calculation above,i can get a max of 4.5 digit or 20000 counts...right??

Last Edited: Wed. Feb 15, 2017 - 01:15 PM
Total votes: 0

SHARANYADAS wrote:
i have effective 17 bits

Depends what you mean by, "effective".

In this context, it is usually used to mean the number of bits that convey an actual, useful, measurement value - as opposed to being just noise, or meaningless due to errors elsewhere in the signal path.

It's like measuring the diameter of a circle using a cheap plastic ruler, then working out the area and quoting all ten digits from your calculator!

Top Tips:

1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Total votes: 0

awneil wrote:
actual, useful, measurement value
...that i meant to say!!

Total votes: 0

So you understand that the number of effective bits is less (possibly significantly less) than the total number of bits?

Top Tips:

1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Total votes: 1

I'd re-read the more technical answers in this thread if I were you. It's clear that just because the chip say "17 bits" or whatever that is not the accuracy you are going to end up with as you are not going to create the "perfect front end" unless you throw Fluke levels of money at the thing. (in which case you might as well just buy the Fluke!)

Total votes: 0

clawson wrote:
5.5 19

I couldn't understand how this line is derived from the above formula?

Total votes: 0

SHARANYADAS wrote:
clawson wrote: 5.5 19 I couldn't understand how this line is derived from the above formula?

Well, you said:

SHARANYADAS wrote:
A 5.5 digit DVM means it is a 200000 counts.Am i correct?

And I agree -- in meter-speak, the top 7-seg has the sign, and a 1 or not.  So the largest number able to be shown is 199_999 right?

Assuming a sign bit, that takes one more bit.

2 to the 18th power is 262144.  So that can handle the 200000 in 18 bits plus one for the sign gives 19 bits.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

Total votes: 0

Looking at clawsons formula:

`bmax = ceil(d*(log(10)/log(2)))`

and where he simplified it to:

`bmax = ceil(d * 3.32)`

for 5.5 digits, you get

`bmax = ceil(5.5 * 3.32)`

which is

`bmax = ceil(18.26)`

so it requires at least 18.26 bits, and the ceil(ing) makes that 19. (18 bits would not quite be enough...)

David (aka frog_jr)

Total votes: 0

So then as per the calculation,a 4.5 digit DVM would require (4.5 * 3.32) = 14.94 ~ 15 bit ADC(avoiding any type of error regarding gain/analog front end/any other).Right??

Total votes: 0

Just out of interest does anyone know WHY it is that DVMs offer n.5 digits ? Why no just x or y digits without the ".5" ? Is it just to save money on LCD segments or something? Or is it to do with the bit range of the ADCs involved?

Total votes: 0

That's a good question - goes back before my time. In them olden days there would've been decatrons used as counters methinks, so the conversion was done natively in decimal.

Total votes: 0

Thinking out aloud here...

suppose you have a 4 digit DVM with two ranges, 0-10V and 0-100V. You measure a 5V signal and it'll display nicely as 5.000V. Now if it drifts up 1mV it'll dispaly as 5.001V, or a downwards 1mV drift and it's 4.999V.

Now measure a signal at the top of the range. It happily reads 9.999V but if it drifts up 1mV then you get a OL indication so you have to change up a range where it now reads 10.00V. But is that 10.00V or 10.09V?

I suspect that adding that extra leading 1/2 digit is the sweet spot compromise between resolution, accuracy, cost of additional intermediate ranges and ADC bits.

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

Total votes: 0

clawson wrote:
Is it just to save money on ... segments

That's what I've always assumed.

Particularly in the days of Nixie tubes - where a tube (and associated drive) with just a '1' would be much cheaper than having all 9 or 10 "elements"... ?

Top Tips:

1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Total votes: 0

clawson wrote:
Just out of interest does anyone know WHY it is that DVMs offer n.5 digits ? Why no just x or y digits without the ".5" ? Is it just to save money on LCD segments or something?
theusch wrote:
in meter-speak, the top 7-seg has the sign, and a 1 or not.

I think it is the latter.  The high "7-seg" often has a minus, and a 1 (or not), and decimal point, and often special symbols (BATT; CONT; ...).

Having only a narrow "1" saves the width for a full digit plus the leading sign.

frog_jr wrote:
so it requires at least 18.26 bits, and the ceil(ing) makes that 19. (18 bits would not quite be enough...)

Really?  From my post above, 2 to the 18th is 262144, which handles 199999 nicely.  Add one for the sign.

  I think the difference is the formula is a formal 5.5 digits.  A 5.5 digit DVM doesn't go up to 499999 but rather 199999.  It is a metric half digit. ;)

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

Last Edited: Thu. Feb 16, 2017 - 02:49 PM
Total votes: 1

theusch wrote:

It is a metric half digit. ;)

The US never has understood the metric system has it?

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

Total votes: 0

Typically (for multimeters), a 1/2 digit display indicates that the most significant digit is ±1 so for 5.5 digits, -199999 to +199999 (where the decimal point is somewhere right of the most significant digit). (This would require a minimum of 19 bits).

More common are the 4 1/2 digit displays with a display range from -19999 to +19999.

A 4 3/4 display (typically) indicates that the most significant digits can be 0-3. So -39999 to +39999.

I have also seen a 4 4/5 display that ranged from -49999 to +49999.

Fluke uses the 1/2 digit term differently where the count for 4 1/2 digits can be either 20000 or 50000.

David (aka frog_jr)

Total votes: 0

When you can get meters with displays like:

is there really any reason to have silly digit limits? I understand you can't make a silk purse form a sow's ear and the "accuracy" you can portray is down to the frond end and ADC resolution but there's no real reason things should be stick back in the realms of:

Total votes: 0

clawson wrote:
... but there's no real reason things should be stick back in the realms of:
Segment LCD, some characteristics :

• Functional at -40C
• Battery lifetime

Most graphic LCD need a heater to reach the bottom of the industrial temperature range.

Somewhat of an exception to the above are the Sharp MemoryLCD (-20C, 12microW)

http://en-us.fluke.com/products/digital-multimeters/fluke-28-ii-digital-multimeter.html#overview

...

... extended operating temperature range of -15°C to +55°C (5°F to 131°F, -40°C for up to 20 minutes) ...

...

http://www.mouser.com/ds/2/244/715201541238-LCD-A3X1C50TR-A-765683.pdf  (Lumex segment LCD, 3.5 digits, -40C to 105C)

http://www.mouser.com/new/Sharpsma/sharpmemorylcd/

"Dare to be naïve." - Buckminster Fuller

Total votes: 0

clawson wrote:
When you can get meters with displays like:
clawson wrote:
is there really any reason to have silly digit limits?

When you can get CortexM microcontrollers for a buck or two, is there really any reason to still use AVR8?

Some of the same analogies about "why" might well apply.

In any case, getting back to OP, several things have been pointed out by responders:

-- It isn't a bad learning project.  We've seen worse.

-- To actually achieve many digits, even 3.5, with a reasonable level of accuracy will require much more attention to the analog subsystem than just using an ADC with a lot of bits.  (and the problem there is not likely to be in the ADC itself)

-- I'll re-itererate as well from one of my responses:  it would be a rare real-world signal appropriate for DVM measuring that is rock-steady in the first place.  And even if it is, the signal source may well change value in the fraction of a second between displays of new reading.

Lessee -- temperature comes to mind as an example of a slowly-changing signal in microcontroller apps.  But let's say you want to measure room temperature to 1/100 degree C on a 3.4 or 4 digit format.  That last digit isn't very meaningful except perhaps to indicate a trend of some type.  If the temperature is changing one degree per minute that low bit will be changing several times per second.

So give me some examples where this device might be used in practice.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.