## adc with signals of high output impedence

17 posts / 0 new
Author
Message

Hello,

I am using the adc to measure the voltage across a gas sensor that changes resistance as a function of gas concentration. The sensor which has resistance from 1k ohm to 750 k ohm and usually around 30k ohm (for normal gas concentrations) is in series with another resistor(38.4k ohms) to form a voltage divider. Now correct me if i am wrong but the output impedance of this circuit is usually higher than what the data sheet cites as being the highest impedance that you should have(10k ohms). My question is how can i assure that the adc reading is accurate? The solution needs to be low power and not take up much room. Can I just use a low adc clock frequency?

Thanks,
Josh

One problem with the ADC input impedance is the charging time constance of the ADC internal sample and hold capacitor. Since its charging time window is determined by the ADC clock speed, using the slowest ADC clock speed possible (see the data sheet) might help a little, but ideally you need a circuit to translate the variable impedance into an acceptable value. An operational amplifier circuit comes to mind. Also cutting down your ADC resolution would help. Try a correct impedance matched setup on your test bench for testing the full range of gas sensor pressures. Then try it again with the sensor connected directly to the ADC. That should give you a first hand look at what you are up against.

Op amp comes to mind first. You can get them very small (SOT23-5 for example) and low power.

On the other hand, if the rate of change of gas concentration changes very slowly, then just add a capacitor and reduce the sample rate. Sure, the time constant will change, but that is not a real issue. Just make certain that the time constant is short enough at the high resistance end to respond fast relative to concentration changes.

Jim

Until Black Lives Matter, we do not have "All Lives Matter"!

Your OP does not talk much about the linearity of the sensor, so there is no way of knowing whether this idea is good or bad for your application.

Make a resistive divider with a 10K resistor and the gas sensor. Connect the divider from Vcc to ground. The output resistance of the divider will always be less than 10K.

The circuit above might actually improve the linearity of your sensor, or it might make it much worse.

--
"Why am I so soft in the middle when the rest of my life is so hard?"
-Paul Simon

Quote:
Make a resistive divider with a 10K resistor and the gas sensor. Connect the divider from Vcc to ground. The output resistance of the divider will always be less than 10K.

It´s true that the resistance is lower, and it meets the AVR specification. But you don´t gain more information. No more accuracy, because you lower the signal and threfore the "signal_to_error" ratio gets worse.

Klaus
********************************
Look at: www.megausb.de (German)
********************************

The sensor resistance changes with the presentation of a gas, from 30k ohms to 15k ohms in the matter of a second then the change slows down after that, but it does depend on the concentration of gas presented. The data sheet for the sensor does say that you can use a resistor that is as low as 1k ohm. So the linearity should be OK. MegaUSBFreak, could you explain further why a 10kohm resistor would provide no more accuracy. If the lower valued resistor will not provide more accuracy I can add the op-amp as a buffer and then see how much difference I see.

Thanks,
Josh

Josh

Try adding 10nF capacitor to your ADC input. This will provide charge storage >1000 times greater then the sampling capacitance of the ADC.

You should limit the sampling rate to alow the capacitor to recover.

Peter

PS
I am shure that there are application notes for this.

That is sill a "slowly changing" signal, and the impedance is about that of a thermistor. I've had no problems with thermistors, even at higher impedances. But we do have a small cap on each input as described (100nF).

Lee

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.

pdvorak wrote:
Try adding 10nF capacitor to your ADC input. This will provide charge storage >1000 times greater then the sampling capacitance of the ADC.
This is not as simple as it seems. The ADC internal capacitor is located on the other side of the ADC sample/hold switch. This internal capacitor is only connected to the ADC analog input pin for a brief moment. It is more a matter of charge transfer to the internal capacitor when the sample/hold gate is turned on, than it is about external charge storage.

Adding a capacitor can change the voltage phase relationship at the ADC input. If the ADC input voltage is not changing rapidly, the added capacitor will improve the charge transfer to the sample capacitor. It will help compensate for a higher than 10k input resistance after the added cap reaches full charge. Since the added cap is not affected by the sample/hold switching, its ability to change voltage will be determined by the time constant on a continuous basis. If the signal does change rapidly then the circuit impedance and phase relationships need to be evaluated to see if adding an external cap will hurt or help.

Mike I totally agree that the capacitor does have limitations, however I don't belive that a gas sensor sampling needs more then 1 sample per second.

Peter

Quote:
MegaUSBFreak, could you explain further why a 10kohm resistor would provide no more accuracy. If the lower valued resistor will not provide more accuracy I can add the op-amp as a buffer and then see how much difference I see.

The 10 kOhms value come from the AVR datasheet. The inputresistance should be lower than the 10kOhms to charge the AVR internal S/H capacitor fast enough to get errlrs less than specified. If the resistance is higher then you may see wrong ADC output values. But it´s not that with 9999 OHms everything is OK and with 10001 Ohms everything is bad.
If you use a resistor devider, then you devide down the signal and lower the impedance. The absolute error gets lower because the impedance is lower, but at the same time you lower the signal and the relative error increases. You gain nothing.

If you have a source with 100k output impedance and put externally a resistor devider with 20k and 20k, then the ADC input impeadance is about 10k, but the signal decreases to 1/7.

Klaus
********************************
Look at: www.megausb.de (German)
********************************

High impedance is a problem when switching channels on the ADC multiplexer. If this is the only ADC channel you use, you are good. The capacitor is also a good idea. Or you can use an op amp.

I don't think the voltage divider helps. You have a low impedance to discharge the internal ADC capacitor, but you still have a high impedance to charge it.

Quote:
If this is the only ADC channel you use, you are good.

I see this more critical.
Some SAR converters charge the S/H capacitor to a special value during conversion. AFAIK TI chrges to VRef.
So after every conversion the S/H capacitor has to be charged a new to the input voltage.

Don´t know if the AVRs work the same way.

Klaus
********************************
Look at: www.megausb.de (German)
********************************

I am going to be using three adc inputs in the final design. Now, with two single channels operating and comparing it to a high quality voltmeter the adc is accurate to 9 bits. This is using a 100nF cap. I will do more testing with three channels once i have the other sensor.

Josh

Quote:

Now, with two single channels operating and comparing it to a high quality voltmeter the adc is accurate to 9 bits.

That ain't really good enough [the high-quality voltmeter]. For that last bit, there are a lot of places to look that don't even involve the ADC per se. Calibration of the meter. Grounding of the signal. Analog ground plane. Math rounding. Absolutely no jitter on the signal. or on AVcc. or on AGnd. or on ARef. Does averaging multiple readings change the result? [it does for me. 10ms sampling 50x and taking the average every 500ms. and displaying/using that tends to give rock-steady results, since most jitter that I see is 60-cycle hum. I've never worried about that last half-bit inside the ADC since the real-world signal is a lot crappier than that.]

Lee

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.