On the Atmel ATmega328P on the Arduino Uno, the ADC R_{AIN} value is 100 MΩ – which I assume is the ADC input impedance. However, in the datasheet it says "The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less."

How do you figure out the ideal output impedance to work with the ADC? I'm trying to figure out how this applies to other discrete ADCs which have an input impedance that varies with sampling frequency. For example, on one part the input impedance varies from 125 kΩ to 65 MΩ. How would I figure out what the max allowable input impedance should be?

Also – am I even asking the right questions here or am I missing something huge?

## Best Answer

In case you are left wondering how the input resistance is spec'd as 100 MΩ, yet the impedance recommended driving for driving the input is 10 kΩ: The following diagram illustrates the input to the ATmega328P A/D:

As KyranF described, the task of your external circuitry is to ensure that the sampling capacitor C

_{S/H}gets charged to a voltage that's within some percentage of the input voltage, within the sampling time. The charging process is slowed by the resistance of your voltage source, and by the resistance of the circuitry between the ADCn pin and the sampling capacitor, here shown as "1..100 kΩ".(That "1..100 kΩ" is a vast range, and I would be interested what the range actually is in practice.)

Not shown in the diagram are additional small capacitances associated with the multiplexer. And R

_{AIN}is also omitted, as it's insignificant compared to I_{IH}and I_{IL}(max 1μA).The recommendation that your voltage source be less than 10 kΩ is essentially saying that we don't want the source resistance to slow the charging of C

_{SH}(and any other capacitances) significantly compared to the already present resistance, and relative to the sampling time. (However, the "1..100 kΩ" doesn't back that up very rigorously.)Looking at this from another point of view, the supposed "100 MΩ" input

resistanceof ADCn pins is not the whole story. R_{AIN}is parallel with I_{IH}and I_{IL}, which, when selected is also parallel with the "1..100 kΩ in series with 14 pF" load.In the sense that the 100 MΩ || I

_{IH}|| I_{IL}represent the entirety of theDCcharacteristics, it is legitimate, but it's not the relevant part of the load for our design purposes. We need to design to drive the "1..100 kΩ in series with 14 pF"ACpart of the load, which Atmel tells us is best done with a 10 kΩ source resistance.(Note that in discussions the term "impedance" may or may not imply that non-resistive AC characteristics are expected, and is sometimes used where what is really meant is "resistance".)

[Edit -- cuz this turns out to be quite interesting...]

Adding some ballpark sample and hold settling times:

With R = 100 kΩ and C = 14 pF, the RC time constant (TC) is 1.4 μsec.

For ATMega, the S/H time is 1.5 cycles of the ADC clock. For a midrange ADC rate of 100 kHz, that puts the S/H time at 15 μsec. So that's a bit over 10 TC.

The voltage on a capacitor settles to within 37% of its final value in one time constant, 5% in 3 TC, 1% in 5 TC and 0.1% in 7 TC (corresponding to +/- 1 bit of 10-bits resolution).

You can see that doubling the input R to 200 kΩ, or doubling the A/D clock rate, will chew into the resolution. But a change of input R from 10 kΩ down to 1 kΩ doesn't do us much good... though it could be beneficial for external reasons, like lower sensitivity to neighboring noisy signals.

Hope that helps.