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

0 Members and 1 Guest are viewing this topic.

Online bingo600

  • Super Contributor
  • ***
  • Posts: 2002
  • Country: dk
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #25 on: September 27, 2013, 03:34:51 pm »
Thanx QV   :)

Nice shield  :-+ :-+

Is that a "SHTxx" or clone i can spot ? (Temp + Humi) ?

/Bingo
 

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 #26 on: September 28, 2013, 12:49:00 am »
Thanx QV   :)

Nice shield  :-+ :-+

Is that a "SHTxx" or clone i can spot ? (Temp + Humi) ?

/Bingo

Yes it is a cheap flebay DHT11 clone. There is little space for components on the main shield, so I have put in a relay for range, a temp/humidity sensor, a DIY low tempco (5-10 ppm,  I will calibrate in software) resistive divider (more than 10 series/parallel hand picked / measured metal film resistors :wtf:) and some small fleabay scrap PCB's behind the Nokia 5110 display. Serves two purposes - increases the area to which I can put components (also with SMD pads) and serves as support for the display (which is mounted on a single 2.54 header row).
 

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 #27 on: September 28, 2013, 03:31:31 am »




.
« Last Edit: September 28, 2013, 01:19:25 pm by quantumvolt »
 

Offline senso

  • Frequent Contributor
  • **
  • Posts: 951
  • Country: pt
    • My AVR tutorials
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #28 on: September 28, 2013, 04:19:26 am »
Nice project/idea, following  ;)
 

Offline walshms

  • Regular Contributor
  • *
  • Posts: 183
  • Country: us
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #29 on: September 28, 2013, 04:53:10 am »
Rest of world: 10^x for most units
United States, 5280, 16, 128, 4, 1760, WTF????

Have you seen the dysfunction in Washington DC?  Can you really be surprised that imperial units still haven't gone away?  They can't even agree to disagree...  :-DD

Not everyone over here is that screwy... though admittedly, it depends on where you are in the US as much as anything else. 

Now, personally, I agree with Walter Lewin (professor at MIT) who said to his first semester physics students that in his class they work in SI units.  "12 inches in a foot?  Three feet in a yard?  It'll drive you nuts.  I prefer to work decimal, and I hope you will too."
 

Offline BravoV

  • Super Contributor
  • ***
  • Posts: 7547
  • Country: 00
  • +++ ATH1
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #30 on: September 28, 2013, 05:08:44 am »
About the ltc2400 results displayed at the lcd, do you use averaging ?

From the latest video, it looks like the lcd update speed is still a bit faster making those 2 least significant digits flipping wildly too fast.

Thanks for sharing this.  :-+

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 #31 on: September 28, 2013, 01:18:02 pm »
No, the ADC is still free running. The delay is from drawing the face and a delay command. I want to get as much stability I can out of the hardware before I manipulate the output from the ADC in software. I will test some changes in decoupling and supply regulation first.

I am very impressed with the LTC2400. It matches the 34401A for 4-5 decimal digits. Next week I will make a video that presents the display free running, averaging and showing median value (no more smiley  :o). Sooner or later - when I get a DAC - I will make simultaneous measurement pairs from the two meters via RS232 and do a linear regression Y=aX+b for the 256 measurement pairs on PC (8 bit or more DAC from fleabay, or maybe I use  PWM from Arduino).

Anyway - no averaging in the video. What you see is the raw (quite low noise) output from the LTC .
 

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 #32 on: September 30, 2013, 07:17:36 am »
I have done some changes on the regulator and front end, and added an average output to the display. More below the video ...



I have also done some linear regression on the output of the LTC2400 vs. Agilent 34401A, and the correlation coefficient is of the type 0.9999... With data of this precision class, it is somewhat pointless to do statistics because only a single 'outlayer' sample - let's say 0.01% away from expected value - makes the correlation change an order of magnitude.

Furthermore - there is a small nonlinearity somewhere: for certain voltages the LTC2400 lies consequently over or under the Agilent. We are talking about the order of 10s of microVolts. I am too lazy to look into it.

What is imo important to know is that by just connecting the parts and give your software a single calibration constant (the value of the reference for the ADC as measured by another meter), you get a 6 digit DVM with accuracy better than +-0.01%. With some more work you will get 0.005 (the Agilent has basic DC accuracy 10 V of 0.0015).  Only if you are aiming for very high precision do you need a capacitive divider front end. A precision resistor divider is simpler and imo adequate in this case.

