PR

ADCの分解能はなぜ10・12・14・16bitの「2bit刻み」なのか?12Vや24Vで測れば精度は上がる?

ソフトウェア

マイコンやADC(A/Dコンバータ)を選んでいると、ふと気になることがあります。

  • 分解能は10・12・14・16bitと2bit刻みの製品ばかり。1bit増えるだけで分解能は2倍になるのに、なぜ11bitや13bitは少ないのか?
  • 3.3Vや5Vで測ると、分解能が高くてもノイズに埋もれやすい。12Vや24Vで16bit変換すれば精度が上がりそうなのに、なぜ電子機器は3.3Vや5Vばかりなのか?

調べてみると、よく見かける説明の中には、そのまま信じると危ないものも混ざっていました。この記事では、疑問をひとつずつQ&A形式で整理します。

先に結論

  • 2bit刻みに物理的な必然性はありません。11bitや13bitのADCも実在します。偶数bitが主流なのは、1bitの差が実力差として見えにくいこと、1bit増やすコストが大きいこと、そして製品ファミリの慣習によるものです。
  • 信号そのものが大きければ、ノイズには強くなります。ただしそれは「精度」とは別の話で、ADC自体を高電圧で動かす必要もありません。高い電圧の信号は、縮小してから低電圧のADCで変換するのが定石です。

Q1. ADCの分解能は、なぜ10・12・14・16bitの2bit刻みが多いのか?

A. 「2bit刻みでなければ作れない」わけではありません。1bit刻みで製品を並べても、実力の差がはっきりしないので、意味のある段差として2bit刻みが定着した、というのが実態に近い答えです。

11bitや13bitのADCは実在する

まず前提として、奇数bitのADCは普通に存在します。

  • Microchip MCP3301:13bitの差動入力SAR型ADC
  • ESP32:内蔵ADCの分解能を9・10・11・12bitから設定で選べる
  • ESP32-S2:内蔵ADCが13bit

つまり「作れない」のではなく「主流ではない」だけです。では、なぜ主流にならないのでしょうか。

理由1:表記のbit数と実力(ENOB)には、もともと1〜2bitの差がある

理想的なNbitのADCのSN比は、次の式で表されます。

SN比 ≒ 6.02 × N + 1.76 [dB]

1bit増えるごとに約6dB、2bitで約12dB良くなる計算です。

ところが実際のADCには自分自身のノイズや歪みがあり、本当に使える分解能(ENOB:有効ビット数)は表記のbit数より低くなります。マイコン内蔵の12bit ADCで、ENOBが10〜11bit台というのは珍しくありません。

表記と実力がすでに1〜2bitずれている世界で、11bit・12bit・13bitと細かく製品を並べても、実力差ははっきりしません。選ぶ側も困ります。2bit(分解能4倍、約12dB)の差があれば、別グレードとして意味のある違いになります。

理由2:1bit増やすコストは「2倍」では済まない

分解能が2倍になるなら、コストも2倍くらいで済みそうに思えますが、実際はもっと重くなります。

  • 素子の数と精度:SAR型ADCの基本構成では、内部の容量DACの素子数が1bitごとに倍になります。しかも素子同士の合わせ込み精度も倍の厳しさが必要です。
  • 熱雑音の壁:ADCが入力電圧をコンデンサに取り込むとき、kT/Cノイズと呼ばれる熱雑音が必ず乗ります。これを半分(1bit分)に下げるには、コンデンサの容量を4倍にしなければなりません。たとえば1pFで取り込むと熱雑音は約64µVrmsで、これは3.3V・16bitの1LSB(約50µV)より大きい値です。

容量を増やせばチップ面積も消費電力も増え、前段の回路がADCを駆動するのも難しくなります。1bit上げるための開発コストが大きいので、メーカーは細かく刻まず、差がはっきり出る段差だけを製品化するわけです。

理由3:製品ファミリと慣習

デジタル側では8bit(1バイト)と16bit(2バイト)が区切りとして好まれ、その間を埋める10・12・14bitが定着しました。メーカーは同じピン配置で分解能だけ違う製品をファミリとして揃えることが多く、たとえばAnalog DevicesのAD7606ファミリには14bit・16bit・18bit版があります。

一度こうした並びが定着すると、使う側も「12bitの次は14bit」と探すようになり、慣習がさらに強まります。

よく見かける説明は本当か

2bit刻みの理由としてよく挙げられる説明を、ひとつずつ確認してみます。

