In any case I'd suggest you build one, 399s only cost about $7 bucks. See how close you can get it to match your DMM and record the repeatability, you'll learn and have fun while doing it.
I just had a thought: would there be a benefit to having several 399 refs averaged together and running at the same time?
I was watching Dave's video about Agilent's bench 6.5 digit of precision, $2,500 plus multimeter. And there was this humble LM399H voltage reference chip right in the middle of the circuit board. So I figured out that this LM399H must be the heart of the precision of the $2,500 DMM. Than, one can just hook LM399H, costing $15, up to Arduion and still get 6.5 digit precision for pennies. OK, minus all the bells and whistles, not to mention branding and marketing, but who would care.
Now I checked the datasheet for LM399H and it said Initial Tolerance is 2%. Well, 2% is very far from 6.5 precision.
Now, question is, where am I going wrong?
And, is it possible just to buy an off the shelf precision voltage reference chip and make your own super accurate 6.5 digit voltmeter?
your whole idea is off.
first of all arduino
that thing doesnt have the horsepower nor peripherals to do the work. it does not have an accurate enough a/d nor one with enough bits. so scrap that idea you will need an external a/d
once you have buikt the system you will need to calibrate it. most likely you will end up with calibration tables. that is where a fast cpu is required.
6 1/2 digit and more machines use multislope integration . they are essentially voltage to time converters. this allows nulling all offsets. i posted a whole explanation on how this works. look for the 34401 teardown.
there are 24 bit adc out there but those require very careful board layout. you can't breadboard with those things. nor can you breadboard the entire instrumentation system.
It certainly has the horsepower. A 6502 could handle it although I would not use anything with lower performance or less integration than a PIC or AVR. Conversion times are slow if only because of the need for high 50/60 Hz common mode rejection so processor throughput is not a limitation.
Or voltage to frequency conversion,
or charge balancing (a specific case of voltage to frequency conversion),
or delta-sigma, or single slope integration (no 50/60 Hz common mode rejection though). My personal favorite is charge balancing but instrumentation delta-sigma converters have come a long ways. Their integral nonlinearity just makes it to 6.5 digits. Single slope integration can get you to 9.5 digits of linearity but the lack of 50/60 Hz common mode rejection makes them impractical except for very special applications.
It certainly has the horsepower. A 6502 could handle it although I would not use anything with lower performance or less integration than a PIC or AVR. Conversion times are slow if only because of the need for high 50/60 Hz common mode rejection so processor throughput is not a limitation.Agilent uses 80188 or 80196 16 bit racers... an 8 bitter can't cope with everything that goes on in the multislope. even the 196 needs assistance of an ASIC implementing the charge balance timers. pic or avr are totally off. it's 2014. let's use a cortex M3 or M4 (hardware floating point) instead of backwards or obsolete cpu's.QuoteOr voltage to frequency conversion,not good enough for 61/2 and moreQuoteor charge balancing (a specific case of voltage to frequency conversion),this is the way to go. charge balance is not a voltage-frequency conversion. it is voltage timeQuoteor delta-sigma, or single slope integration (no 50/60 Hz common mode rejection though). My personal favorite is charge balancing but instrumentation delta-sigma converters have come a long ways. Their integral nonlinearity just makes it to 6.5 digits. Single slope integration can get you to 9.5 digits of linearity but the lack of 50/60 Hz common mode rejection makes them impractical except for very special applications.
all to impractical and combersome in designing the system. you'd end up with the solartron misery where you need unobtainium hand selected parts.
the Agilent technique is best. all errors are self cancelling at calibration. there is not a single adjustment in the system. as long as you have a long term stable reference voltage and a stable master oscillator (10MHz) you go. everything else is allowed to drift. including your integrating capacitor.
the system equation collapses to : (time to deintegrate unknown / time to integrate reference) * reference voltage
It certainly has the horsepower. A 6502 could handle it although I would not use anything with lower performance or less integration than a PIC or AVR. Conversion times are slow if only because of the need for high 50/60 Hz common mode rejection so processor throughput is not a limitation.Agilent uses 80188 or 80196 16 bit racers... an 8 bitter can't cope with everything that goes on in the multislope. even the 196 needs assistance of an ASIC implementing the charge balance timers. pic or avr are totally off. it's 2014. let's use a cortex M3 or M4 (hardware floating point) instead of backwards or obsolete cpu's.
QuoteOr voltage to frequency conversion,not good enough for 6 1/2 and more.
Quoteor charge balancing (a specific case of voltage to frequency conversion),this is the way to go. charge balance is not a voltage-frequency conversion. it is voltage time
Quoteor delta-sigma, or single slope integration (no 50/60 Hz common mode rejection though). My personal favorite is charge balancing but instrumentation delta-sigma converters have come a long ways. Their integral nonlinearity just makes it to 6.5 digits. Single slope integration can get you to 9.5 digits of linearity but the lack of 50/60 Hz common mode rejection makes them impractical except for very special applications.
all to impractical and cumbersome in designing the system. you'd end up with the solartron misery where you need unobtainium hand selected parts.
the Agilent technique is best. all errors are self cancelling at calibration. there is not a single adjustment in the system. as long as you have a long term stable reference voltage and a stable master oscillator (10MHz) you go. everything else is allowed to drift. including your integrating capacitor.
the system equation collapses to : (time to deintegrate unknown / time to integrate reference) * reference voltage
The arduino adc is very very bad.
This summer I "charterized" them using a data precision 8200 voltage reference. What I figured out is that arduino adc is only good in high voltage above 1.5V and under it really go crazy.
So I suggest using a external ADC.
Best regards, Alberto.
PS If I found I'll post the graph of the reading voltage using the arduino adc andt the set voltage.
The arduino adc is very very bad.
This summer I "charterized" them using a data precision 8200 voltage reference. What I figured out is that arduino adc is only good in high voltage above 1.5V and under it really go crazy.
So I suggest using a external ADC.
The arduino adc is very very bad.
This summer I "charterized" them using a data precision 8200 voltage reference. What I figured out is that arduino adc is only good in high voltage above 1.5V and under it really go crazy.
So I suggest using a external ADC.
If the Arduino team would have followed Atmel's recommendations for the ADC it wouldn't be so bad.