However - the open solution here means that I can choose almost any short time accuracy I want. This is the ultimate DIY artifact calibration:

1. Get access to a precision DVM with RS232 output stream.

2. Feed this meter and the LTC2400 with a full step cycle from a DAC fed by a precision ref.

3. Let your software for the uC read (from SPI and serial UART RS232) and store all pairs of measurement for the same DAC voltage value.

4. Create a software look up table based on thhe measured pairs, a binary search algorithm and linear interpolation.

5. Let the LTC2400 output the table search value for the voltage it has read. If this is in the table, the LTC2400 will output the value of the artifact instrument. If not,  it will interpolate between the smallest higher and the highest lower reading for the artifact meter.

This procedure emulates the other instrument to arbitrary precision (limited by number of bits for the DAC, available memory for the uC, and time span for short time drift for the LTC2400 board assembly). The calibration performs in seconds and can be done anytime you need known precision.
 

Offline BravoV

  • Super Contributor
  • ***
  • Posts: 7547
  • Country: 00
  • +++ ATH1
Re: Easy DIY 5.5 Digit DVM + Volt Ref./Cal. (LTC2400+LTC6655 / SPI uC / Arduino)
« Reply #33 on: September 30, 2013, 07:49:15 am »
Curious what will happened on the tempco/drift at your vref if you blow or swirl around that circuit board with warm air like from a hair dryer ?  >:D

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Well - since the gadget is now working and there seems to be at least a few people who would like to build this less than 50 dollar board (that beats most instruments up to USD 500) in its intended range - low DC voltage - it is time to look at some wiring.


Absolute Bare Bone Basic Versions (they are all the same, but a bit different - good for studying). First NOTICE that the LTC2400 takes a SINGLE positive supply voltage (red wire  :-/O) 2.7-5.5 V on pin1 (VCC) and the 'zero/black/negative' lead of the power supply is connected to pin4 (GND). Furtermore - the reference voltage on reference input pin2 (VREF) must NOT exceed VCC. The positive voltage that is to be measured on the meter input pin3 (VIN) must NOT exceed VREF*1.125 (more details in the datasheet). Both VREF and VIN are referenced to pin4 GND. After this unneccesary 'baby talk' it is your own fault if you fry the chip  :-DD

