ADC の前の RC は大きければよいわけではない:サンプリング容量のキックバック

SAR ADC の入力ピンの中身は、数百Ω〜数kΩのサンプルスイッチと、数pF程度のサンプリング容量C_shだけです。これは信号源から見ると小さなRCフィルタで、サンプル期間のうちに1/2LSB以内まで整定しないと、そのまま測定誤差になります。「安全のために外付けCを足しておく」も、サイズを間違えると変換レートを桁違いに落とします。

最終更新: 2026-09-23 ADCSAR ADCサンプリングオペアンプRCフィルタ

サンプルスイッチとサンプリング容量:SAR ADC の入力ってどうなっているか

SAR(逐次比較)ADC のピンの内部は、たいていサンプルスイッチ(オン抵抗が数百Ω〜数kΩ)と、それにつながるサンプリング容量 Csh(MCU 内蔵で数pF程度)だけです。動作は2フェーズに分かれます。サンプル(取得)期間ではスイッチが閉じ、Cshがピンの電圧に向かって充電(または放電)します。ホールド(変換)期間ではスイッチが開き、SAR は外部から切り離された Csh の電圧だけを見て2進探索で数値化します。

つまり ADC が実際に測っているのは「入力電圧」そのものではなく、サンプル期間の終わりに Csh がどこまで整定できたかです。信号源に抵抗(分圧、センサの内部抵抗、フィルタのRなど)があると、これは信号源抵抗 R とCshによる1次RCの充電カーブそのものになります。整定しきれなかった分は、ノイズではなくそのまま系統誤差としてコードに現れます。

この記事では、この「サンプル期間内にどこまで整定すればよいか」を式と実際の数字で確かめたうえで、外付けコンデンサや外付けオペアンプを足すときに何が変わり、何が新たな制約になるかを見ていきます。

サンプル/ホールドの等価回路ソース抵抗R、サンプルスイッチ、サンプリング容量C_shからなるSAR ADC入力の等価回路。サンプル期間とホールド期間を示す。 ① サンプル(取得)スイッチが閉じ、C_shが外部電圧に向けて充電/放電する ② ホールド(変換)スイッチが開き、SARが保持電圧を2進探索する Vin R サンプルスイッチ C_sh SAR ADC 待機 逐次比較変換中 取得 t_acq 変換 0 t_acq 取得(サンプル)と変換(ホールド)は交互にくり返す
図1:サンプル(取得)期間はスイッチが閉じてC_shが充電され、ホールド(変換)期間はスイッチが開いてSARが2進探索する。

何τ待てば1/2LSBに収まるか:12bit なら 9τ

1次RCの充電カーブでは、目標値との差(誤差)は時間 t に対して e−t/τ(τ = R·C)で小さくなっていきます。分解能 N bit の ADC で1/2LSB以内に収めたいなら、フルスケール電圧を Vref として誤差が Vref / 2N+1 以下になればよいので、

e−t/τ ≤ 1 / 2N+1 つまり t / τ ≥ ln(2N+1) = (N+1)·ln2 が条件になります。node で 12bit(N=12)を計算すると ln(213) ≈ 9.01。「12bit なら 9τ」という目安はここから来ています。

分解能と、1/2LSBに収まるまでに必要なτの数(ln(2^(N+1))、nodeで計算)
分解能 N必要なτの数目安
8bit6.24τ粗いモニタ、古いロガー
10bit7.63τ一般的なマイコン内蔵ADC
12bit9.01τ多くのマイコン内蔵ADC(本記事の例)
14bit10.40τ高分解能SAR
16bit11.78τ精密計測用SAR

高抵抗の分圧を直結すると:100kΩ/100kΩ のバッテリ監視で何が起きるか

