組込みのADC/DAC
アナログとデジタルの橋渡しを原理から掌握できる。SAR ADCの動作、分解能とサンプリングレート、基準電圧が精度を決める理由、そしてDACとPWMで擬似アナログを出す仕組みまで一本の筋で押さえられる。
- 1.SAR ADCは内蔵DACと比較器で基準電圧を二分探索し、Nビットの変換にNクロックを要する。分解能1LSB=Vref/2のNビットは振幅の刻み、サンプリング周波数は時間の刻みで、両者は独立した軸。
- 2.変換精度の天井は基準電圧が握る。Vrefが1%ずれれば全測定が1%ずれ、その雑音や温度ドリフトはそのまま誤差になる。マルチプレクサとサンプルホールドが「いつ・どのチャネルの一瞬」を確定させる。
- 3.DACはデジタル値を連続電圧へ戻す逆変換。安価な代替がPWMで、一定周波数のデューティ比をローパスフィルタで平均化して擬似アナログ電圧を作る。分解能と応答速度・リップルがトレードオフになる。
アナログの世界とデジタルの世界をつなぐ
マイコンが扱えるのは離散的な整数だけですが、現実の温度・電圧・音・光は連続量です。この断絶を埋める双方向の変換器が ADC(アナログ・デジタル変換器)と DAC(デジタル・アナログ変換器)です。ADC は連続電圧を整数コードへ「読み取り」、DAC は整数コードを連続電圧へ「書き戻し」ます。組込みではこの二つが、センサ入力から制御出力までの信号経路の両端を担います。
本稿は入力側の主役である逐次比較(SAR)ADC の内部動作を軸に、分解能とサンプリングレートの独立性、精度を支配する基準電圧、入力を切り替え固定するマルチプレクサとサンプルホールド、そして出力側の DAC と、その安価な代替である PWM 擬似アナログ出力までを原理から整理します。入力段の信号調整そのものは /embedded/sensor-interfacing/ が土台になります。
SAR ADC:二分探索で1ビットずつ確定する
組込みマイコンに最も広く内蔵されるのが逐次比較型(SAR: Successive Approximation Register)ADC です。中身は三つの部品でできています。内部 DAC、比較器(コンパレータ)、そして SAR ロジックです。動作は二分探索そのものです。
[SAR ADC の変換手順(Nビット)]
1. 入力電圧 Vin をサンプルホールドで捕捉し保持する
2. SAR は最上位ビット(MSB)を仮に 1 と置く
→ 内部DACが Vref/2 を出力
3. 比較器が Vin と DAC出力を比較
Vin が大きい → そのビットを 1 で確定
Vin が小さい → そのビットを 0 に戻す
4. 次の下位ビットへ移り、2〜3 を繰り返す
(毎回、探索範囲が半分に絞られる)
5. LSB まで N 回繰り返すと N ビットのコードが確定
ここで重要なのは、変換に必ず N クロック(+捕捉時間)かかる点です。12ビットなら12回の比較を要します。この「1ビットずつ絞る」性質が SAR ADC の速度と分解能の住み分けを決めます。全ビットを同時に判定するフラッシュ型は超高速な代わりに素子が指数的に増え、デルタシグマ型はオーバーサンプリングとノイズシェーピングで超高分解能を稼ぐ代わりに低速です。SAR はその中間で、中分解能(8〜16ビット)・中速(〜数 Msps)という組込みの主戦場にちょうど収まります。
SAR ADC は「ADC の中に DAC が入っている」構造です。各ステップで SAR が組み立てた仮のコードを内部 DAC がアナログ電圧に戻し、それを比較器が Vin と突き合わせます。つまり ADC の精度は、この内部 DAC の直線性と基準電圧の安定度に直接支配されます。ADC と DAC は別物ではなく、変換の物差しとして地続きだと捉えると内部動作が腑に落ちます。
分解能とサンプリングレート:混同しやすい二つの軸
ADC の性能は独立した二つの軸で語ります。**振幅方向の刻み(分解能)と時間方向の刻み(サンプリングレート)**です。この二つを混同すると仕様の読み違いが起こります。
分解能は N ビットで表し、フルスケールを2のN乗段に分割します。識別できる最小電圧差が1LSB です。
1LSB = Vref / 2^N
例) Vref = 3.3V, N = 12bit
1LSB = 3.3 / 4096 ≒ 0.806 mV
理想SNR(dB) ≒ 6.02 * N + 1.76
→ 12bit で約74dB, 16bit で約98dB が理論上限
ただしこのビット数は理想値です。基準電圧の雑音・非直線性(INL/DNL)・熱雑音が上乗せされ、実力は**有効ビット数(ENOB)**として別途規定されます。カタログの分解能ビット数より ENOB が小さいのが常で、精度を語るなら分解能ではなく ENOB を見ます。
一方サンプリングレート fs は、1秒あたり何回サンプルを取るかです。ここには標本化定理(ナイキスト)が絶対の制約として効きます。
信号の最高周波数を fmax とすると、サンプリング周波数 fs は 2·fmax を超えていなければ元の信号を復元できません。fs が不足すると帯域外の高周波が低周波として折り返すエイリアシングが起き、しかもデジタル化後には除去不能です。だから fs/2(ナイキスト周波数)より上の成分は、ADC の手前のアナログ・ローパスフィルタ(アンチエイリアスフィルタ)で必ず落としておく必要があります。分解能(振幅の細かさ)をどれだけ上げても、この時間軸の問題は一切解決しない——これが二つの軸が独立だという意味です。
基準電圧:精度の天井はここで決まる
SAR の変換式 1LSB = Vref/2^N が示すとおり、全コードの物理的な意味は基準電圧 Vref を尺度にしています。したがって Vref の誤差はそのまま全測定のゲイン誤差になります。Vref が1%高ければ、あらゆる読み値が1%低く出ます。分解能をいくら上げても、Vref がふらつけば下位ビットは意味を持ちません。
| Vref の問題 | 測定への影響 | 対策 |
|---|---|---|
| 絶対値の誤差 | 全体が一律にゲインずれ(傾きの誤差) | 高精度リファレンスIC、2点校正で補正 |
| 温度ドリフト | 温度変化で読み値がゆっくり変わる | 低ドリフト(ppm/℃)品、温度補償 |
| ノイズ・リップル | 下位ビットがばたつき ENOB 低下 | 専用レギュレータ、デカップリング、平均化 |
| 負荷変動 | 変換中に Vref が沈み非直線に | 低出力インピーダンス源、十分な容量 |
実装では Vref の供給元を選ぶことが精度設計の第一歩です。電源電圧をそのまま Vref に使う(レシオメトリック構成)と回路は簡素ですが、電源リップルがそのまま測定雑音になります。ただし例外があり、抵抗分圧型センサをその同じ電源で駆動する場合は、電源が揺れても分圧比が変わらないため、あえて Vref を電源と共通化するとリップルを原理的に打ち消せます。用途に応じて「独立した高精度リファレンス」か「レシオメトリック」かを選び分けるのが要点です。
Vref やアナログ経路に白色雑音が乗っているなら、それを逆手に取れます。同じ入力を高い fs で多数回サンプリングして平均すると、ランダム雑音は標本数の平方根に反比例して減ります。4倍のサンプルで雑音が半分、すなわち実効1ビット分の分解能向上です。一般に4の4乗=256倍のオーバーサンプリングで4ビット、というのが目安になります。デルタシグマ ADC はこの原理をノイズシェーピングと組み合わせ、ハードウェアで極限まで押し進めた方式です。
マルチプレクサとサンプルホールド:どのチャネルの、いつの一瞬か
マイコンの ADC は普通1個しかありませんが、入力ピンは複数あります。これを束ねるのがアナログマルチプレクサです。MUX が複数の入力ピンから1つを選んで ADC コアへ接続し、チャネルを順に切り替えて走査します。ここで注意すべきは、MUX は同時変換ではなく時分割だという点です。チャネル間には切り替えと再セトリングの時間差が生じるため、複数チャネルを厳密に同時刻で取りたい場合は、複数 ADC コアや同時サンプルホールド機構が要ります。
もう一つの要が**サンプルホールド(S/H)**回路です。SAR は変換に N クロックかかるため、その間に入力が動くと二分探索の物差しがぶれて正しいコードになりません。そこで変換開始の瞬間に入力電圧をコンデンサへ捕捉し、変換が終わるまで保持します。「いつの一瞬を測ったか」を確定させるのが S/H の役割です。
S/H のサンプリングコンデンサは、変換のたびに信号源から充電されます。信号源の出力インピーダンスが高いと、規定の捕捉(アクイジション)時間内に充電しきれず、変換値が本来より低く出ます。「配線は正しいのに値が低め」の典型原因がこれです。対策は、ADC 手前にボルテージフォロワ(低出力インピーダンスの緩衝段)を入れる、または捕捉時間レジスタを延ばすこと。高インピーダンス源ほど長い捕捉時間が必要になる、という関係を押さえておく必要があります。
高速な連続取り込みでは、変換のたびに CPU が値を読むと割り込み負荷で破綻します。ADC 完了をトリガに DMA で結果をメモリへ直接流し込む構成が定石で、この仕組みは /embedded/dma-transfers/ が詳しく、走査を駆動するタイマや変換完了割り込みの扱いは /embedded/microcontroller-architecture/ の割り込みコントローラの理解が前提になります。
DACとPWM:デジタルを連続量へ戻す二つの道
出力側は逆変換です。デジタル値を連続電圧に戻すには、真の DAC を使う道と、PWM で擬似的に作る道の二択があります。
真の DAC は、抵抗ラダー(R-2R 網など)でコードに比例した電圧を直接生成します。出力は連続的で応答も速く、オーディオ DAC や高速な波形出力に向きます。DAC の分解能・基準電圧・直線性の考え方は ADC と鏡像です。
安価な代替が PWM(パルス幅変調)+ローパスフィルタです。多くのマイコンは DAC を持たなくてもタイマ由来の PWM 出力を豊富に備えるため、追加部品ほぼゼロで擬似アナログを作れます。原理は「一定周波数の方形波のデューティ比を変え、その時間平均を取る」ことです。
[PWM 擬似アナログ出力]
固定周期 T の中で ON 時間 = デューティ比 D を可変
出力の時間平均電圧:
Vavg = D * Vdd (D は 0〜1)
例) Vdd = 3.3V, D = 0.25 → Vavg ≒ 0.825V
方形波そのままは高周波成分だらけなので
RC ローパスで平均化して初めて滑らかな電圧になる:
fc = 1 / (2 * π * R * C) ← PWM周波数より十分低く
PWM 擬似 DAC の分解能は、1周期を刻めるタイマの段数で決まります。タイマが Mビットなら D を2のM乗段に設定でき、これが実質の出力分解能です。ただし分解能を上げようとタイマ周期を長くする(PWM 周波数を下げる)と、ローパスで取り切れないリップル(脈動)が増えます。逆に PWM 周波数を上げるとリップルは減りますが、同じタイマクロックでは1周期の刻み数が減り分解能が落ちます。「PWM 周波数を上げてリップルを抑えつつ、十分なタイマ分解能を確保する」ためには高いタイマクロックが要る——ここが設計の勘所です。応答速度もフィルタの時定数で鈍るため、速い変化には向きません。
| 観点 | 真のDAC | PWM+LPF |
|---|---|---|
| 出力の質 | 連続・低リップル・高速応答 | リップルあり・応答はフィルタ時定数で鈍る |
| コスト | 専用回路が必要(内蔵か外付け) | タイマ流用でほぼ追加コストなし |
| 向く用途 | オーディオ、高速波形、精密基準 | モータ速度、LED調光、ゆっくりした制御電圧 |
PWM は擬似アナログ以外に、そのままモータや LED を駆動する電力制御にも直結します。この場合はローパスで平均化せず、負荷(コイルの慣性、目の残像)そのものが平均化装置として働く点も押さえておくと、両者が同じ原理の応用だと見通せます。省電力の観点では出力段を止める設計が絡み、/embedded/low-power-sleep-modes/ と併せて考えると全体像がつながります。
「SAR ADC の変換時間は」には『二分探索で1ビットずつ確定するため N ビットに N クロック(+捕捉時間)』。「分解能とサンプリングレートの違い」は『分解能は振幅の刻み=1LSB=Vref/2のNビット、サンプリングレートは時間の刻みで最高周波数の2倍超が必要(独立した軸)』。「ADC 精度を基準電圧が決める理由」は『全コードが Vref を尺度にするため、Vref のずれ・雑音・ドリフトがそのままゲイン誤差・ENOB低下になる』。「PWM で擬似アナログを作る仕組み」は『デューティ比 D で Vavg=D·Vdd を作り、ローパスで平均化する。分解能はタイマ段数、リップルは PWM 周波数とのトレードオフ』——この四点を役割ごとに切り分けて答えられるかが分かれ目です。
まとめ
組込みの ADC/DAC は、離散のデジタルと連続のアナログを行き来させる双方向の変換器です。入力側の SAR ADC は内部 DAC と比較器で基準電圧を二分探索し、N ビットに N クロックを費やします。その精度は分解能(振幅の刻み)とサンプリングレート(時間の刻み)という独立した二軸で決まり、天井は基準電圧の安定度が握ります。マルチプレクサが「どのチャネルか」を、サンプルホールドが「いつの一瞬か」を確定させ、高速連続取り込みは DMA と割り込みで支えます。出力側は真の DAC と PWM 擬似アナログの二択で、後者はデューティ比の平均化という一点さえ掴めば、分解能とリップルのトレードオフまで一気に見通せます。ADC と DAC を「別々の周辺機能」ではなく「同じ物差しを共有する表裏の変換」として捉えると、精度設計もデバッグも一本の筋で理解できます。
組込み・IoT Article
組込みのADC/DACを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
組込み
比較で見る軸
難易度: advanced / カテゴリ: 組込み・IoT / タグ数: 6
導入後に効く点
変換精度の天井は基準電圧が握る。Vrefが1%ずれれば全測定が1%ずれ、その雑音や温度ドリフトはそのまま誤差になる。マルチプレクサとサンプルホールドが「いつ・どのチャネルの一瞬」を確定させる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 組込み・IoT
- タグ数
- 6
判断チェックリスト
- 自社の用途が「組込み / ADC」に近いか確認する。
- 強みである「SAR ADCは内蔵DACと比較器で基準電圧を二分探索し、Nビットの変換にNクロックを要する。分解能1LSB=Vref/2のNビットは振幅の刻み、サンプリング周波数は時間の刻みで、両者は独立した軸。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。