(LTC2400 24 Bit ADC Datasheet http://cds.linear.com/docs/en/datasheet/2400fa.pdf)


1. fleabay board documentation http://www.ebay.com/itm/LTC2400-24bit-analog-to-digital-converter-ADC-module-temp-sensor-SPI-AVR-arduino-/111005456125?pt=LH_DefaultDomain_0&hash=item19d870d6fd)



This is part of the schematic for a board that plugs into Arduino SPI (pin 13, 12 and 10). It runs on 5 V from the Arduino with a 'so so' reference at 4.096 V. It is prepared for a better ref. If you choose VCC 5V you must choose Vref 4.096 or lower because of overhead for the reference chip. In this case both the ADC and the ref are fed from 5 V. If you supply the board with 9 V and put in a 78L05-type regulator for the LTC2400, you can use a 5 V reference (fed with the 9 V). Most references use only 3 pins: supply pin 2, ground pin 4 and output Vref pin 6, so you can put in almost any reference you like. But the better it is, the better you preserve the precision of the LTC2400. The capacitor (looks like C40?) is for hardware smoothing/averaging of the measured input voltage and is used/not used in Linear Technology's schematics. Full schematic for this plug-and-play board is in the link over. (If you are going to use more than one SPI device on Arduino then you will have to modify the connection of pin 5 Chip Select (CS). Consult an Arduino forum).

Notice the resistor divider. If you connect your measurement to VIN2 and then connect the center tapping in the divider to VIN (VIN1), then you can measure higher voltages then Vref. The four leftmost pins on the LTC2400 (pin 1 to 4) are explained in the beginning of this post - pins 5-8 are SPI (pin 5, 6 and 7) and noise suppression (pin 8 ). Pin 8 is connected either to VCC or GND depending on your mains frequency (see datasheet).


2. LTC2400 Datasheet http://cds.linear.com/docs/en/datasheet/2400fa.pdf



This figure is from the LT datasheet, and should be self-explaining by now.



3. LTC2400 Datasheet



Schematic of an LT Demo Board. Forget the 74HC14 pulse-shaper/drivers for SPI. Note that the board is fed by 9 V battery (8-15 V wall wart) and the reference chip LT1236 serves BOTH as regulator for the LTC2400 and as reference voltage for the same. Note the ample use of decoupling capacitors. LT advices to place them close to the IC pins.
« Last Edit: October 01, 2013, 03:10:19 am by quantumvolt »
 

Offline quantumvoltTopic starter

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

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
One of the members here has kindly agreed to help me make a LTC2400 experiment board. The main circuit will be based on fig. 4 in http://cds.linear.com/docs/en/application-note/an78fs.pdf:




Over and to the right of the LTC2400 will be footprints for 2 reference chips and a 3 terminal regulator. This will allow the ADC and other circuitry to be fed by:

1. External 5 V (jumpers on the on board two refs and the regulator)
2. Any suitable 3 terminal regulator (jumpers on the two refs)
3. Any suitable 5 V ref or the low noise LTC1655-5
(... and all other combinations that makes sense by using jumpers/wires)
(... moreover - the LTC2400, LTC6655-2.5 (and a buffer op amp) can run on 3.3 V)

The capacitive front end can be used alone (or only half of it can be used) by putting a jumper for the op amp (please see the other circuit diagrams in the linked application note).

The op amp buffer - with or without a precision resistive 2-3 range divider - can be used alone by using jumpers on the footprint of the LTC1043.

Imo it will not be difficult to arrange numbered test points, jumpers and optional traces in a way that allows almost any circuit - from bare bone ADC with ref to a very high precision meter - to be made on the board.

There will also be room for a multiplexer front for people who does data logging of sensors or voltage references. All ideas will be gratefully considered. Guests can post comments on the latest/last video over. The Gerber files will be publicly accessible.

Trace layout, length, width, decoupling and ground will have to be discussed when the first layout is presented. Imo the schematic must be done first.

I will order a batch - hopefully by the end of this month.
« Last Edit: October 02, 2013, 11:48:39 am by quantumvolt »
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
There are chips with built-in high resolution adcs (C8051 for example). You could have done all of your stuff with one such chip + reference.
================================
https://dannyelectronics.wordpress.com/
 

Offline Harvs

  • Super Contributor
  • ***
  • Posts: 1202
  • Country: au
Cool, this would be a nice board to have a play with.

Do you know if there's any "jelly bean" equivalent to that switched cap building block.  I've just done some searching but haven't come up with anything.  It looks like a really flexible part that'd be very interesting to use, but really quite expensive at around $8 a pop.
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
I really do not know. I learned about the chip accidentally reading an old post from Andreas. I am sure someone will give him a hint so that he can answer your question,
 

Offline Harvs

  • Super Contributor
  • ***
  • Posts: 1202
  • Country: au
Yeah, first I've seen it as well.  I guess you could do something similar with a standard jelly bean analog mux by switching it with spare MCU timer, but probably unlikely to be as accurate. I haven't actually done any reading on that one, just a thought.
 

Offline Harvs

  • Super Contributor
  • ***
  • Posts: 1202
  • Country: au
I'm not going to de-rail your thread any further, but I thought I'd just add this.

The concept interested me enough that I just built up the basic voltage doubler circuit for the switched cap block as in the Jim Williams app note but using a jelly bean TI CD4052BP 2x 4:1 analog mux and some rubbish caps on a breadboard. Switching was at 500hz just using my function gen. The result, with 1V input -> 2V output, there was maybe 1 or two counts low on the least significant digit of my 5.5 digit bench meter (but that was unbuffered so had a 10Mohm load).  IMO that's incredible for <50c worth of parts and no matching of anything.

Ok, there's bound to be things like leakage for the likes of the 24-bit ADC, but for less volt-nuttery applications it could make for some pretty cool circuits.  I'll have to read that whole app note now...
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3272
  • Country: de
Do you know if there's any "jelly bean" equivalent to that switched cap building block. 

The only cirquit that comes near to the LTC1043 is the MAX4053A (note you will need the A-version).
But you will need 4 MAX4053a + a clock cirquit to replace 3 LTC1043. And pricing of the MAX4053A is in the same range as LTC1043.

cap block as in the Jim Williams app note but using a jelly bean TI CD4052BP 2x 4:1 analog mux and some rubbish caps on a breadboard. Switching was at 500hz just using my function gen.

My experience with CD4053 (i.e. HCF4053) in a PWM divider cirquit is that you get around 200 uV (40 ppm) nonlinearity in a 5V range.
With MAX4053A you get below 13 ppm and 2-3 ppm are achievable with proper adjustment.
The 74HC4053 is even worse with 600uV nonlinearity.

So you get what you pay for.

With best regards

Andreas
 

Offline mtdoc

  • Super Contributor
  • ***
  • Posts: 3575
  • Country: us
Great stuff quantumvolt.

Any chance of seeing your modified Arduino code? :D


 
There are chips with built-in high resolution adcs (C8051 for example). You could have done all of your stuff with one such chip + reference.

It looks like the C8051s only have 10 bit ADCs (as do the Arduino Atmel chips) which just won't cut it for my application.
« Last Edit: October 02, 2013, 09:53:14 pm by mtdoc »
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Quote
It looks like the C8051s only have 10 bit DAC (as do the Arduino Atmel chips) which just won't cut it for my application.

You are looking at the wrong C8051. Look at the 350s: the analog features those chips have are nothing short of remarkable.

================================
https://dannyelectronics.wordpress.com/
 

Offline mtdoc

  • Super Contributor
  • ***
  • Posts: 3575
  • Country: us

You are looking at the wrong C8051. Look at the 350s: the analog features those chips have are nothing short of remarkable.

Ok - I see those now..  Thanks.

Still, for dilettantes like myself, the LTC2400's SO8 package and an Arduino is easier to deal with... ;D
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Thanks to Andreas for stepping in with expert knowledge  :)

