A bigger RC in front of an ADC is not always better: sampling-capacitor kickback

A SAR ADC input pin is just a sample switch of a few hundred Ω to a few kΩ and a sampling capacitor C_sh of a few pF, and if the input does not settle within 1/2 LSB during the sample period, the shortfall becomes measurement error. Adding an external C "to be safe" can also cut the conversion rate by orders of magnitude if it is the wrong size.

Last updated: 2026-10-09 ADCSAR ADCSamplingOp ampRC filter

The sample switch and the sampling capacitor

Inside the pin of a SAR (successive approximation) ADC there is usually only a sample switch (on-resistance of a few hundred Ω to a few kΩ) and the sampling capacitor Csh connected to it (a few pF in an MCU). In the sample (acquisition) period the switch is closed and Csh charges or discharges toward the pin voltage. In the hold (conversion) period the switch opens, and the SAR digitizes only the voltage on the isolated Csh by binary search.

What the ADC measures is not the input voltage itself but how far Csh settled by the end of the sample period. If the source has a resistance R (a divider, the sensor's internal resistance and so on), Csh charges along a first-order RC curve with R, and whatever has not settled appears in the code as a systematic error, not as noise.

Sample-and-hold equivalent circuitEquivalent circuit of a SAR ADC input: source resistance R, sample switch and sampling capacitor C_sh, showing the sample and hold periods. 1. Sample (acquire)Switch closed; C_sh charges or discharges toward the input 2. Hold (convert)Switch open; the SAR binary-searches the held voltage Vin R Sample switch C_sh SAR ADC Idle Converting Acquire t_acq Convert 0 t_acq Acquisition and conversion alternate
Figure 1: in the sample period the switch closes and C_sh charges; in the hold period it opens and the SAR runs a binary search.

How many τ to settle within 1/2 LSB: 9τ at 12 bits

The error of a first-order RC falls as e−t/τ (τ = R·C) over time t. To settle within 1/2 LSB at N bits, the error must be at most Vref/2N+1, so

the condition is t/τ ≥ ln(2N+1) = (N+1)·ln2, that is, e−t/τ ≤ 1/2N+1. In node, 12 bits (N = 12) gives ln(213) ≈ 9.01, which is where the rule "9τ at 12 bits" comes from.

Resolution and the number of τ needed to settle within 1/2 LSB (ln(2^(N+1)), calculated in node)
Resolution Nτ neededTypical use
8bit6.24τCoarse monitors
10bit7.62τTypical MCU built-in ADC
12bit9.01τMany MCU built-in ADCs (this article's example)
14bit10.40τHigh-resolution SAR
16bit11.78τPrecision measurement SAR

Connecting a high-resistance divider directly: 100kΩ/100kΩ battery monitoring

A circuit that divides a lithium battery voltage by 100kΩ/100kΩ and feeds the ADC directly is common. The source resistance (Thevenin resistance) is 50kΩ, and with Csh = 5pF, τ = 250ns and the time to settle at 12 bits is 9τ ≈ 2.25µs.

Yet because people want short sample times, many MCUs end up with something near the default, tacq = 1µs. In node, tacq/τ = 4 and the remaining error is e−4 ≈ 1.83%, about 75LSB at 12 bits (4096 codes), or about 60mV at Vref = 3.3V.

This is a systematic error that always leans toward the not-yet-settled side, so no amount of averaging removes it. It is separate from divider tolerance and loading errors (see the resistor-divider error article): it is an error of simply not having enough time.

Settling curves and the 1/2 LSB thresholdVoltage settling during the sample period, comparing low-impedance drive with a direct high-impedance divider. Driven at low impedance1µs is enough to settle (OK) 100kΩ/100kΩ divider directNot settled at 1µs (NG) C_sh voltage (fraction of target) 0 t_acq = 1µs Settled (100%) Threshold (−0.0122%) ✓ ✕ Low-impedance drive (R = 1kΩ, buffered)τ = 5ns. Essentially 100% at 1µs 100kΩ/100kΩ divider direct (R = 50kΩ)τ = 250ns. 98.2% at 1µs (needs 9τ = 2.25µs) Zoom: 98 to 100% 98% 100% 1/2 LSB threshold ≈ 99.988% Low R: ≈ 100% High R: 98.2% (short)
Figure 2: low-impedance drive settles in 1µs, but the direct 100kΩ/100kΩ divider (τ = 250ns) stops at 98.2% after 1µs and misses the 1/2 LSB line.

Reading the datasheet's "allowed source resistance"

Many MCU datasheets have a table of maximum source resistance RAIN(MAX). It is a value paired with the sample time (number of cycles) you set: the longer the sample time, the larger the allowed RAIN. Read it as a combined condition, "with this sample time, keep the source resistance below so many Ω."

Easy to miss is switching channels on a multiplexer. Right after the switch, Csh still holds the previous channel's voltage, so the difference to settle is the voltage difference between channels (worst case, full scale).

Adding an external capacitor: charge-sharing arithmetic

When you cannot lengthen the sample period or lower the source resistance, the standard fix is an external capacitor Cext right at the ADC pin. Cext acts as a reservoir, so the fast charge exchange when the switch closes does not have to pass through the source resistance R.

Charge sharing between Cext and Csh follows from charge conservation. When Cext is much larger than Csh, the node voltage moves by about Csh/(Csh + Cext) after sharing. To make that at most 1/2N+1, equal to 1/2 LSB, Cext ≥ Csh·(2N+1 − 1) ≈ Csh·2N+1 is the guide. For 12 bits and Csh = 5pF, node gives Cext ≥ about 41nF.

In practice people pick an X7R of 0.1µF (100nF) for margin, where Csh/(Csh + 100nF) ≈ 5×10−5, less than half the threshold 1/213 ≈ 1.22×10−4.

Charge sharing and recharge with an external capacitorWhen the switch closes, charge moves from C_ext to C_sh, then R slowly recharges C_ext. 1. Steady (switch open)C_ext settled to Vin via R; C_sh holds its old value 2. Switch closesC_ext and C_sh share charge at once 3. RecoveryR recharges C_ext (this time limits the rate) Vin R C_ext C_sh To SAR Charge sharing (fast) Recharge via R (slow) Previous held voltage (e.g. other channel) P dips slightly when sharing Recovers via R (needs 9τ) Node P (C_ext side) C_sh (SAR side) E.g. R = 50kΩ, C_ext = 100nF: τ = 5ms. Without waiting 9τ = 45ms, error remains at the next sample
Figure 3: when the switch closes, charge is shared from C_ext to C_sh and node P dips, then R recharges C_ext.

The recharge time caps the conversion rate

This is the heart of "bigger is not better." The small charge that moved in or out of Cext during sharing must be restored to the original voltage through the source resistance R before the next sample. The time constant is τ = R·Cext, far larger than for Csh.

In the earlier example (R = 50kΩ, Cext = 100nF), node gives τ = 5ms, so waiting 9τ at 12 bits takes 45ms and the sampling rate falls to about 22SPS. With no external C and the sample time set to 9τ (2.25µs), the maximum is, in theory, 444kSPS.

With a high external source resistance, a "comfortably large C" cuts the conversion rate by orders of magnitude. Choose Cext by checking both the charge-sharing error and this recharge time.

Seen as average current: C_sh·fs acts as an input resistance

Some datasheets state the source condition as an average input impedance instead. If Csh charges to V at every sample and this repeats fs times per second, the average current from the source is Csh·V·fs, the same as connecting an equivalent input resistance Req = 1/(Csh·fs). In node, Csh = 5pF and fs = 1MSPS give Req = 200kΩ. For high-resolution, high-impedance sources, though, the 9τ settling condition is usually the tighter one.

Buffering with an op amp: a large C on the output invites oscillation

Placing an op amp voltage follower between the source and the ADC lowers the closed-loop output impedance by the loop gain, so the effective source resistance gets small. The trouble starts when you hang an external C directly on its output.

With the op amp's open-loop output resistance Ro and load capacitance Cload, the two make a new pole. For Ro = 50Ω and Cload = 0.1µF, the pole is 1/(2π·50Ω·0.1µF) ≈ 31.8kHz (node). If it falls inside the feedback loop near the unity-gain bandwidth, it cuts the phase margin sharply and causes ringing or oscillation. The root is the same as the loop gain in the op amp error article.

The standard fix is one isolation resistor of tens of Ω (for example 20 to 100Ω) between the op amp output and the capacitor (the ADC pin). Take feedback from before the resistor, the op amp output itself, and the large load C sits outside the feedback loop, so loop stability is unaffected. For how to take feedback, see the inverting, non-inverting and VCVS article.

Capacitive load on an op amp output and the isolation resistorComparing a large capacitor directly on the op amp output with one behind an isolation resistor. 1. No isolation resistor 2. With isolation resistor Vin − + C 0.1µF To ADC pin Feedback (C inside) Ringing on output Pole ≈ 31.8kHz (Ro = 50Ω, C = 0.1µF) Phase margin lost; may oscillate Vin − + R_iso 100Ω C 1nF To ADC pin Feedback is taken before R_iso (the op amp output) C is outside the loop Loop phase margin is kept
Figure 4: a large C directly on the output creates a low-frequency pole. With an isolation resistor and feedback taken before it, C sits outside the loop.

Combining it with the anti-aliasing RC

The isolation resistor and the small C next to the ADC pin also form a first-order anti-aliasing filter. Put its cutoff well below half the sampling frequency, where it gives enough attenuation in the noise band you care about. The attenuation curve is in the RC filter attenuation article.

Do not confuse this stage's C with Cext, the large charge-reservoir C. The C paired with the isolation resistor (tens of Ω) is driven by a low-impedance op amp output, so its time constant is small and a high fs is no problem. A large Cext directly on the source itself (high impedance) puts a firm cap on fs through the recharge time.

Typical R and C by use (SAR ADC input)
UseSeries RC at the ADCNotes
High-impedance source, directA few hundred Ω to a few kΩ (the sensor itself)None (internal Csh only)Only if the sample time can be 9τ or more
Divider or passive sensor + reservoir CSource resistance as is (tens of kΩ is possible)1000pF to 0.1µFfs is capped by source R × C recharge time
Buffered by an op amp20 to 100Ω (isolation)100pF to 1nFPrevents oscillation. MSPS-class fs is possible
Doubling as anti-aliasing100Ω to a few kΩ (after the buffer)Choose so fc is well below fs/2See the RC filter attenuation article

実機で引っかかるところ

The reading drifts in one direction because the settling error is not random, so averaging and oversampling do not remove it. Suspect the combination of sample time and source resistance first.

Noise or offset changes with the potentiometer position because the divider's impedance changes with the wiper position. Only the first point after a multiplexer switch is wrong because Csh still holds the previous channel's voltage; sampling the same channel twice in a row and using the second reading is a common workaround.

If adding an external C made things slower or carries old values, check whether 9τ of R·Cext has grown longer than the sampling period.

Frequently asked questions

If I set the sample time as long as possible, is a direct connection with no external C fine?
If the longest sample time the MCU allows exceeds the 9τ you need (2.25µs in this example), a direct connection settles within 1/2 LSB. But throughput drops when reading many channels, and leakage and input bias current also have more effect.
Where in the datasheet is C_sh?
In the ADC electrical characteristics, under names like "sampling capacitance" or "input capacitance C_ADC," usually paired with the sample switch resistance. C_sh = 5pF here is only an example of the right order of magnitude, so use the value in your MCU's datasheet.
What symptoms appear if the external C is too large?
Recharging cannot keep up with the conversion rate, and readings lag, carrying values from a few samples back. With a multiplexer, the previous channel's voltage also remains in the first value after switching.
What should the op amp isolation resistor be?
It depends on the op amp's open-loop output resistance and the capacitive-load drive capability in its datasheet, so there is no single answer. Start at tens of Ω to about 100Ω and tune by watching the step-response ringing on the bench. Too large, and the pole with the C at the ADC drops low and cuts into the signal band.
Can I use the same 9τ calculation when switching channels on a multiplexer?
The formula is the same, but the voltage swing to settle differs. You may need to settle a change close to full scale, from the previous channel's voltage to this one's, within one sample time. Sampling the same channel twice and using only the second, or inserting a dummy cycle after switching, are the usual fixes.

Standards and references

  • Horowitz & Hill, The Art of Electronics — RC time constants and settling time, and sample-and-hold basics
  • Analog Devices, Op Amp Applications Handbook — Stability of op amps driving capacitive loads, and isolation resistors
  • MCU manufacturers' ADC datasheets and reference manuals — Sampling capacitance C_ADC, sample switch resistance, and how allowed source resistance R_AIN(MAX) depends on sample time

← All columns