Methods for Reading a Positive to Negative Range on an ADC

I have a sensor circuit that will output a voltage between -4 and +4 V. I need to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

Reply to
Luther Blackwood
Loading thread data ...

to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

You need to offset the signal such that 0V becomes Vref/2. Depending on your scaling needs this can occasionally be done with two resistors, often done with three, or if you need some active buffering in there, you may find you need as much as 4 resistors and an op-amp.

--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com 
Email address domain is currently out of order.  See above to fix.
Reply to
Rob Gaddi

I need to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

your scaling needs this can occasionally be done with two resistors, often done with three, or if you need some active buffering in there, you may fin d you need as much as 4 resistors and an op-amp.

Is this the type of circuit I've seen where I build a voltage divider with the offset voltage at the top and the sensor output tied to the bottom? Wit h the midpoint being sampled by the ADC?

Reply to
Luther Blackwood

need to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

your scaling needs this can occasionally be done with two resistors, often done with three, or if you need some active buffering in there, you may find you need as much as 4 resistors and an op-amp.

offset voltage at the top and the sensor output tied to the bottom? With the midpoint being sampled by the ADC?

Exactly. Often you'll get that offset voltage where you want it by using 3 resistors, one to the signal, one to Vref, and one to ground. The Vref/ground pair allow you to make a Thevenin equivalent circuit to tune the offset voltage and gain scaling independently; with only two resistors their relationship is fixed.

--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com 
Email address domain is currently out of order.  See above to fix.
Reply to
Rob Gaddi

to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

One gotcha when going from a signal conditioning circuit with power supply rails that exceed the ADC rails into the ADC input is that you should clamp the input to the ADC to not exceed its power rails by much (usually a few hundred mV is okay).

Sometimes you can just use a series resistor and or/some diodes, but often you need some kind of active circuit, especially if the ADC expects a low impedance at its input in order to work accurately.

Using input protection diodes as clamps sometimes works, but it can result in current spilling into other channels of the ADC. For example, when channel 1 is out of range in might cause channel 2 to have an unacceptable error.

Reply to
Spehro Pefhany

"Rob Gaddi" >

This simple solution suffers badly from resistor and Vref inaccuracies. Active level shifter using opamp is much better in this regard.

Vladimir Vassilevsky DSP and Mixed Signal Consultant

formatting link

Reply to
Vladimir Vassilevsky

Recently I experienced this - a 240uA current through the (inherent) clamp diode to GND of a plain 8 bit ADC with 8 inputs would induce and error of 1-2 LSB into at least some of the rest of the channels (if not all of them, I don't remember that). Had never though about it, 240uA seemed low enough but it was not.

Dimiter

Reply to
dp

That's great if you have the +/- voltages on the ADC board. If you have only a positive rail, resistor accuracy is a problem. However, you can solve some of the problems by using the same reference for the offset and the ADC. If you want more than 12-bit accuracy, you're going to need to calibrate the system anyway, so resistor inaccuracies can be calibrated out.

A more difficult problem to avoid is the lower input impedance of your ADC input due to the resistor divider. If your sensor doesn't have a very low output impedance, you may load it too much with a low-value divider. If you use high-value resistors, you will change the settling time characteristics of the ADC. That's not a big issue for sampling under 1KHz, but can be a problem for much higher sampling rates.

If you get to pick your ADC, you might try something like the AD7606 from Analog Devices. It has 4-8 channels of input with the offset, dividers, buffers, and sample-and-hold circuits on chip. I was able to sample 8 channels at about 4800Hz and the results on the different channels matched to within a few LSBs.

Mark Borgerson

Reply to
Mark Borgerson

need to pass this to an ADC. What are some methods for reading this type of range on an ADC with only a positive rail?

I was worried about that with the AD7606 that I mentioned in an earlier post. Since my sampling rate is low and the ADC input impedance is in the MOhm range, I put an RC filter on the input with 5K and 0.1uF. I tested the interchannel interference by putting +/-6V square wave on even channels and DC on the odd channels (At the +/-5V range) The odd channels were stable to +/-2 LSB---better than I expected. Since my sensors are powered from

+/-5V rails, I shouldn't see any problems.

Mark Borgerson

Reply to
Mark Borgerson

And how is an opamp/active solution not going to suffer from resistor and Vref inaccuracies?

0.1% resistors are quite common these days....

Meindert

Reply to
Meindert Sprang

(Rob Gaddi:)

Where the "to ground" capacitor isn't necessary in the OP's symmetrical configuration.

Besides exotic things like a charge pump divider (e.g. LTC1043), how do you want to avoid "resistor inaccuracies"?

And Vref should be the same as the ADCs Vref, so what's the problem?

Please explain.

Oliver

--
Oliver Betz, Munich 
despammed.com is broken, use Reply-To:
Reply to
Oliver Betz

good data sheets even describe and quantify the problem.

Sadly these days datasheets tend to leave out important information...

Oliver

--
Oliver Betz, Munich 
despammed.com is broken, use Reply-To:
Reply to
Oliver Betz

And god help you if you're using the on-board ADC for a microcontroller. I've got an application where I'm using the crappy

10-bitter in an LPC3250 just to do some background power supply monitoring. Imagine my surprise when I found out that the ADC input impedance seems to be as low as 50k. The only specification provided in the data sheet is the maximum source impedance for the driving circuit, where "or what" is never actually given.
--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com 
Email address domain is currently out of order.  See above to fix.
Reply to
Rob Gaddi

I can't claim the datasheet did not specify that, I never looked for it (in my mind a 100k current limiting resistor was plenty, well, not so as it turned out). Basically of course I agree that datasheet quality has been worsening over the years. 20 years ago I had the papers on the 68340 and that was more than enough to do everything I wanted with it from scratch... far from that nowadays. Though still doable with the Freescale parts I use, I must say that. And I can't fault any of the ADI datasheets I have been using either, they are as good as ever. The "bad" datasheets I have seen are either of parts which never make it into my designs or those which take me by surprise (I had on one occasion a part which was bluntly out of spec, a MOSFET driver).

Dimiter

Reply to
dp

That with the input impedance is less of a problem once you are aware of it and anticipate it (though at 50k it would have caught me off-guard, too). What I find really irritating is the fact they all announce "12 bit" or "16 bit" and you have to really dig into the spec to see how many bits they do actually convert and not how many are available for reading in some register (if you are lucky and the spec does go into "small" details like INL, DNL, ENOB etc.).

Dimiter

Reply to
dp

n
o
.

Sorry for that post, I must have misclicked "send" before I managed to even begin typing my message.

Dimiter

Reply to
dp

"Twelve bits going on eight" was what I heard said about TI's '2812 DSP chip.

I smiled (he was right).

There is some small advantage chasing the actual number of bits converted down into the noise and the muck -- but I don't believe bit counts any more, ever. Like everything else, careful scrutiny of the data sheets is the order of the day.

--
Tim Wescott 
Control system and signal processing consulting 
 Click to see the full signature
Reply to
Tim Wescott
[...]

at least it's plenty for the input of an unbuffered charge redistributing ADC (the usual ADC found in microcontrollers). Requires a pretty long enough sample time.

Oliver

--
Oliver Betz, Munich http://oliverbetz.de/
Reply to
Oliver Betz

Well, you could always put the lower bits to good use and use them to help seed a random number generator. :-)

Simon. (Tongue in cheek. :-))

PS: I smiled at this because even as a embedded hobbyist, this is a issue I am very aware of.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP 
Microsoft: Bringing you 1980s technology to a 21st century world
Reply to
Simon Clubley

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.