よくあるのは、リチウム電池の電圧を100kΩ/100kΩで分圧してADCに直結する回路です。分圧点から見た信号源抵抗(テブナン抵抗)は50kΩ。MCU のデータシートに書かれているサンプリング容量は数pFの桁で、ここでは Csh = 5pF とします。すると τ = 50kΩ × 5pF = 250ns、12bitで整定に必要な時間は 9τ ≈ 2.25µsです。

ところが「サンプル時間はできるだけ短くしたい」という理由で、多くのマイコンでは既定に近いサンプル時間として tacq = 1µs 程度が選ばれがちです。node で計算すると tacq/τ = 4、残る誤差は e−4 ≈ 1.83%。12bit(4096コード)に対して約75LSB、Vref = 3.3V なら約60mVもの誤差になります。

この誤差は乱数ではなくまだ整定しきっていない方向へ必ず寄る系統誤差なので、何回平均しても消えません。分圧抵抗そのものの許容差や負荷による誤差については抵抗分圧の誤差の記事で扱っていますが、ここで起きているのはそれとは別の、時間が足りないだけの誤差です。

整定カーブと1/2LSBのしきい値低インピーダンス駆動と高インピーダンス分圧の直結を比較した、サンプル期間内の電圧整定カーブ。 低インピーダンスで駆動1µsあれば十分整定(✓) 100kΩ/100kΩ分圧を直結1µsでは整定しない(✕) C_shの電圧(目標に対する割合) 0 t_acq = 1µs 整定後(100%) しきい値(100%−0.0122%) ✓ ✕ 低インピーダンス駆動(R=1kΩ、バッファ後を想定)τ=5ns。1µsで実質100%整定 100kΩ/100kΩ分圧を直結(R=50kΩ)τ=250ns。1µsでも98.2%止まり(9τ=2.25µs必要) 拡大: 98〜100% 98% 100% 1/2LSBしきい値 ≈99.988% 低R: ≈100% 高R: 98.2%(届かない)
図2:低インピーダンスで駆動すれば1µsで実質整定するが、100kΩ/100kΩ分圧の直結(τ=250ns)は1µsでも98.2%止まりで1/2LSBラインに届かない。

MCU データシートの「許容信号源抵抗」表の読み方

多くの MCU のデータシートには、ADC の項目に「許容信号源抵抗 RAIN(MAX)」のような表があります。これは単独の絶対値ではなく、設定したサンプル時間(サイクル数)とセットで決まる値です。物理現象は前節と同じで、サンプル時間を長く取れば取るほど、許容できる RAIN は大きくなります。表を読むときは「このマイコンなら〇〇Ωまで平気」ではなく、「このサンプル時間を選ぶなら、信号源抵抗は〇〇Ω以下にする」という組み合わせの条件として見てください。

もう一つ見落としやすいのが、マルチプレクサでチャネルを切り替えるときです。チャネルを切り替えた直後は、Cshには前のチャネルの電圧が残っています。整定しなければならない「差」は、定常状態でのノイズのようなわずかな量ではなく、チャネル間の電圧差そのもの(最悪はフルスケール)になります。同じ式(9τ)を使うにしても、Vとして見積もる幅を大きく取る必要があります。

外付けコンデンサを足す:電荷分配の算数

サンプル期間を長く取れない、あるいは信号源抵抗を下げられない場合の定番の対策が、ADCピンのすぐ近くに外付けコンデンサ Cextを置くことです。狙いは、Cextを電荷の「リザーバ(貯め場所)」にして、スイッチが閉じた瞬間の速い電荷のやり取りを、信号源抵抗 R を通さずに済ませることです。

Cextと Cshのあいだの電荷共有は、電荷保存則から求まります。Cextが Cshよりずっと大きいとき、共有後にノードの電圧が動く割合はおよそ Csh / (Csh + Cext)。これを1/2LSB相当の 1/2N+1 以下にしたいので、Cext ≥ Csh·(2N+1 − 1) ≈ Csh·2N+1 が目安になります。12bit・Csh=5pFで node 計算すると Cext ≥ 約41nF。

実務では、この最低ラインより余裕を持たせて0.1µF(100nF)のような、手元にあるふつうのX7Rを選ぶことが多いです。比率で見ると Csh/(Csh+100nF) ≈ 5×10−5で、しきい値の 1/213 ≈ 1.22×10−4よりさらに小さく、余裕は2倍以上あります。

外付けコンデンサでの電荷共有と再充電スイッチが閉じた瞬間にC_extからC_shへ電荷が移動し、その後Rが時間をかけてC_extを再充電する様子。 ① 定常(スイッチ開)C_extはRを通じてVinに整定、C_shは前回の値を保持 ② スイッチが閉じた瞬間C_extとC_shの間で電荷が一瞬で共有される ③ 回復Rが元の電圧までC_extを再充電する(この時間が律速) Vin R C_ext C_sh SARへ 電荷共有(高速、スイッチのRonのみ) Rで再充電(遅い) 前回の保持電圧(別チャネルなど) 共有の瞬間、Pがわずかに沈む Rで元の電圧まで回復(要9τ) ノードP(C_ext側) C_sh(SAR側) 例:R=50kΩ、C_ext=100nFならτ=5ms。9τ=45ms待たないと次のサンプルでも誤差が残る
図3:スイッチが閉じた瞬間、C_extからC_shへ電荷が共有されてノードPの電圧がわずかに沈み、その後Rが時間をかけてC_extを元の電圧まで再充電する。

その C を充電し直す時間が、変換レートの上限になる

ここが「大きければよいわけではない」の核心です。共有で Cextから出ていった(あるいは入ってきた)わずかな電荷は、次のサンプルまでに信号源抵抗 R を通じて元の電圧まで戻しておく必要があります。この再充電の時定数は τ = R・Cext で、しかも今度は Cext自体が主役なので、Cshのときよりずっと大きくなります。

さきほどの例(R = 50kΩ、Cext = 100nF)で node 計算すると τ = 5ms。12bitで9τまで待つなら45ms必要です。つまりこの回路が保証できるサンプリングレートは、たったの約22SPSまで落ちます。

一方、外付けCなしで正しくサンプル時間を9τ(2.25µs)に設定するだけなら、理屈のうえでは最大444kSPSまで出せる計算です(実際にはMCU側の制約が先に効きますが、桁は大きく違います)。「なんとなく安心な大きめのC」を追加すると、外部信号源抵抗が高いケースではむしろ変換レートを2〜3桁落とす結果になり得ます。Cextを選ぶときは、単発の電荷共有誤差(前節)とこの再充電時間の両方を、想定する信号源抵抗とサンプリング周期に対して確認してください。

平均電流という見方:C_sh・V・fs は等価的な入力抵抗に見える

データシートによっては、瞬間的な整定時間ではなく平均的に見た入力インピーダンスで信号源の条件を示していることがあります。サンプルのたびに Cshが V まで充電され、それが fs 回/秒くり返されると考えると、信号源から見た平均電流は Csh·V·fs。これは、信号源から見て等価的な入力抵抗 Req = 1 / (Csh·fs)を接続しているのと同じに見えます。

node で Csh = 5pF、fs = 1MSPS を入れると Req = 200kΩ。この考え方は電源の設計(信号源側がどれだけの電流を供給し続けられるか)を見るときには便利ですが、1回のサンプルが期間内に整定するかどうかという前節までの話とは別物です。高分解能・高インピーダンス源では、たいてい整定時間(9τ)の条件のほうが厳しくなります。

オペアンプでバッファする:出力に直接大きな C を付けると発振しやすい

オペアンプでボルテージフォロワを組んで信号源とADCのあいだに入れると、閉ループの出力インピーダンスはループ利得の分だけ下がるので、ADCから見た「実効的な信号源抵抗」は小さくなります。ここまでは素直に効きます。問題は、その出力に外付けCを直接ぶら下げるときです。

オペアンプの開ループ出力抵抗を Ro、負荷容量を Cloadとすると、この2つで新しい極ができます。Ro = 50Ω、Cload = 0.1µFという、ありそうな値で node 計算すると極の周波数は 1/(2π·50Ω·0.1µF) ≈ 31.8kHz。この極が帰還ループの中(ユニティゲイン帯域に近いところ)にできると、位相余裕を大きく削り、リンギングや発振の原因になります。オペアンプ回路の誤差の記事で扱ったループ利得の話と根は同じです。

定番の対策は、オペアンプの出力とコンデンサ(=ADCピン)のあいだに数十Ω程度のアイソレーション抵抗(例として20〜100Ω)を1本入れることです。帰還をこの抵抗の手前(オペアンプの出力そのもの)から取れば、大きな負荷Cはフィードバックループの外側に置かれることになり、ループの安定性は影響を受けません。オペアンプの基本回路や帰還の取り方は反転・非反転・VCVSの記事も参照してください。

オペアンプ出力への容量負荷とアイソレーション抵抗オペアンプの出力に大きなコンデンサを直接つなぐ場合とアイソレーション抵抗を挟む場合の比較。 ① アイソレーション抵抗なし ② アイソレーション抵抗あり Vin − + C 0.1µF ADCピンへ 帰還(Cも内側) 出力にリンギング 極 ≈ 31.8kHz(Ro=50Ω, C=0.1µF) 位相余裕を失い発振の恐れ Vin − + R_iso 100Ω C 1nF ADCピンへ 帰還はR_isoの手前(オペアンプ出力)から取る Cがループの外側 ループの位相余裕は保たれる
図4:オペアンプ出力に大きなCを直付けすると開ループ出力抵抗との間に低い周波数の極ができるが、アイソレーション抵抗を挟んで帰還をその手前から取れば、Cはループの外側に置かれる。

アンチエイリアスの RC と両立させる

アイソレーション抵抗とADCピン直近の小さなCは、そのまま簡単な1次のアンチエイリアシングフィルタとしても働きます。狙いどおりに使うには、そのRCのカットオフを、サンプリング周波数の1/2よりも十分低く、かつ気にしているノイズ帯域では十分な減衰量が出るところに置く必要があります。実際の減衰カーブと「何dB落とせば十分か」の考え方はRCフィルタの実効的な減衰の記事にまとめています。

ここまでの話とつながるのは、この段のCとCext(電荷リザーバ用の大きなC)を混同しないことです。アイソレーション抵抗(数十Ω)と組み合わせるCは、低インピーダンスなオペアンプ出力を駆動源にしているので、時定数が小さく高いfsでも問題になりません。逆に、信号源そのもの(高インピーダンス)に大きなCext を直付けする話は、前述のとおり再充電時間でfsに強い上限がつきます。同じ「RとC」でも、Rが信号源側にあるか、バッファの後ろにあるかで意味がまったく変わります。

用途別の R・C の目安(SAR ADC 入力)
用途直列RADC直近のC備考
高インピーダンス源を直結数百Ω〜数kΩ(センサ自身)なし(内蔵Cshのみ)サンプル時間を9τ以上に取れる場合だけ
分圧・パッシブセンサ+電荷リザーバC源抵抗のまま(数十kΩ級もあり得る)1000pF〜0.1µFfsは源抵抗×Cの再充電時間で頭打ちになる
オペアンプでバッファ20〜100Ω(アイソレーション)100pF〜1nF発振防止。fsはMSPS級も狙える
アンチエイリアスと兼用100Ω〜数kΩ(バッファ後)fcがfs/2より十分低くなるよう選ぶrc-filter-real-attenuationのロールオフを参照

実機で引っかかるところ

読み値が一定方向にずれる。整定不足の誤差は乱数ではないので、平均化やオーバーサンプリングでは消えません。電圧が本来より低く(あるいは前回値寄りに)出続けるなら、まずサンプル時間と信号源抵抗の組み合わせを疑ってください。