Any chance of seeing your modified Arduino code? :D

Concerning the code and measurements (some people have asked why I do not give numbers for noise etc.):

I will put my code snippets in this thread, including a data logger time series module and a display from Arduino serial to USB PC that I am making now. But it is not MY code - it is all copy and paste and merge from different sources. Also I am too lazy to clean up the code, so my hope is that someone later on writes a clean modularized commented code.

Furthermore - I do some crude measurements and statistics of noise and stability. But I do not have good enough equipment. For me WYSIWYG and I am totally OK trusting the specs and other measurement results published by Linear Technology. This ADC family is very well documented, and as mentioned earlier - there even is a Demo Board with software from LT.




« Last Edit: October 03, 2013, 06:14:48 am by quantumvolt »
 

Offline Andreas

  • Super Contributor
  • ***
  • Posts: 3272
  • Country: de

You are looking at the wrong C8051. Look at the 350s: the analog features those chips have are nothing short of remarkable.

Ok - I see those now..  Thanks.


Mhm,

when comparing the C8051F350 ADC with the LTC2400 in the datasheet then the LTC2400 is about a order of quantity better. (It should be clear that analog + digital features on the same chip are always a bad compromize).

Gain/full scale error typ 4 vs. 20 ppm
Gain drift 0.02 vs 0.5 ppm/K
Offset 0.5 (of the shelf) vs 5 ppm (after calibration!)
Mains frequency rejection 130 vs 100 dB

The INL is specced equally. But on the LTC2400 the shape of the INL is well known and thus can be easily calibrated out by a single parameter (mid scale calibration) to below 1 ppm.

With best regards

Andreas
 

Offline quantumvoltTopic starter

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: th
Thanks again Andreas. You are a walking Volt Lexicon  :D.

I am looking through all the links I have collected, and I found a new one that imo deserves presentation. There is a real DIY prototype (breadboard and copper clad), noise measurements and another version of the test code I have linked to in an earlier post in this thread. The chip is LTC2440 - a differential input version of the LTC2400. Imo interesting and useful for the real breadboarders and Manhattan style prototypers. And another proof that carbon film resistors are not precision stuff (the builder of the prototype knows very well):


Source: http://dangerousprototypes.com/forum/viewtopic.php?t=4247p=42053



 
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
The 2440 is a great little chip, widely used (in comparison, 2400 is rarely seen) and a lot easier to manage than the 2400 (it being differential).

But still, 24-bit adc chips are far beyond what a good analog engineer could master.
================================
https://dannyelectronics.wordpress.com/
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf