組み込み回路 17 · ADC の方式と内部回路

Chapter 17

ADC の方式と内部回路

この章がなぜ必要なのか——ADC は「読めば値が出る」部品ではないから.

これらは全部、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 つの操作をする。

操作内容
標本化(サンプリング)連続時間 → 離散時間。時間を刻む
量子化連続値 → 離散値。振幅を刻む
\[ \text{出力コード} = \text{round}\left(\frac{V_{IN}}{V_{REF}} \times 2^N\right) \]

1 LSB = 1 コードあたりの電圧:

\[ 1\ \text{LSB} = \frac{V_{REF}}{2^N} \]
分解能\(V_{REF}=3.3\) V での 1 LSB
8 bit12.9 mV
10 bit3.22 mV
12 bit806 µV
16 bit50.3 µV
24 bit197 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 の範囲に一様分布する。その実効値は:

\[ e_{rms} = \frac{q}{\sqrt{12}} \quad (q = 1\ \text{LSB}) \]

フルスケール正弦波(実効値 \(\frac{2^N q}{2\sqrt2}\))との比を取ると:

\[ \text{SNR} = 20\log_{10}\frac{2^N q/(2\sqrt2)}{q/\sqrt{12}} = 20\log_{10}\left(2^N\sqrt{\frac{3}{2}}\right) \]
\[ \boxed{\ \text{SNR} = 6.02N + 1.76\ \ [\text{dB}]\ } \]
bit理論 SNR
850 dB
1274 dB
1698 dB
24146 dB(実際には到達不能)

逆に、測定した SNR から実効ビット数が出る:

\[ \text{ENOB} = \frac{\text{SINAD} - 1.76}{6.02} \]

データシートで見るべきは分解能ではなく ENOB である。

誤差の種類

誤差内容補正できるか
オフセット誤差全体が上下にずれるできる(ゼロ点校正)
ゲイン誤差傾きがずれるできる(2 点校正)
DNL(微分非直線性)隣接コード間隔のばらつき難しい
INL(積分非直線性)理想直線からのずれルックアップテーブルで可
ミッシングコード出現しないコードがあるできない(DNL < −1 LSB)
雑音ランダム平均化で減る(\(\sqrt{N}\) 則)

オフセットとゲインは校正できる。だから重要なのは DNL/INL/雑音である。

「精度が足りない」と言うとき、それがオフセットなら ソフトで直せる。DNL なら直せない。 どの誤差なのかを分けて考えること。

2. SAR ADC——組み込みで最も使う方式

MCU 内蔵 ADC のほとんどが SAR(逐次比較)である。

動作原理

天秤で重さを測るのと同じ。分銅を重い順に載せて、 超えたら降ろす、超えなければ残す。

  1. \(V_{REF}/2\) と比べる → 上か下かで MSB が確定する
  2. \(V_{REF}/4\) を足す(または引く) → 次のビットが確定する
  3. これを分解能のビット数だけ繰り返す(12 bit なら 12 回)

内部回路——電荷再分配型

現代の SAR ADC は、容量 DAC(CDAC) で作られている。

電荷再分配型 SAR の内部(容量 DAC)−+コンパレータCC/2C/4C/8…VREF / GND各容量の下端を VREF か GND に切り替えて、コンパレータ入力がゼロになる組合せを探す= 天秤に分銅を重い順に載せていくのと同じ
IC 内の容量比は極めて正確に作れる。だから SAR の精度は容量マッチングの限界(16〜18 bit)で決まる

この構造から、SAR ADC の性質がほぼ全部出る。

性質理由
低消費電力変換中はスイッチとコンパレータだけ。DC 電流が要らない
レイテンシがない1 回の変換で 1 個の結果。すぐ使える
精度は容量比で決まるIC 内の容量比は非常に正確に作れる(10 章と同じ話)
入力が容量性サンプル時に電荷を吸い込む(後述)
分解能の上限容量マッチングの限界で 16〜18 bit 程度
速度数百 kSPS〜数 MSPS

サンプリング入力——最頻出のトラブル

SAR ADC の入力は、抵抗ではなくコンデンサである。

信号源R_sourceR_swサンプルスイッチ変換部へC_sampleτ = (R_source + R_sw) · C_sample、N bit には t > τ·ln(2^(N+1)) が要る12 bit なら約 9τ
ADC の入力は抵抗ではなくコンデンサ。サンプル時に電荷を吸い込むので、信号源が強くないと間に合わない

サンプルスイッチが閉じた瞬間、\(C_{sample}\)(数 pF〜数十 pF)を 信号源の電圧まで充電しなければならない。

充電の時定数:

\[ \tau = (R_{source} + R_{sw}) \times C_{sample} \]

\(N\) bit の精度で整定するには(03 章):

\[ t_{sample} > \tau \ln(2^{N+1}) \]

12 bit なら \(\ln(2^{13}) = 9.0\)、つまり \(9\tau\) 必要。

具体例: \(C_{sample} = 8\) pF、\(R_{sw} = 1\) kΩ、\(R_{source} = 100\) kΩ

\[ \tau = 101\times10^3 \times 8\times10^{-12} = 808\ \text{ns} \]
\[ t_{sample} > 9 \times 808\ \text{ns} = 7.3\ \mu\text{s} \]

「センサを繋いだら値が半分になった」の正体.

高インピーダンスのセンサ(分圧抵抗、サーミスタ、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\) だけをディジタルフィルタで取り出せば、 帯域外の雑音は捨てられる。

\[ \text{SNR 改善} = 10\log_{10}(\text{OSR}),\quad \text{OSR} = \frac{f_s}{2f_B} \]

OSR を 4 倍にすると 6 dB(= 1 bit)改善。 効率が悪い。

(2) ノイズシェーピング——これが本質

積分器を入れた帰還ループで、量子化雑音を高周波側に追いやる。

V_IN++−積分器 ∫1 bit 量子化器ビットストリーム1 bit DAC信号はそのまま通り、量子化雑音だけが高周波に追いやられる
ノイズシェーピング。振幅の分解能を時間の分解能と交換している。あとは高周波をディジタルで捨てるだけ

1 次のノイズシェーピングでは:

\[ \text{SNR 改善} = 30\log_{10}(\text{OSR}) - 5.17\ \text{dB} \]

OSR 2 倍で 9 dB(1.5 bit)改善。

\(L\) 次のシェーピングなら:

\[ \text{SNR 改善} = (20L+10)\log_{10}(\text{OSR}) + \text{const} \]

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 SPS50 Hz とその倍数
60 SPS60 Hz とその倍数
10 SPS50 Hz と 60 Hz の両方
16.7 SPS50 Hz(3 倍)と 60 Hz に近い

ΔΣ の性質

性質内容
高分解能16〜32 bit
入力が連続的にサンプルされるアンチエイリアスフィルタが簡単(OSR が高いため)
レイテンシがあるフィルタの群遅延。マルチプレクスに向かない
速度が遅い数 SPS〜数百 kSPS
入力は容量性(スイッチトキャパシタ型の場合)SAR と同じ注意が要る
連続時間型もある入力が抵抗性。バッファ不要な品種も

ΔΣ で最も多い失敗: マルチプレクサとの併用.

ΔΣ はディジタルフィルタに履歴を持っている。 チャンネルを切り替えた直後の数サンプルは、前のチャンネルの残りである。

正しくは「切り替え → フィルタが完全に整定するまで捨てる → 有効な値を読む」。sinc³ なら 3 変換周期が目安。

多チャンネルを高速に切り替えるなら SAR を選ぶべきである。

4. その他の方式

パイプライン ADC

複数のステージで、少しずつビットを確定して次に渡す。

V_IN3 bit 変換×4上位ビット3 bit 変換×4次のビット3 bit 変換×4次のビット…各段で少しずつ確定し、残差を増幅して次段へ渡す
パイプライン ADC。レイテンシは段数ぶんあるが、スループットは 1 クロックに 1 サンプル出る
特徴内容
速度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 は単体では使えない

センサ増幅アンチエイリアスバッファADCリファレンス折り返したらディジタル処理では二度と分離できない。だからアナログで落とす
ADC は単体では使えない。前段の 4 つと基準電圧まで含めて初めて「測定系」になる

アンチエイリアスフィルタ

サンプリング周波数 \(f_s\) の 半分(ナイキスト周波数)を超える成分は、 折り返して信号帯域に化ける。

一度折り返したら、ディジタル処理では絶対に分離できない。 だから ADC の前にアナログフィルタが必要である。

\[ f_c \approx \frac{f_B}{2}\ \text{から}\ f_B\ \text{付近},\quad \text{減衰量} \geq \text{ADC のダイナミックレンジ} \]
ADC必要な阻止量フィルタ次数の目安
12 bit74 dB2〜4 次(OSR による)
16 bit98 dB4〜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}\) で減る。

\[ \text{ENOB 増加} = \frac{\log_2 N}{2} = \frac{1}{2}\log_2 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 に 自己校正コマンドがある。起動時に必ず実行
DMACPU 介入なしで連続変換。ジッタが減る
トリガタイマ同期。PWM と同期させてノイズを避ける
温度センサ・VREFINT工場校正値が Flash に入っている。読み方を確認

よくある失敗

失敗原因
下位ビットが暴れる高インピーダンス入力、ノイズ、リファレンスのコンデンサなし
値が半分/前チャンネルが混ざるサンプリング時間不足
周期的に値が揺れるDC-DC のリプル、PWM との干渉
温度で値がずれるリファレンスの温度ドリフト
アナログ入力に電源電圧以上をかけて壊したESD ダイオードが導通。直列抵抗とクランプを入れる
モータを回すと値が飛ぶグラウンドの共通インピーダンス、放射ノイズ
平均化しても改善しない周期性ノイズ。ランダムノイズではない
VDD をリファレンスにして精度が出ないVDD は ±5 % 動く。ratiometric にできないなら外部リファレンス

ADC 入力の保護.

入力R = 1kADC ピン1 nFR が ESD ダイオードの電流を制限し、C がサンプル時の電荷を供給する
ADC 入力の最小限の保護。ただし 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 ダイオードの電流を制限

次章では逆方向——ディジタルからアナログへの変換を扱う。