Author Topic: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)  (Read 121797 times)

0 Members and 3 Guests are viewing this topic.

Offline sync

  • Frequent Contributor
  • **
  • Posts: 799
  • Country: de
"AD7712: 24-BIT SIGMA-DELTA ADC   
This converter utilizes sigma-delta techniques to offer 16-bit accuracy (0.0015% FSR) and no missing codes to 24-bits"

Accuracy 0.0015% of full scale is the same as the basic (best) DC accuracy for Agilent 34401A. Last time I looked at it it states that it is a 6.5 digit DMM.
The 15ppm of the AD7712 is the integral non-linearity and only at 25°C. The 34401A ADC non-linearity is 2ppm of reading + 1ppm of range. It's an order of magnitude better than the AD.
 

Offline mtdoc

  • Super Contributor
  • ***
  • Posts: 3575
  • Country: us
Very good news for me and others who want to use the LTC24xx family ADCs.

In the tread about the Linear Technology Arduino clone - LINDUINO https://www.eevblog.com/forum/projects/linduino-smart-isolated-arduino-compatible-board-for-daq-demo-boards-etc/ - an applications engineer from LTC posted that there is starting to be C++ code examples/libraries associated with the parts.

Below is the code for the 2 Channel 20 Bit ADC LTC2422. I have studied it and the libraries - they are professionally written and well documented. LTC even encourages "hacking" and all reuse of the free code. This also goes for "new unintended use" of the GUI Software QuikEval that is free as an .exe-file and now can be interfaced from Arduino (and PIC if you rewrite the I2C and SPI routines).

All you need to build a 4.5 to 6 Digit DVM with ready running software is the USD 5-10+ (depending on no. of channels and bits) LTC24XX chip and a suitable reference (another 5-10 dollars). Combined with an Arduino (you can use any Arduino Uno or similar - no need to buy the isolated Linduino from LTC) and a cheap display, you have both the PC based GUI and a portable measuring instrument.

Very cool quamtumvolt.  I've been following the Linduino posts with great interest. Will try to incorporate the code into my project when/as appropriate.  Right now I need to focus on getting a Labview front end together - for data processing,  GUI, etc.  My time for this project is very limited so progress is slow.      As far as  GUIs go - I'll be interested to see if you get the LT QuickEval software working with your project. :-+
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Quote
A float has a precision of 23 bits - 24 if normalized.

Look up the gcc avr compiler manual. The "resolution" or precission for avr-gcc float data type is quite low.
================================
https://dannyelectronics.wordpress.com/
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th

...

2) it uses float - 5/6 digit precision.

...

The "resolution" or precission for avr-gcc float data type is quite low.

...


First I want to apologogise for my somewhat disrespectful post over. Then I just present the facts: The Single Precision Float type has been around as essentially the same 4 bytes as long as I can remember (early 1960s) and has later beeen taken well care of:

"
IEEE 754 single-precision binary floating-point format: binary32

The IEEE 754 standard specifies a binary32 as having:

    Sign bit: 1 bit
    Exponent width: 8 bits
    Significand precision: 24 (23 explicitly stored)

This gives from 6 to 9 significant decimal digits precision ....

.... The true significand includes 23 fraction bits to the right of the binary point and an implicit leading bit (to the left of the binary point) with value 1 unless the exponent is stored with all zeros. Thus only 23 fraction bits of the significand appear in the memory format but the total precision is 24 bits (equivalent to log10(224) ? 7.225 decimal digits).  ....

"
Source: http://en.wikipedia.org/wiki/Single-precision_floating-point_format
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th

...

As far as  GUIs go - I'll be interested to see if you get the LT QuickEval software working with your project. :-+

Thanks. After starting  real work with the code, it turns out more problematic than I thought. This because the Linduino code uses an on-board MUX / line-sharing switch on data transfer - completely unknown to anything Arduino.

So the choice is to rewrite the code or - as I think now - build an Arduino breakout / connector shield with the MUX chip on and (by this hardware adding to Arduino) try to use the LTC code as it is.

This last solution is attractive because there also is a library for identifying chips / boards, store data, and save test measurement setup's and calibration constants (all in EEPROM) that is quite handy. We'll see ...

« Last Edit: October 20, 2013, 01:23:31 pm by quantumvolt »
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Well - it seems that that I am not the only one who wanted to use QuikEval. There are other posts around, and they all conclude the same way: Since LTC does not publish the source code - and that is fair enough - I have to look for something else.

So I am concluding this project. Status is:

- I'll keep the red shield as it is. I will make a new bigger one with the LTC1043 capacitive switch and my single LM399.

- I'll use the LTSketch Library free C++ source code as a ref for decent programming for Arduino. Since it is supported and updated, I will use it as it is. No copy and change - which just gives me more junk code. I'll add a library for my own permanent code.

- I'll go for the (good but slow) GUI MakerPlot instead of rewriting old junk code every time I need graphs, tables, statistics etc. It stores files from Arduino to harddisk, while the current Arduino thing is SD cards.

- I now have 3 different chips from the LTC24xx family. I also trust my single precision instrument Agilent 34401A. It is very difficult to systematically maintain anything that is permanently within 10 ppm, but it is possible. But no more 1 ppm dreams for me. I have very good experiences with Geller's ceramic ref board, so I will get more, and define those boards as my 10 V. The boards themselves are just another chip - what I reallly buy is the experience of opening up a packet that has crossed the Pacific and reads 10.000007 Volt or similar upon first firing up - every time. It is not the number of trim pots that makes precision gadgets, it's their measurement history ...

- I want to do some measurements and automated software calibration. So I'll move on to DAC / ADC setups - first a 16 Bit DAC with a large INL that has to be put in a closed loop firmware feedback - then I'll move onto 18 Bit state-of-the-art DAC's. I'll work with a single decade 1:10 ten position (rotary switch and quality relays) resistor divider with my new very expensive 0.01 / 0.005 % Vishay resistors. And I'll add software linearity correction.

- I will finish my 1N829 'nostalgia' reference, and I'll buy a single LTZ1000 for myself for Christmas so I have a new toy for next year ...
 

Offline cellularmitosis

  • Supporter
  • ****
  • Posts: 1111
  • Country: us
Just wanted to say Hi quantum!  I've been lurking on the forum with my brain spinning around the topics of precision references, kelvin varley dividers, etc, and I noticed your posts in all of those interests.

I just ordered some LTC6655, LTC2400, LTC1599, etc and hope to join your DIY efforts soon :)

I was surprised that digikey and the like didn't have the 1599 in stock.  I ended up having to order it directly from Linear, and they only had 2 left (LTC1599ACN).  Have Linear superseded this with a more modern chip?
LTZs: KX FX MX CX PX Frank A9 QX
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
...
I was surprised that digikey and the like didn't have the 1599 in stock.  I ended up having to order it directly from Linear, and they only had 2 left (LTC1599ACN).  Have Linear superseded this with a more modern chip?

I sent an email to LTC. This is what they said:

" ... the LTC1599ACN does have stock. We have 255 pieces in Singapore and 170 of the old lead finish in Milpitas CA. ...

... there is not much business on the DIP packages, that’s why Digikey is not stocking it."
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #108 on: November 10, 2013, 06:07:38 am »
As I said in an earlier post - I'll keep the red shield from this thread as it is. I was planning to make a new bigger one with the LTC1043 capacitive switch for dividing my single LM399 from 10 Volt to 5 or 2.5 Volt. Well - I have changed my mind. I now have 4 pcs. LTC6655-2.5 that I'd like to connect in parallel and use as reference.

As I also wrote earlier, I would like to use the LTC GUI Software QuikEval that is free as an .exe-file (but has no published code - which is OK). As the intermediate board between all LTC demo boards and the PC you run QuikEval on is based on an 8 bit PIC, I guessed I would be able to hack it anyway.

After sending an email to LTC asking for the protocol for the QuikEval USB data transfer, it ended up with LTC giving me a DC573A LTC2400 demo board with a new Linduino interface board for QuikEval. All free! (I guess they liked that I made the red shield with parts that I have bought - not sampled).

Linduino is an Arduino-compatible board that is galvanically isolated from the PC USB port and has some extra hardware put on. LTC has published a library of C code called LTSketchbook for the Linduino. It is open and contains code for LTC's ADCs, DACs, sensors, synthesizers, power management chips etc.

So I am very grateful. Now I can run the QuikEval GUI as I wanted. I also have 2.5 kVolt galvanically isolated floating ground USB powered Arduino 'clone' and a copy of the library! Thank you LTC.

Hence I will slowly start making one more experimental DMM based on the LTC2400. But this time I will not make a small, compact Arduino shield. I will go more advanced in circuitry on a modularized (kind of) motherboard. And I also have better software and code this time.

The short video shows the green Linduino board with the LTC2400 ADC stamp board DC573A, a blue Arduino with 1602 display reading RS232 serial data from the Agilent 34401A, and the measured ref ADR441. The analysis software at the end is QuikEval.


 

Offline branadic

  • Super Contributor
  • ***
  • Posts: 2378
  • Country: de
  • Sounds like noise
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #109 on: November 10, 2013, 10:23:52 am »
Sorry for that comment, but what are this videos for? Some good quality pictures would be worth instead of bad quality spam-like videos. I see no additional benefit presenting mobile phone quality videos in each of your post. Is this some sort of tic?
« Last Edit: November 10, 2013, 12:21:13 pm by branadic »
Computers exist to solve problems that we wouldn't have without them. AI exists to answer questions, we wouldn't ask without it.
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #110 on: November 10, 2013, 10:38:58 am »
Sorry for that command, but what are this videos for? Some good quality pictures would be worth instead of bad quality spam-like videos. I see no additional benefit presenting mobile phone quality videos in each of your post. Is this some sort of tic?

Yes.

(Which command? Your comment?)
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3221
  • Country: de
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #111 on: November 10, 2013, 04:21:03 pm »
Hello,

if I look at the video then your LTC2400 has more than 100uVpp noise?
This is far from that what can be reached with a proper setup.
Is this with galvanically isolation from PC or not?

with best regards

Andreas
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #112 on: November 10, 2013, 05:22:10 pm »
Hello,

if I look at the video then your LTC2400 has more than 100uVpp noise?
This is far from that what can be reached with a proper setup.
Is this with galvanically isolation from PC or not?

with best regards

Andreas


I guess that is because there is no averaging. And yes - it is the isolated Linduino.

As has been pointed out by an earlier poster, my videos are somewhat lacking in quality. But I think you will be able to see the button marked "Average" in the top left corner of the software window. When I use this average function (for example 16 or 64 observations), I get 6-7 steady digits without problems. Also - the LTC1236 LT1236 and the LTC2400 on the demo board are powered directly from a switch mode supply on the Linduino. LTC themselves states (in http://cds.linear.com/docs/en/demo-board-manual/dc573A.pdf) that if you want lower noise, you can cut a trace and add a jumper so that the LTC2400 is powered from the LT1236. I will go even further and put in a linear regulator and filter in between.

Also, in the left bottom corner, there is a field named "RMS Noise". It shows around 3 ppm. For 2.5 V that should be around 7.5 uV. If LTC use a crest factor of 5 or so, it should indicate a p-p level of around 30-40 uV.

I will try to measure this by activating the Average function. I will also make a software peak-to-peak detector for the ADC output (that is why I want code), and tell you later.

Also - the voltage reading is far out. The LTC2400 software reference and offset constants are not calibrated yet. I guess I am too quick to show my new toys.

The library "Linduino sketchbook" http://www.linear.com/solutions/linduino does for now support LTC2418/-49/-61/84. But there is not yet any code for the LTC2400. So I have copied code for some of these other ADCs and written 'new' code for the LTC2400 based on different parts of the library and the format of the status/command/data words for the LTC2400.

The calibration part - which is read in from keyboard to software - is based on external measurement of the reference and then stored on onboard EEPROM on the ADC demo board. This code I have not implemented yet.

When it is finished, I will use a DAC to output a staircase of voltages that will be measured simultaneously by the 34401A and the LTC2400. So then everyone can judge for themselves the voltage level and linearity tracking for the two meters.
« Last Edit: November 10, 2013, 05:29:58 pm by quantumvolt »
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #113 on: November 11, 2013, 11:51:27 am »
I have been working a few hours today with averaging, offset and gain estimation and adjustment. Everyone who knows a little bit about this will (like me - I am just starting to) understand the difficulties that lies in trying to "match" two meters for several points of measurement. As stated in the previous post, I will show tracking for a DAC staircase later. This is just to show unstability in the two meters' readings.


http://www.edn.com/design/manufacturing/4388718/Manage-your-measurement-errors


WARNING  :-DD
I would say that the LTC2400 (in averaging mode 64 points) is just as stable as the 34401A. Also = the QuikEval software shows some slow variations in the ADR441 named WH3. These are not reflected in the display of the 34401A, but if you study the 1602 display giving the RS232 stream from the 34401A, you will surely see it.

More will come ...


 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3221
  • Country: de
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #114 on: November 11, 2013, 08:05:54 pm »

Also, in the left bottom corner, there is a field named "RMS Noise". It shows around 3 ppm. For 2.5 V that should be around 7.5 uV. If LTC use a crest factor of 5 or so, it should indicate a p-p level of around 30-40 uV.

I will try to measure this by activating the Average function. I will also make a software peak-to-peak detector for the ADC output (that is why I want code), and tell you later.


Caution:

a crest factor of 5-7 is only valid if you have a single gaussian distribution.
When I look at the screen photo the distribution is built out of at least 2 distributions.
One from the ADC (nearly gaussian) the other "noise floor" which is much wider is probably from the switching supply.
I have seen at least 70-100uV difference on the screen and not the 7,5uV RMS * 6 = 45uVpp.

The problem with switching supply noise is that it shifts the average values out of the average value of the adc.
This introduces some kind of offset. But this offset is non-linear (depending on input voltage). Further it depends on parasitic capacitances. Any change of leads or even when you lay your hand on the lines or the power-supply will change the "offset".

So averaging is not the best solution. If you reduce the noise by filtering by a factor of 2 you will save a factor of 4 in number of measurement values to average for the same result. With a quiet power supply you should get around 20uVpp noise for the ADC. With further measures you should get the 10uVpp (= 0.3ppm RMS @ 5V) from the data sheet.

With best regards

Andreas
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #115 on: November 13, 2013, 07:25:35 am »
... With a quiet power supply you should get around 20uVpp noise for the ADC. With further measures you should get the 10uVpp (= 0.3ppm RMS @ 5V) from the data sheet.

With best regards

Andreas

As I said I would in an earlier post, I have done some light surgery in order to run the LTC2400 on a transformer based PS with a linear regulator.

I found out that I am not willing to cut on the board (I like these slick toys), so I have only cut the ribbon cable. Accordingly I will not get maximum noise reduction (requires re-tracing and soldering jumpers on the board).

The power supply line is now: wall wart transformer w/ full bridge, 7809 linear regulator, LT1236-5 (and LTC2400). The switch mode supply reaches the board only at the separate VCC and GND traces for the EEPROM. The ADC input is shorted with a cheap 30 cm crocodile clip (probably more than 100 milliohm) lead.

I guess the screen is readable. If not - the RMS noise is reported to be 1-2 ppm based  on 64 obs., and the histograms are 18-30 counts/bins wide (each bin is 0.0075 ppm).

But as I said, with more surgery I think it could have been lower.


 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #116 on: November 13, 2013, 08:10:25 am »
Same setup as over - but here the LTC2400 reads its own ref LT1236-5. Noise reported is a width of around 30 counts (0.0075ppm per count) in the histogram and less than 2 ppm RMS for the numbered output.





---ooo---

(PS. Not that I think anyone cares, I just say it to be polite for once  :-DD: I will be away for a week or two, and will probably not be able to post at the forum (that goes for all the threads I have started). Someone else will measure the ADR441 refs.)

 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #117 on: December 05, 2013, 03:25:00 am »
Quote from: Andreas link=topic=20959.msg328316#msg328316

... With further measures you should get the 10uVpp (= 0.3ppm RMS @ 5V) from the data sheet.  ...


With a cleaner setup the RMS noise when measuring the LTC6655-5 was around 0.4 ppm. But when shorting the same input leads used to measure the ref, the LTC2400's own noise (and maybe the LT1236-5 ref for the ADC) is some 0.9 ppm (for nominal 0 Volt). Can anyone explain this?




« Last Edit: December 05, 2013, 03:32:06 am by quantumvolt »
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3221
  • Country: de
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #118 on: December 05, 2013, 09:35:05 pm »
Can anyone explain this?

Probably you have the mains noise on your gnd line.
What happens if you put your finger on different places of your cirquit?

With best regards

Andreas
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #119 on: December 07, 2013, 02:09:22 am »
Yes, may be there is hum / mains noise that is masked when I measure 2.5 or 5 volt, but is 'visible' for near zero ADC reading (noise and offset). I will try to test this when I have time.

Also I have been thinking about the difference in stating noise "RMS" versus "RMS ppm". RMS noise is given in Volts (mV, uV) but "RMS ppm" is a dimensionless ratio. So a noise RMS voltage of 10 uV will be 1 ppm for a 10 volt DC signal, 20 ppm for a 5 volt signal, 100 ppm for a 1 volt signal and undefined for a zero volt signal.

So maybe the explanation also can be that when shorting the input of the ADC, the signal is ideally 0 volt DC. But in practice there will be a varying ADC output reading from noise and offset. This is the "signal" to the software with shorted input.

The software calculates the variation in the "signal" and uses this as a noise estimate. Then it divides this noise estimate with its estimate of the measured signal (which is just some "average" of the noise/offset).

This calculation - if it is actually done this way - will have large numerical errors due to the "noise" and "signal" being of similar amplitude and close to he resolution of the ADC (and close to zero). So the formula "noise RMS ppm [1x10^-6] = noise RMS [Volt] / signal RMS [Volt]" cannot be used when the signal is very small (and has large variation) .

I don't know for sure if my thinking is correct, but I will try to find web sites that explains this and also make an experiment for different DC signal levels. One idea would be to make a simple white noise generator outputting a small noise level (mV) and add this signal to a variable DC voltage (a low noise variable reference or regulator). When using the QuikEval software the RMS noise in ppm should approximately double when one reduces the DC level to 50 %, be 4 times as high when the DC level is 25% and so on. I might try this later.
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3221
  • Country: de
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #120 on: December 07, 2013, 05:49:57 am »
Hello,

RMS ppm definitions of noise makes only sense in one area:
Comparing the noise of reference voltage devices.

The reason is that the reference element (1.24V or 6-7V) is fixed and constant in noise and the amplification to the final output voltage only multiplies the noise level according the amplification.
So buried zener elements usually have 0.6ppm (0.1-10 Hz peak-peak) noise
and bandgap references usually a factor 5-10 larger at the same output voltage.

In most other cases the noise is a more or less constant value.

When doing noise measurements the measurement bandwidth is important.
If you use your LT2400 to estimate noise of external devices you have to keep in mind that
due to the measurement window and the averaging within the window you will have
a bandwidth limiting and thus a noise shaping.

Further: statistical distributed noise does not add linearly (but geometrically).

So the value rms noise on your screen is only a value (= standard deviation) that you can use to compare different ADCs at the same measurement rate.

With best regards

Andreas
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #121 on: December 08, 2013, 03:02:59 am »
Thanks Andreas. I must admit I am a bit confused.

Parts per million - ppm - is widely used. Doing a search on the web digs out ppms in chemistry, production quality, electronics, economics, medicine  and many more areas.

I was under the impression that ppm was just a dimensionless ratio [1/10^6] - as in this tutorial (imo easy to read and quite good introduction to many aspects of voltage references - absolutely worth reading):

Accuracy Parts per Million
Another reference accuracy unit found in data sheets is parts per million, or ppm. This unit is typically used to specify temperature coefficients and other parameters that change very little under varying conditions. For a 2.5V reference, 1ppm is one-millionth of 2.5V, or 2.5µV. If the reference is accurate to within 10ppm (extremely good for any reference), its output tolerance is:
2.5V × 10/10-6 = 25µV
Converting this to voltage accuracy:
2.5V ± 25µV = 2.499975V 2.500025V
Converting to percent:
±(25E - 6V) × 100/2.5V = ±0.001%
http://www.maximintegrated.com/app-notes/index.mvp/id/719

But then I found what what you say about using RMS, ppm and standard deviation:

"a root mean square (RMS) voltage (identical to the noise standard deviation) in volts"
http://en.wikipedia.org/wiki/Noise_%28electronics%29

and the "6 standard deviation" and "6.6 sigma" rule (many variants) in for instance:

en = 1.26 µVrms or 8.3 µVp-p  {my comment:(8.3 / 1.26 = appr. 6.6)}
http://www.ni.com/white-paper/3295/en/#toc4

ADI has even used a whole video to explain that to convert from RMS to Peak-to-Peak you multiply with 6 or 6.6 (depending on a confidence interval probability):


In general I find the whole area a mess with a lot of quasi-formulas that lack assumptions and documentation. So I will not reflect more on it now except from using the same ADC with the same software to compare different voltage references (with inter-comparison of 10/5/2.5 volt refs it doesn't matter much what measure the software uses).

But the topic interests me, so I think that next year I will make a project out of Noise in Voltage References, DACs and ADCs. A good point for me to start will be understanding this first:

Quantification

The noise level in an electronic system is typically measured as an electrical power N in watts or dBm, a root mean square (RMS) voltage (identical to the noise standard deviation) in volts, dB?V or a mean squared error (MSE) in volts squared. Noise may also be characterized by its probability distribution and noise spectral density N0(f) in watts per hertz.

A noise signal is typically considered as a linear addition to a useful information signal. Typical signal quality measures involving noise are signal-to-noise ratio (SNR or S/N), signal-to-quantization noise ratio (SQNR) in analog-to-digital conversion and compression, peak signal-to-noise ratio (PSNR) in image and video coding, Eb/N0 in digital transmission, carrier to noise ratio (CNR) before the detector in carrier-modulated systems, and noise figure in cascaded amplifiers.

Noise is a random process, characterized by stochastic properties such as its variance, distribution, and spectral density. The spectral distribution of noise can vary with frequency, so its power density is measured in watts per hertz (W/Hz). Since the power in a resistive element is proportional to the square of the voltage across it, noise voltage (density) can be described by taking the square root of the noise power density, resulting in volts per root hertz (\scriptstyle \mathrm{V}/\sqrt{\mathrm{Hz}}). Integrated circuit devices, such as operational amplifiers commonly quote equivalent input noise level in these terms (at room temperature).
http://en.wikipedia.org/wiki/Noise_%28electronics%29
 

Offline captbilly

  • Newbie
  • Posts: 7
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #122 on: December 11, 2013, 09:46:17 pm »
Would something like the LM399 work as the voltage reference? How would I get the voltage down, and also, are there any other ADI or TI parts that I can use?

Yes you can use LM399. But it will need a PS/Batt 12 V or more. The LTC2400 takes 5.5 V max. The reason for the fuzz about LTC6655 is that it is modern 2.5 V and gives itself to battery operation in 3.3 V environments. To bring the LM399 down to 5 V you can use either a resistor divider/buffer or first bring it up to 10 V and then divide it with the LTC1043 capacitive divider. Andreas is the expert on all this, I am sure he will give advice.

You can get 24 bit ADC's from TI and others also. The same goes for refs and op amps. You can mix whatever you like - just keep in mind that your end product can quite easily give you some 17 - 19 'noisefree' bits (around 5-5.5 digits or 0.0025% or 25ppm) if you use pieces with similar precision.

Though it takes some very careful component selection, board design, reference selection and a good enclosure, a TI ads 1256 (used to be Burr Brown part I believe) can deliver 22+ noise free bits in a real circuit.  We use the ADS 1256 along with an LTC6655 (ceramic package) and a FET SSR input (<Nano amp leakage at typical input voltages) isolation system, in a DAQC system we manufacture, and we are seeing a few 100s of nanovolts noise at 5 volt full scale input (goes down to a few 10s of nanovolts at gain 64/ 78.125mv input range).  Of course few people will have the necessary equipment to even measure this performance, and you can't expect to get those numbers on a perfboard sitting on your desk, but it is possible to do it with a careful implementation.

If you do some careful calibration tables stored on the processor (or on the computer connected to the ADC) you can get accuracy pretty much up to the limit of your voltage reference.  Of course the LTC6655 isn't going to have the long term stability (about 20ppm per sqrt 1000 hours) to give absolute accuracy to 22 bits for more than a short time, unless it has been burned in a the drift has slowed down.

On of the things that many users of these 24 bit S/D ADCs don't realize is that most of them won't deliver anywhere near 24 bits of noise performance.  But there are some exceptions, like the ADS 1256, ADS 1282, that can get extremely low noise and linearity.
 

Offline David Hess

  • Super Contributor
  • ***
  • Posts: 16544
  • Country: us
  • DavidH
USB-cables are terrible (Standard RS232 lines are better but not good). I use opto couplers and battery supply for the references and for the ADC cirquit. Transformers also have large capacities between primary and secondary side and will create some shifts to the output.
Even the 0.25pF of the photo couplers create a few uV shift in the output depending on the placement of the USB-cables.

I have seen opto-interrupters used in place of opto-couplers to get the isolation capacitance down and isolation voltage up.  In extreme cases, high performance ones can be made using an LED, photo-diode or photo-transistor, and black heat shrink tubing.

Custom isolation transformers are not difficult to wind and electrostatic shielding can be included between the windings and between the windings and core but opto-couplers are easier to use.  I wonder if a transformer like this would work for an isolated power supply good enough to replace batteries.

One thing I wonder about is unloading the ADC digital outputs so that switching does not cause ground or Vcc bounce.  I would also try slew rate limiting the digital inputs.
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3221
  • Country: de
One thing I wonder about is unloading the ADC digital outputs so that switching does not cause ground or Vcc bounce.  I would also try slew rate limiting the digital inputs.

Hello David,

The big advantage is that the LTC2400 does no conversion while it is read out.
So a series resistor for the digital lines is not a must if you use a low power processor.

Do you have experience with isolated power supplies without damaging the ppm accuracy range?
I think that is not so easy.

With best regards

Andreas


 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf