あなたは%country%にお住まいのようですが、言語設定を%language%に切り替えますか?
Switch to English site
Skip to main content

正しいA/Dコンバータの選択

インターネットの中にはADC(Analog to Digital Converter、A/Dコンバータ)選択に関する記事が多数あります。その多くはADCタイプの様々なアーキテクチャを元に説明、ADC選択のための秘訣を解説しています(例:A/Dコンバータの種類 - 究極のガイドADCに関するイントロダクション)。
今回は別のアプローチでADCの選択について解説していきます。私がデジアナ混在回路の設計を始めた頃、精度の高いアナログ部品は法外に高価でした。その当時、サンプリングレート(サンプルレート)250kHzの12Bit ADCはマッチ箱のように巨大で、さらに数百ドルという値段でした。ですから、要件定義を大げさに設定することができませんでした。しかし現在ではADCの高速化、低価格化、小型化、高分解能化が進んでいるためその要件定義にある程度自由を持たせることができてきました。そこで、この記事ではADCを選択する前に要件の妥当な限界を示し、そこからADCの選択するアプローチをとっています。

ἀνά λογος

ギリシャ語の“ana-logos(アナ-ロゴス)”は「同等」、「類似」を意味します。つまり本来の意味での「アナログ値」は、実世界の測定値に「一致」または「非常に近いもの」を表現しているのです。人間の数える能力が乏しく、10本の指でしか数えられないとしたらこれは納得できます。これは例えば、電源の出力電圧を0から100%までを10%ずつ(計10段階)で表すと、実際の測定値と比べ大きく”差”が出てしまうという事です。またこの例より、アナログ測定には精度に限界があることがよくわかります(例:メーターの目盛りの刻みには物理的に限りがある)。
これらの観点より、今日ではデジタル値の方がアナログよりもはるかに正確であることが多いといえます。

Voltmeter

ADCのお買い求めや品揃えについてはRSサイトをご確認ください。

という事でアナログからデジタル変換に関する1つ目の”センターポイント”を見ていましょう!最初はデジタル分解能についてです。

デジタル分解能(ビット数で表した総カウント数)は、アナログの精度を超える必要はない!

例えば、あなたが温度を正確に測定するタスクを与えられたとします(この時±0.05℃までの公差)。また、あなたは動作温度範囲も考慮する必要があり、今回の場合は-50℃から350℃までとします。一見すると、これは高精度な測定が必要になると考えられます。ですから、16ビットADCのようなものを使いがちです。ですがちょっと待ってください!求められる純粋値は400℃の範囲を0.1℃の精度であることで、これは4000または12ビット(4096カウント)の分解能です。

この例では精度に見合うセンサーと「アナログフロントエンド」(AFE)が必要であるという、真の課題が示されています。少なくとも12 x 6 = 72dB(SNR、直線性、オフセット、熱ドリフトの要素を含めて)の精度が必要です。オフセットや直線性のような一定の誤差についてはデジタルで補正することが可能です。「平均化法」を使えば、ランダムなノイズに対してSNRを向上させることができます(*注入信号のような周期的なノイズには対応できません)。熱ドリフトはAFEの実温度を用いてデジタル補正が可能です。しかし、それはすべてセンサーからの情報に依存します。一般的にはPt100センサーのようなRTD(測温抵抗体)がタスクに使用されます。ですが、RTDの精度クラスは満足できないものがほとんどです。最高クラス(AA)は0℃付近で0.1℃の精度を得ることができますが、350℃では0.7℃の精度しか得られません。仮にPt100センサーを校正して希望する精度に合わせることができたとしてもAFEは困難です。RTDは4線式テクノロジーを採用しており2線が励磁電流、残り2線がRTDでの電圧降下を測定するために使用されます。RTDはいくつか特性を持っています、その一つとして電圧入力回路はRTDの4000倍の入力抵抗が必要です。この特性は問題ありません。一方で励磁電流は高精度の電流源から供給される必要があり、1mA以下であるようにします。その為、その精度は0.25nAより良いものでなければなりません。このようなとても高い精度値は常に温度補償を必要とします(例:抵抗を定義している1%電流は50ppm/℃のドリフトをもたらします)。

Digital processing sensors

論点がお分かりになりましたでしょうか?精度は一般的にADCの分解能ではなく、センサー、AFE及びデジタル後処理の精度の組み合わせによって定義されるのです。そして私たちは最適なADCを選択する前に、常に設計目標を問う必要があるのです。今回の例では「何の温度を測定するのか?」を正確に捉える必要があります。加えて、0.1℃の均質な温度を持つ一般的な媒体は存在しません。仮にそのような媒体で測定しても、「センサー自体が温度を0.1℃以上を変化させないか?」を考えなければなりません。例えばRTDは常にR*I²(1mAで~0.1W)の熱放射を持ち、媒体の温度を局所的に0.1℃以上上昇させてしまいます。水の有効熱容量が1℃あたり4 J/Kgを例にとってみます。100mWの熱源が1x1x1cmの立方体の水(1g、追加の熱伝導や熱放射がないと仮定)の温度を上げるにはわずか4秒です。

ここで、まだ範囲の設計目標するため分解能の向上にこだわるとします。先ほど示した12ビットADCの分解能は大丈夫でしょうか?前述したようにセンサーはRTDですから、温度依存する抵抗器の電圧降下がADC入力になります。なので1mAの定励磁電流とPt100センサーの場合、次のような電圧が得られます。
80.3mA で-50℃、229.7mA で350℃

もし、AFEがオフセット電圧を一切差し引かないのであればADCの範囲は0~230mVの電圧レンジをカバーすることになります。0.1℃の変化に対する電圧変化はわずか約35μVです。仮にAFEがPGA(プログラマブルゲインアンプ)を搭載して230mVの範囲を5V(今回の場合21.74倍)のような一般的なADCの範囲まで引き上げるには、最小でも0.76mVの分解能になってしまいます。この分解能は~6579の希望の合計カウントを達成するために13ビットを必要としてしまいます。

ですのでADCの分解能を計算する際は、常にオフセットに注意してください。

ADCが持つべき妥当な分解能が分かったら、次にデータシートで仕様を理解する必要があります。もしオフセット、直線性または動的分解能が ½ LSB (最下位ビット)より小さい場合はビット単位の分解能は偽の値になります。これはNビットの実際の分解能を持つためには、全体的なADC精度が2^Nの正しい値を提供しなければならないからです。これらの値のどれかが欠けている、入力値と相関してないなどがある場合はNビット分解能は全く信用ならないものになります。これは多くのマイクロコントローラに内蔵されたADCの主な問題点です。マイコン本体は12ビットの分解能を持っているかもしれませんが、その精度は2 LSB未満であることがよくあります。したがって、10ビットの正確な値しか得られないのです。こちらのESPに関する記事では、ESP32で12ビットADCを調査した現実的な結果が紹介されています。電圧入力範囲の2/3のみを使用することで、8ビット分解能を得ることはギリギリできますがそれ以上は無理です。

差動入力で低ノイズ、低ドリフト、低オフセットのAFEを設計するという難題の他にも動的な値、つまり動的な精度について考える必要があります。動的な信号はすべて、離散的なデジタル値のストリームを得るためにサンプリングする必要があります。そしてこれがアナログからデジタルへの変換の2つ目の”センターポイント”に繋がります。

Analogue vs Digital signals

動的分解能(つまり変換率)は、アナログ帯域幅を”実質的”に2倍以上上回る必要はありません!

これを説明するために当たって、分解能とサンプリングレートの間には理論的な”接合”があるという事を抑えてください。例えば信号が100Hzまでの周波数を含んでいるとします。この場合、デジタル化処理では”エイリアシング(繰り返し雑音)”を避けるために少なくともその周波数の2倍(200Hz)でサンプルをとる必要があります(*ナイキストのサンプリング定理、こちらで解説)。しかし、400Hzのサンプリングレートを使用して取得する2つの値ごとに平均値を計算する場合は、200Hzのサンプリングレートを取得します。一方で2つの値の平均を計算することで分解能を2倍にできます。これが、「オーバーサンプリング」をすることで分解能を上げられる原理です。そして、いわゆる「デルタシグマアーキテクチャ」を採用したADCの主要な概念です。

では動的分解能に話を戻します。RTDの例では動的な変化が限られていることがよくわかります。Pt100では1℃/秒以上の温度変化を正確に追従できないため、10Hzよりも早い温度信号のサンプリングには適用できません。もし、より良い温度の動的分解能が必要な場合はセンサーを換える必要があります(例:光学式温度センサーなど)。つまるところ、高速なAFEとADCを使うだけでは全く役に立たないという事です。

加えて、AFEアーキテクチャの内部にはスルーレートと帯域幅が制限されたPGAが存在する可能性が高いです。センサーと同様にサンプリングレートを上げても、制限されているAFEの帯域幅を越えて補正することはできません。

という事で結論としてはADCのサンプリングレートや帯域幅を選択する前に元の測定対象物、センサー、AFE、それらの制限値(帯域幅など)を知る必要があるのです。

ADCに必要な分解能と帯域幅の範囲が決まったら、アナログからデジタルへの変換の最後の”センターポイント”に注目していきます。

ADCのコストはBOMや開発予算を考慮して選定しよう!

回路設計者としてBOM(Bill Of Material)に気を配る必要があります。どんなに洗練された信頼性の高い設計でも、そのプロジェクトのBOMコストの上限を越えてしまっては何の意味もありません。アナログ部品はコストの中でかなりの範囲を占めてしまいます。

Time is money

「時は金なり」ですから、ADCと使用するコントローラを接続するために短時間で容易に接続できるインターフェースもしっかりと選択しましょう。また、ユーザーガイドにも目を通しておきましょう。統合設計を加速するような例やアプリケーションノートはありませんか?内部アーキテクチャとレジスタを理解できていますか?調査してみましょう!

アプリケーションノートを探索する方法として、ADCの選択ツールを備えた素晴らしいベンダーのウェブページ(例:900以上のADCを扱うTIサイト)を参照してみてください。

DesignSparkでは皆さんと一緒に知識や疑問を常に共有しています。
疑問に思ったことはどうぞお気軽にコメントし、疑問を一緒に解決して行きましょう!

Volker de Haas started electronics and computing with a KIM1 and machine language in the 70s. Then FORTRAN, PASCAL, BASIC, C, MUMPS. Developed complex digital circuits and analogue electronics for neuroscience labs (and his MD grade). Later: database engineering, C++, C#, industrial hard- and software developer (transport, automotive, automation). Designed and constructed the open-source PLC / IPC "Revolution Pi". Now offering advanced development and exceptional exhibits.
DesignSpark Electrical Logolinkedin