ボリュームやポテンショメータの位置でノイズやオフセットが変わる。分圧点のインピーダンスがワイパー位置で変わるため、同じ回路でも整定条件が位置によって変わります。

マルチプレクサでチャネルを切り替えた直後の1点目だけおかしい。Cshに前チャネルの電圧が残っているため、切り替え直後は「差」が大きく、通常のサンプル時間では整定しきれないことがあります。同じチャネルを2回連続でサンプルし、2回目だけ使うという回避策がよく使われます。

外付けCを足したらかえって遅い・古い値を引きずる。これはまさに本記事の主題です。Cextの再充電時間(R・Cextの9τ)が、想定しているサンプリング周期より長くなっていないか確認してください。

よくある質問

サンプル時間を目一杯長く設定すれば、外付けCなしの直結でも大丈夫ですか。
MCUが許すサンプル時間の上限が、必要な9τ(今回の例なら2.25µs)を超えていれば、直結のままでも1/2LSB以内に整定できます。ただし多チャンネルを順に読む用途ではスループットが落ちますし、サンプル時間が長いほどリーク電流や入力バイアス電流による誤差の影響も受けやすくなるので、そのトレードオフごと確認してください。
C_sh の値はデータシートのどこに書いてありますか。
ADCの電気的特性表で「サンプリング容量」「入力容量 C_ADC」のような名前で載っていることが多く、多くはサンプルスイッチの抵抗(R_ADC やオン抵抗)とセットで示されます。この記事のC_sh=5pFという値は、その桁数(数pF程度)に合わせた例であり、特定の製品の値ではありません。実際の設計では必ずご自身が使うMCUのデータシートの値を使ってください。
外付けCを大きくしすぎると、具体的にどんな症状になりますか。
狙った変換レートに対して再充電が間に合わなくなり、ADCの読み値が数サンプル前の値を引きずったような、なめらかすぎる/遅れた波形になります。マルチプレクサで複数チャンネルを切り替える構成では、チャンネルを切り替えた直後の値に前チャンネルの電圧が混ざって残る「クロストーク」的な症状としても現れます。
オペアンプのアイソレーション抵抗はいくつにすればよいですか。
使うオペアンプの開ループ出力抵抗や、データシートに「容量性負荷駆動能力」として載っている許容Cload対安定性の目安に依存するため一概には言えませんが、数十Ω〜100Ω程度から始めて、実機でステップ応答のリンギングを見ながら追い込むのが実務的です。値を大きくしすぎると、今度はこの抵抗とADC直近のCがつくる極でアンチエイリアスの効きが早く始まってしまうので、両方を見ながら決めます。
マルチプレクサでチャンネルを切り替えるときも、同じ式(9τ)で計算してよいですか。
式自体(e^−t/τ ≤ 1/2^(N+1))は同じですが、当てはめるべき「動く電圧の幅」が違います。定常状態のわずかなドリフトを整定させるのではなく、前チャンネルの電圧から今回のチャンネルの電圧までのフルスケールに近い変化を、1回のサンプル時間内に整定させる必要があるかもしれません。厳しい場合は、同じチャンネルを連続で2回サンプルして2回目だけ使う、チャンネル切り替え後にダミーサイクルを入れる、といった対策が定番です。

参考にした規格・資料

  • Horowitz & Hill, The Art of Electronics — RC回路の時定数と整定時間、サンプル/ホールド回路の基礎
  • Analog Devices, Op Amp Applications Handbook — 容量性負荷を駆動するオペアンプの安定性、アイソレーション抵抗の考え方
  • 各マイコンメーカのADCデータシート/リファレンスマニュアル — サンプリング容量C_ADC、サンプルスイッチの抵抗、許容信号源抵抗R_AIN(MAX)とサンプル時間の関係

← コラム一覧へ