よくある説明判定コメント
マイコンのバイト境界(8bit単位)に合わせている △ 9〜16bitはどれも2バイトに収まるので、8・16・24bitが好まれる理由にはなります。しかし10・12・14bitの説明にはなりません。同じ理屈なら、すべて16bitにすればよいことになってしまいます。
パイプライン型は1段1.5bitなので、自然と2bit刻みになる × 1.5bit段が実質的に確定するのは1bitです。残りの0.5bitは誤り訂正のための冗長分です。1段足せば1bit増えるので、2bit刻みにはなりません。2bit刻みになるのは1段2.5bitの構成に限った話です。
16bit用のチップを選別し、下位bitを捨てて14bit品・12bit品として売っている 確認不能 ピン互換のファミリは多く、同じチップを使い回しているという話はよく語られます。ただしメーカーは通常それを公表していません。「よくある」と言い切れる根拠は見つかりませんでした。
2bit(4倍・約12dB)は、意味のある性能差になる ○ 計算として正しく、理由1で述べたとおり実務の感覚にも合います。

Q2. 12Vや24Vで受けて16bitで変換すれば、精度は上がるのか?

A. 「ノイズに対する余裕」は条件付きで増えます。しかし「精度」が上がるとは限りません。

まず、16bit(65,536分割)で変換したときの1LSBの大きさを並べてみます。

フルスケール電圧1LSB(16bit)
3.3V約50.4µV
5V約76.3µV
10V約152.6µV
12V約183.1µV
24V約366.2µV

たしかに電圧が高いほど1LSBは大きくなります。ただ、大事なのはLSBの大きさそのものではなく、信号とノイズの比です。

効くのは「信号そのものが大きい」ときだけ

場合分けして考えると分かりやすくなります。

  1. 信号源が最初から大きな振幅で出力する場合
    配線の途中で乗るノイズの大きさが同じなら、信号が大きいほど有利です。24Vと3.3Vでは約7.3倍(約17dB)の差があります。これは実際に効きます。
  2. 小さな信号をアンプで増幅して大きくする場合
    信号源にもともと含まれるノイズも一緒に増幅されます。効果があるのは、アンプより後ろで乗るノイズに対してだけです。
  3. 信号は小さいまま、ADCのレンジだけを広げる場合
    逆効果です。0〜3Vの信号を12VレンジのADCで受けると、使えるコードは全体の4分の1だけになり、2bit分を捨てることになります。

ケース1の考え方は実際の設計でも使われています。高分解能ADCのデータシートを見ると、基準電圧を5Vと高めに取ったほうが分解能の面で有利になると書かれているものがあります。「振幅を大きく取ればノイズに強い」という直感そのものは間違っていません。

分解能と精度は別物

もうひとつ注意したいのが言葉の違いです。

  • 分解能:どれだけ細かく刻めるか
  • 精度:測った値が本当の値にどれだけ近いか

精度を決めるのは、基準電圧(Vref)の正確さと温度による変化、ADCの直線性(INL)、ゲイン誤差やオフセット誤差、そして分圧抵抗の誤差です。扱う電圧を上げても、これらは良くなりません。高い電圧を扱うために分圧抵抗が必要になる分、誤差の要因はむしろ増えます。

Q3. それなら、なぜ電子機器は3.3Vや5Vばかりなのか?

A. 半導体の耐圧、消費電力、そしてデジタル回路と同じチップに載せる都合からです。

微細なトランジスタは高い電圧に耐えられない

現在のマイコンやADCは、微細なプロセスで作られています。トランジスタの絶縁膜が非常に薄いため、高い電圧をかけると壊れます。入力ピンの絶対最大定格は、多くの場合「電源電圧+0.3V」程度です。3.3V系のピンに12Vを直接入れると、内部の保護ダイオードに過大な電流が流れて破壊に至ります。

高耐圧の素子は大きく、遅い

高い電圧に耐えるトランジスタは、絶縁膜を厚くし、素子自体も大きくする必要があります。チップ面積が増えて価格が上がり、動作速度も落ちます。±10V級の信号を直接受けられるように高耐圧プロセスで作られたアナログICもありますが、用途は限られます。

消費電力は電圧の2乗で増える

回路がスイッチングするときの消費電力は、おおよそ「容量 × 電圧2 × 周波数」に比例します。同じ回路を3.3Vではなく12Vで動かせば約13倍、24Vなら約53倍です。電池で動く機器では致命的な差になります。

デジタル回路と同じチップに載っている

マイコン内蔵のADCは、CPUやメモリと同じプロセス、同じ電源で動きます。5VはTTLロジックの時代からの標準電圧で、3.3Vはプロセスの微細化に合わせて下げられた電圧です。ADCだけ別の高い電圧にするのは割に合いません。

センサ側も低電圧になっている

加速度センサや温度センサなど、信号を出す側も3.3Vや1.8Vで動くものが主流です。出力が0〜3V程度なら、ADCも同じレンジで受けるのが素直です。

「発熱で熱雑音が増えるから本末転倒」は言い過ぎ

高電圧にすると発熱が増え、熱雑音が増えて意味がなくなる、という説明を見かけることがあります。しかし熱雑音の電圧は絶対温度の平方根に比例するので、チップの温度が27℃から57℃(300Kから330K)に上がっても、増加は約5%です。一方、24Vと3.3Vの振幅差は7倍以上あります。

発熱で本当に困るのは、オフセットや基準電圧の温度ドリフト、電池の持ち、部品の寿命のほうです。

Q4. 産業機器の0–10Vや4–20mAは、「高電圧だからノイズに強い」のか?

A. 0–10Vはその通りです。4–20mAは理由が違います。そしてどちらも、ADCに入る直前で低電圧に変換されています。

0–10V:大きな信号で配線を引き回す

工場のように配線が長くノイズの多い環境では、信号を大きくして送るのが有効です。Q2のケース1にあたります。

4–20mA:電圧ではなく電流で送るから強い

4–20mAがノイズに強い理由は、電圧の高さではありません。

  • 電流で伝えるので、配線の抵抗による電圧降下の影響を受けない
  • 受信側が250Ωなどの低い抵抗で受けるため、誘導ノイズが乗りにくい
  • ゼロを4mAにしているので、断線(0mA)をすぐに検出できる
  • 2本の線で信号と電源を兼ねられる

250Ωの抵抗で受けたときの電圧は1〜5Vです。つまりADCに入る電圧は、むしろ低いのです。よく一緒に出てくる24Vは、電流ループを駆動するための電源であって、信号のレベルではありません。

受け側は、縮小してから低電圧のADCで変換する

産業用のADCも、高い電圧のまま変換しているわけではありません。たとえばAnalog DevicesのAD7606は、±10Vの信号を直接入力できますが、電源は5Vの単一電源です。チップの内部で信号を縮小してから、低電圧のADCで変換しています。

信号を分圧すると、信号もそこに乗っていたノイズも同じ比率で小さくなるので、SN比は変わりません。「配線の上では大きな信号、変換するときは低電圧」という組み合わせが、高電圧の利点と低電圧ADCの利点を両立させる方法です。

Q5. 3.3Vや5Vのまま、高い分解能を活かすには?

A. 電圧を上げる代わりに、ノイズを減らす方向で対策します。

  • 差動入力にする:2本の信号線の差を測ることで、両方に同じように乗ったノイズを打ち消せます。
  • 基準電圧を専用ICで用意する:マイコンの電源をそのまま基準電圧にすると、電源のノイズや変動がそのまま測定値に出ます。低ノイズの基準電圧ICを使うと、分解能だけでなく精度も改善します。
  • ADC直前のフィルタとGNDの取り回し:入力にRCフィルタを入れ、アナログとデジタルのGND電流が混ざらないように配線します。
  • オーバーサンプリングと平均化:ノイズがランダムであれば、4倍の回数を測って平均すると約1bit、16倍で約2bit分、分解能を稼げます。
  • ΔΣ(デルタシグマ)型ADCを使う:オーバーサンプリングとノイズシェーピングを内部で行う方式で、速度は遅いものの高分解能が得意です。重量計や温度計測でよく使われます。

「24bit」「32bit」は出力データの幅であって、実力ではない

ΔΣ型ADCには24bitや32bitの製品がありますが、その桁数がすべて意味を持つわけではありません。5Vを32bitで割ると1LSBは約1.2nVです。一方、1kΩの抵抗1本が出す熱雑音は、帯域1Hzあたり約4nVあります。

たとえば32bit出力のTI ADS1262は、ノイズが7nVrms(毎秒2.5回の変換、ゲイン32のとき)とされています。ここから計算すると、実効的な分解能はおよそ25bitです。変換を速くすると、さらに下がります。データシートでは、bit数ではなくノイズの値や実効分解能の表を見るのが確実です。

まとめ

疑問答え
なぜ2bit刻みが多い? 必然ではなく、11bitや13bitも実在する。表記と実力がもともと1〜2bitずれるので1bit差は差別化にならず、1bit上げるコストも大きいため、2bit刻みが定着した。
12Vや24Vで測れば精度は上がる? 信号そのものが大きければノイズには強くなる。ただし精度は基準電圧や直線性で決まり、電圧を上げても良くならない。
なぜ3.3Vや5V? 微細プロセスの耐圧、電圧の2乗で増える消費電力、デジタル回路との同居、センサ側の低電圧化。
産業用の0–10Vや4–20mAは? 0–10Vは大きな信号で送る考え方。4–20mAは電流で送るから強い。どちらもADCの直前で低電圧に変換している。
低電圧のまま高分解能を活かすには? 差動入力、専用の基準電圧IC、フィルタとGND設計、オーバーサンプリング、ΔΣ型ADC。

参考資料

コメント

タイトルとURLをコピーしました