Chapter 17
ADC の方式と内部回路
この章がなぜ必要なのか——ADC は「読めば値が出る」部品ではないから.
- 「12 bit の ADC なのに、下位 3 bit がいつも暴れている」
- 「センサを繋いだら値が半分になった」
- 「サンプリングを速くしたら値がおかしくなった」
- 「マルチプレクサでチャンネルを切り替えると前のチャンネルの値が混ざる」
- 「ΔΣ と SAR、どっちを選べばいいのか分からない」
これらは全部、ADC の内部回路——特に「入力で何が起きているか」—— を知れば説明がつく。
この章で使う既出の用語(定義は各リンク先). コンデンサ(02 章 7 節)、ノイズ除去(03 章 6 節)、急峻(03 章 4 節)、逆方向(04 章 1 節)、オペアンプ(05 章)、スイッチ(05 章 2 節)、制御(06 章 6 節)、ダイナミックレンジ(08 章 6 節)、コンパレータ(09 章)、ジッタ(09 章 3 節)、熱電対(10 章 5 節)、温度(11 章 3 節)、直列(11 章 2 節)、最高(13 章 1 節)
1. 基本の枠組み
ADC は 2 つの操作をする。
| 操作 | 内容 |
|---|---|
| 標本化(サンプリング) | 連続時間 → 離散時間。時間を刻む |
| 量子化 | 連続値 → 離散値。振幅を刻む |
1 LSB = 1 コードあたりの電圧:
| 分解能 | \(V_{REF}=3.3\) V での 1 LSB |
|---|---|
| 8 bit | 12.9 mV |
| 10 bit | 3.22 mV |
| 12 bit | 806 µV |
| 16 bit | 50.3 µV |
| 24 bit | 197 nV |
24 bit の 197 nV は何を意味するか.
03 章の熱雑音を思い出す。10 kΩ の抵抗が 1 kHz 帯域で出す雑音は 約 400 nV。1 LSB より大きい。
24 bit ADC の下位ビットは、原理的に雑音で埋まっている。 データシートも「24 bit、有効 19.5 bit」のように書いてある。
分解能(bit 数)と有効分解能(ENOB)は別物である。
量子化雑音
丸め誤差は \(\pm\frac{1}{2}\) LSB の範囲に一様分布する。その実効値は:
フルスケール正弦波(実効値 \(\frac{2^N q}{2\sqrt2}\))との比を取ると:
| bit | 理論 SNR |
|---|---|
| 8 | 50 dB |
| 12 | 74 dB |
| 16 | 98 dB |
| 24 | 146 dB(実際には到達不能) |
逆に、測定した SNR から実効ビット数が出る:
データシートで見るべきは分解能ではなく ENOB である。
誤差の種類
| 誤差 | 内容 | 補正できるか |
|---|---|---|
| オフセット誤差 | 全体が上下にずれる | できる(ゼロ点校正) |
| ゲイン誤差 | 傾きがずれる | できる(2 点校正) |
| DNL(微分非直線性) | 隣接コード間隔のばらつき | 難しい |
| INL(積分非直線性) | 理想直線からのずれ | ルックアップテーブルで可 |
| ミッシングコード | 出現しないコードがある | できない(DNL < −1 LSB) |
| 雑音 | ランダム | 平均化で減る(\(\sqrt{N}\) 則) |
オフセットとゲインは校正できる。だから重要なのは DNL/INL/雑音である。
「精度が足りない」と言うとき、それがオフセットなら ソフトで直せる。DNL なら直せない。 どの誤差なのかを分けて考えること。
2. SAR ADC——組み込みで最も使う方式
MCU 内蔵 ADC のほとんどが SAR(逐次比較)である。
動作原理
天秤で重さを測るのと同じ。分銅を重い順に載せて、 超えたら降ろす、超えなければ残す。
- \(V_{REF}/2\) と比べる → 上か下かで MSB が確定する
- \(V_{REF}/4\) を足す(または引く) → 次のビットが確定する
- これを分解能のビット数だけ繰り返す(12 bit なら 12 回)
内部回路——電荷再分配型
現代の SAR ADC は、容量 DAC(CDAC) で作られている。
この構造から、SAR ADC の性質がほぼ全部出る。
| 性質 | 理由 |
|---|---|
| 低消費電力 | 変換中はスイッチとコンパレータだけ。DC 電流が要らない |
| レイテンシがない | 1 回の変換で 1 個の結果。すぐ使える |
| 精度は容量比で決まる | IC 内の容量比は非常に正確に作れる(10 章と同じ話) |
| 入力が容量性 | サンプル時に電荷を吸い込む(後述) |
| 分解能の上限 | 容量マッチングの限界で 16〜18 bit 程度 |
| 速度 | 数百 kSPS〜数 MSPS |
サンプリング入力——最頻出のトラブル
SAR ADC の入力は、抵抗ではなくコンデンサである。
サンプルスイッチが閉じた瞬間、\(C_{sample}\)(数 pF〜数十 pF)を 信号源の電圧まで充電しなければならない。
充電の時定数:
\(N\) bit の精度で整定するには(03 章):
12 bit なら \(\ln(2^{13}) = 9.0\)、つまり \(9\tau\) 必要。
具体例: \(C_{sample} = 8\) pF、\(R_{sw} = 1\) kΩ、\(R_{source} = 100\) kΩ
「センサを繋いだら値が半分になった」の正体.
高インピーダンスのセンサ(分圧抵抗、サーミスタ、pH 電極など)を ADC に直結すると、サンプリング時間内に充電が終わらない。
結果、前回のサンプル値に引っ張られた中間の値が読める。 チャンネルを切り替えると、前のチャンネルの電圧が混ざる (チャージインジェクション、クロストーク)。
対策の優先順:
対策 効果 オペアンプでバッファする(ボルテージフォロワ) ◎ 根本解決。\(R_{source}\) が数 Ω になる ADC 入力に 1〜10 nF を付ける ○ 電荷を供給する。ただし直列抵抗と組んで帯域が落ちる サンプリング時間を延ばす ○ 設定で可能。変換レートは落ちる 分圧抵抗を小さくする △ 消費電流が増える データシートには必ず「推奨入力インピーダンス」が書いてある。 「\(R_{source} < 10\) kΩ」のような値。これを守ること。
バッファ + コンデンサの組合せに注意.
ADC の直前に置く RC(アンチエイリアス兼チャージリザーバ)は、 オペアンプの容量負荷になる(08 章)。
定石: オペアンプ → 直列抵抗 10〜100 Ω → コンデンサ 1〜10 nF → ADC 直列抵抗が絶縁抵抗として働き、オペアンプの発振を防ぐ。
SAR ADC の変換過程を見る
逐次比較の各ステップで、内部 DAC の電圧がどう近づいていくかを見る。 入力インピーダンスとサンプリング時間を変えて、 整定不足による誤差も確認する。
3. ΔΣ(デルタシグマ)ADC——高分解能の主流
計量器、温度測定、オーディオなど 高分解能・低速 の用途で使う。
考え方——分解能を時間で買う
1 bit の粗い量子化器を、極めて高い周波数で動かして、 その平均を取る。
「1 bit しかないのに 24 bit が出る」のは、次の 2 つの仕掛けによる。
(1) オーバーサンプリング
量子化雑音の総量(電力)は変わらないが、 サンプリング周波数を上げるとより広い帯域に薄く広がる。
信号帯域 \(f_B\) だけをディジタルフィルタで取り出せば、 帯域外の雑音は捨てられる。
OSR を 4 倍にすると 6 dB(= 1 bit)改善。 効率が悪い。
(2) ノイズシェーピング——これが本質
積分器を入れた帰還ループで、量子化雑音を高周波側に追いやる。
- 信号はそのまま通る
- 量子化雑音は、ループの中で \((1 - z^{-1})\) が掛かる = 高周波で持ち上がり、低周波で押し下げられる
1 次のノイズシェーピングでは:
OSR 2 倍で 9 dB(1.5 bit)改善。
\(L\) 次のシェーピングなら:
OSR 2 倍で \((6L+3)\) dB。 3 次なら 21 dB(3.5 bit)。
ここが理解の山場なので、言い換える.
量子化雑音は「なくせない」。しかし どこの周波数に置くかは選べる。
ΔΣ は、雑音を信号のない高周波に押しやって、 そこをディジタルフィルタで切り捨てる。
「1 bit しかないのに高分解能」というのは、 振幅の分解能を、時間の分解能と交換しているということである。
ディジタルフィルタとデシメーション
ビットストリーム(例: 6.4 MHz の 1 bit 列)を、 ディジタルフィルタで平均して、低レートの高分解能データにする。
| フィルタ | 特徴 |
|---|---|
| sinc³(CIC) | 実装が簡単。ノッチが特徴的。ステップ応答が遅い |
| FIR | 特性が自由。遅延が大きい |
| sinc + FIR の 2 段 | 一般的な構成 |
50/60 Hz を消す技.
sinc フィルタは 出力レートの整数倍にノッチ(ゼロ点)を持つ。
出力レートを 10 SPS にすると、10 Hz の倍数—— つまり 50 Hz と 60 Hz の両方にノッチが立つ。
電源ハムが原理的に消える。 計量器や温度計の ADC が「10 SPS」「16.7 SPS」といった 中途半端なレートを持つのはこのためである。
出力レート 消える周波数 50 SPS 50 Hz とその倍数 60 SPS 60 Hz とその倍数 10 SPS 50 Hz と 60 Hz の両方 16.7 SPS 50 Hz(3 倍)と 60 Hz に近い
ΔΣ の性質
| 性質 | 内容 |
|---|---|
| 高分解能 | 16〜32 bit |
| 入力が連続的にサンプルされる | アンチエイリアスフィルタが簡単(OSR が高いため) |
| レイテンシがある | フィルタの群遅延。マルチプレクスに向かない |
| 速度が遅い | 数 SPS〜数百 kSPS |
| 入力は容量性(スイッチトキャパシタ型の場合) | SAR と同じ注意が要る |
| 連続時間型もある | 入力が抵抗性。バッファ不要な品種も |
ΔΣ で最も多い失敗: マルチプレクサとの併用.
ΔΣ はディジタルフィルタに履歴を持っている。 チャンネルを切り替えた直後の数サンプルは、前のチャンネルの残りである。
正しくは「切り替え → フィルタが完全に整定するまで捨てる → 有効な値を読む」。sinc³ なら 3 変換周期が目安。
多チャンネルを高速に切り替えるなら SAR を選ぶべきである。
4. その他の方式
パイプライン ADC
複数のステージで、少しずつビットを確定して次に渡す。
| 特徴 | 内容 |
|---|---|
| 速度 | 10 M〜1 GSPS |
| 分解能 | 10〜16 bit |
| レイテンシ | ステージ数分(数〜十数クロック)あるが、スループットは 1 クロック/サンプル |
| 消費電力 | 大きい(各ステージにオペアンプ) |
| 用途 | 通信、映像、計測器 |
フラッシュ ADC
\(2^N - 1\) 個のコンパレータを並べて、一発で判定する。
| 特徴 | 内容 |
|---|---|
| 速度 | 最速(GSPS 級、1 クロックで完結) |
| 分解能 | 6〜8 bit が限界(コンパレータが \(2^N\) で増える) |
| 消費電力 | 極大 |
| 用途 | オシロスコープ、高速通信のフロントエンド |
8 bit で 255 個のコンパレータ。10 bit なら 1023 個。現実的でない。
積分型(デュアルスロープ)
入力を一定時間積分してから、基準で放電する時間を測る。
| 特徴 | 内容 |
|---|---|
| 速度 | 極めて遅い(数 SPS) |
| 精度 | 高い。部品値のばらつきがキャンセルされる |
| ノイズ除去 | 積分時間を電源周期の整数倍にするとハムが消える |
| 用途 | デジタルマルチメータ、旧来の計測器 |
方式の選び方
| 用途 | 方式 | 理由 |
|---|---|---|
| 汎用センサ、多チャンネル | SAR | レイテンシなし、切り替えが速い |
| 温度・重量・ひずみゲージ | ΔΣ | 高分解能、低速でよい |
| オーディオ | ΔΣ | 高分解能、帯域が狭い |
| モータ制御の電流検出 | SAR | 高速、レイテンシなし(PWM と同期) |
| 通信・映像 | パイプライン | 高速・中分解能 |
| 計測器のフロントエンド | フラッシュ / パイプライン | 最高速 |
ADC 方式を比べる
SAR / ΔΣ / パイプライン / フラッシュ の速度・分解能・レイテンシ・ 消費電力を対数軸で並べて、用途との対応を見る。
5. 前段の設計——ADC は単体では使えない
アンチエイリアスフィルタ
サンプリング周波数 \(f_s\) の 半分(ナイキスト周波数)を超える成分は、 折り返して信号帯域に化ける。
一度折り返したら、ディジタル処理では絶対に分離できない。 だから ADC の前にアナログフィルタが必要である。
| ADC | 必要な阻止量 | フィルタ次数の目安 |
|---|---|---|
| 12 bit | 74 dB | 2〜4 次(OSR による) |
| 16 bit | 98 dB | 4〜6 次 |
| ΔΣ(OSR 高い) | 1 次 RC で足りることが多い | OSR が高いと折り返し周波数が遠い |
ΔΣ でアンチエイリアスが楽な理由.
ΔΣ の内部サンプリングは 6.4 MHz でも、出力は 10 SPS。 折り返しが問題になるのは 6.4 MHz 付近である。
そこを落とすだけなら RC 1 段(\(f_c\) = 数 kHz)で十分。 SAR で 10 SPS を実現しようとすると、5 Hz でスパッと切る 急峻なフィルタが要る。
これが「高分解能・低速なら ΔΣ」の実務的な理由の一つ。
リファレンス
10 章で扱ったとおり。要点だけ再掲する。
| 項目 | 要点 |
|---|---|
| 精度が直接効く | \(V_{REF}\) が 1 % ずれれば、読み値も 1 % ずれる |
| 温度ドリフト | 12 bit で全温度範囲を保つには 10 ppm/℃ 級が要る |
| ノイズ | リファレンスのノイズは出力にそのまま乗る |
| REF ピンのコンデンサ | 必須。SAR が変換のたびに電荷を引く |
| ratiometric(比率測定) | センサとADCに同じ電源を使えば、精度が相殺される(最も安上がりで有効) |
ratiometric の威力.
分圧抵抗でセンサを読む場合:
\[ \text{コード} = \frac{V_{sensor}}{V_{REF}}2^N = \frac{V_{DD}\cdot k}{V_{DD}}2^N = k\cdot 2^N \]\(V_{DD}\) が消える。 電源が変動しても読み値が変わらない。
適用できる例: 抵抗分圧、ポテンショメータ、ブリッジ回路、 比率出力型の圧力センサ。
適用できない例: 絶対電圧を出すセンサ(熱電対、電流シャント)。
平均化——最も安く効く手段
ランダムノイズは \(\sqrt{N}\) で減る。
| 平均回数 | ENOB の増加 |
|---|---|
| 4 | +1 bit |
| 16 | +2 bit |
| 64 | +3 bit |
| 256 | +4 bit |
平均化が効かない場合がある.
平均化で減るのはランダムノイズだけである。
ノイズの種類 平均化で減るか 熱雑音・ADC の量子化雑音 減る 電源ハム(50/60 Hz) 減らない(周期的) DC-DC のスイッチングリプル 減らない オフセット・ゲイン誤差 減らない 周期的なノイズには、周期の整数倍で平均する(同期平均)か、 ノッチフィルタを使う。
また、ノイズが 1 LSB より小さいと平均化は効かない (常に同じコードが出るため)。逆説的だが、 わずかなノイズ(ディザ)があるほうが平均化で分解能が上がる。
6. 実務——MCU 内蔵 ADC を使いこなす
| 設定項目 | 見るべき点 |
|---|---|
| サンプリング時間 | ソース抵抗に応じて設定。デフォルトは短いことが多い |
| クロック周波数 | ADC クロックには上限がある。速すぎると精度が落ちる |
| 分解能設定 | 12 bit を 10 bit に落とすと高速化できる |
| リファレンス源 | 内部か外部か。VDD をリファレンスにすると電源変動が乗る |
| 校正 | 多くの MCU に 自己校正コマンドがある。起動時に必ず実行 |
| DMA | CPU 介入なしで連続変換。ジッタが減る |
| トリガ | タイマ同期。PWM と同期させてノイズを避ける |
| 温度センサ・VREFINT | 工場校正値が Flash に入っている。読み方を確認 |
よくある失敗
| 失敗 | 原因 |
|---|---|
| 下位ビットが暴れる | 高インピーダンス入力、ノイズ、リファレンスのコンデンサなし |
| 値が半分/前チャンネルが混ざる | サンプリング時間不足 |
| 周期的に値が揺れる | DC-DC のリプル、PWM との干渉 |
| 温度で値がずれる | リファレンスの温度ドリフト |
| アナログ入力に電源電圧以上をかけて壊した | ESD ダイオードが導通。直列抵抗とクランプを入れる |
| モータを回すと値が飛ぶ | グラウンドの共通インピーダンス、放射ノイズ |
| 平均化しても改善しない | 周期性ノイズ。ランダムノイズではない |
| VDD をリファレンスにして精度が出ない | VDD は ±5 % 動く。ratiometric にできないなら外部リファレンス |
ADC 入力の保護.
ADC 入力の最小限の保護。ただし RC が帯域を決めるので、信号帯域と両立させること
- 直列抵抗が ESD ダイオードに流れる電流を制限する(通常 数 mA まで)
- コンデンサがサンプリング時の電荷を供給する
- ただし \(RC\) が帯域を決めるので、信号帯域と両立させる
- より確実にはショットキーでクランプする
まとめ
| ポイント | 内容 |
|---|---|
| 1 LSB | \(V_{REF}/2^N\)。12 bit・3.3 V で 806 µV |
| SNR | \(6.02N + 1.76\) dB。実際は ENOB で見る |
| 誤差 | オフセット・ゲインは校正できる。DNL/INL/雑音は難しい |
| SAR | 容量 DAC で逐次比較。低消費・レイテンシなし・多チャンネル向き |
| SAR の入力 | 容量性。\(t_{sample} > \tau\ln(2^{N+1})\)、12 bit で \(9\tau\) |
| 高インピーダンス | オペアンプでバッファするのが根本解決 |
| ΔΣ | オーバーサンプリング + ノイズシェーピング。振幅分解能を時間と交換 |
| ノイズシェーピング | 雑音を高周波に追いやってディジタルで捨てる。OSR 2 倍で \((6L+3)\) dB |
| sinc ノッチ | 出力 10 SPS で 50/60 Hz が同時に消える |
| ΔΣ の弱点 | レイテンシ。マルチプレクスには不向き |
| パイプライン | 高速・中分解能。レイテンシあり/スループット 1 クロック |
| フラッシュ | 最速だが 6〜8 bit が限界(コンパレータが \(2^N\)) |
| アンチエイリアス | 折り返したら二度と分離できない。ΔΣ は OSR が高いので楽 |
| リファレンス | 精度が直接効く。REF ピンのコンデンサは必須 |
| ratiometric | \(V_{REF}\) の誤差が消える。使えるなら最優先 |
| 平均化 | \(\frac{1}{2}\log_2 N\) bit 増。周期ノイズには効かない |
| 入力保護 | 直列抵抗 + コンデンサ。ESD ダイオードの電流を制限 |
次章では逆方向——ディジタルからアナログへの変換を扱う。