概要
A/Dコンバータ(ADC)製品の中には、抵抗性の入力部を備えるものがあります。その入力部に、外付けの抵抗を付加した場合にはどのような影響が現れるのでしょうか。本稿では、8チャンネル(8ch)の同時サンプリングに対応するADCの製品ファミリを取り上げます。それらの製品は、入力部にプログラマブル・ゲイン・アンプ(PGA)を備えています。PGAの役割は、ADC本体(A/D変換部)を駆動すると共に、入力信号のスケーリングを行うことです。その入力部は抵抗性ではあるものの、入力インピーダンスは高く、外付けのセンサーと直接接続することができます。ただ、現実の設計では、PGAの入力部に外付け抵抗が付加されることが少なくありません。本稿では、まず、その外付け抵抗が原因で発生するゲイン誤差を、同抵抗の値の関数として表します。続いて、そのゲイン誤差を最小限に抑えるための様々な方法を紹介します。また、抵抗の許容誤差とADCの入力インピーダンスが様々なキャリブレーション手法に及ぼす影響についても検討します。それにあたっては、理論的な説明を行うだけでなく、いくつかのデバイスの実測値も示します。それにより、ADC製品ファミリが内蔵するゲイン誤差のキャリブレーション機能(オンチップ・キャリブレーション)によって達成される優れた精度を実証します。そのキャリブレーション機能は、補正用のルーチンを実行することなく、チャンネルごとに用意されたレジスタに値を書き込むだけで機能します。それにより、広範な値の外付け抵抗を対象として、システムのゲイン誤差を0.05%未満に抑えることができます。
はじめに
本稿で取り上げるADC製品ファミリは、8chの同時サンプリングに対応する逐次比較型のADC(SAR ADC)です(4ch/6chに対応するファミリ製品も提供しています)。それらの製品は、もともとは、エネルギー分野の保護リレー(保護継電器)の用途に向けて開発されたものです。送配電の分野では、保護リレーによってグリッドを監視し、可能な限り短い時間で障害(過電圧や過電流)に対応できるようにしています。それにより、重大な被害を回避するということです。
送電する電力を監視するためには、電圧と電流を同時に測定する必要があります。電流の測定には、その値をスケール・ダウンさせる電流トランスが使われます。それにより、絶縁を施すと共にバーデン抵抗を使って電圧への変換を行います。得られた電圧の値は、抵抗回路を利用して測定します。抵抗回路としては、電圧をkVのレベルからVのレベルにスケール・ダウンする分圧器を使用します。本稿で取り上げるADCは、電圧と電流の両方を監視可能な同時サンプリングに対応しています。それらを使用すれば、2台、4台、あるいは8台の機器における電力の計算を簡素化することが可能です。図1に示したのは、単相/多相の電気システムで電力を測定するために使用されるシグナル・チェーンの例です。このような構成により、多チャンネルに対応するデータ・アクイジション・システムを実現します。3つの相と中性線に対応するには、8個のチャンネルが必要です。
外付けの抵抗が必要になるケース
抵抗性の入力部を備えるADCは、大半のセンサーと直接接続できるように設計されています。但し、特定の条件下では、アナログ入力部の前段に外付けの抵抗を配置しなければならなくなります。例えば、アンチエイリアシング(折返し誤差防止)フィルタ(AAF)の機能や過電流に対する入力保護の機能を追加する必要があるといった場合です。
AAFが求められるケース
通常、抵抗性の入力部を備えるADCは、AAFを内蔵しています。ただ、多くのアプリケーションでは、内蔵AAFの設計で想定している値よりも低いサンプリング周波数が使用されます。そのため、より低いコーナー周波数に対応するAAFが必要になります。
送配電の分野では、一般的にはPLC(Power Line Cycle)の1周期ごとに256のサンプルを収集することが要件になります。つまり、50Hzの電力グリッドの場合、12.8kSPSのサンプリング・レートに対応するサンプリング周波数fSが使われることになります(以下参照)。
このような低いサンプリング周波数を使用する場合、ADCが備える抵抗性の入力部の前段に外付けのローパス・フィルタを配置し、ナイキスト周波数(fS/2)である約6.4kHz以上の周波数成分を減衰させなければなりません。これは、抵抗とコンデンサで構成される1次のローパス・フィルタを追加することで実現可能です。
入力部の保護
保護リレーなどのアプリケーションで障害が発生すると、ADCのアナログ入力ピンに過大な電流が流れ込む可能性があります。そうした場合、デバイスの損傷を防ぐために、入力電流を10mA未満に制限することが求められます。このような要件を満たすために、外付けの直列抵抗が使用されるケースがあります。それにより、過大な入力電流が発生する可能性を排除するということです。
例として、±16.5Vまでの電圧を許容できる保護回路がADCの入力部に設けられているとします。その範囲を超える過大な入力をクランプするということです。仮に、ADCに入力されるセンサーの出力が偶然±30Vまで増加したとします。すると、その保護回路がオンになり、デバイスを損傷させるおそれのある大きな電流をシンクします。例えば、ADCのアナログ入力部の前段に1.35kΩの抵抗RFILTERを配置しておけば、過負荷が生じた場合でも10mAを超える電流が流れ込むことはありません(以下参照)。但し、実際には10kΩといったより大きな抵抗を使用して保護を実現することが推奨されます。
ADCの入力部には、電流制限用の抵抗(またはAAF)を付加し、上式の条件を満たせるようにする必要があります。ただ、次のような条件が満たせれば、外付けの抵抗は不要です。その条件とは、外付けのAAFは不要で、障害が発生した場合でもアナログ入力信号の過負荷は±21V未満に抑えられる場合です。
外付け抵抗によって生じる誤差
上述したように、AAFの機能や過大な電流に対する保護機能を実現するために、ADCの入力部には外付けの抵抗が付加される可能性があります。そうすると、システムの精度に影響が及ぶという問題が生じます。本稿で取り上げるADCの製品ファミリは「AD7606」です。このファミリの製品は、全温度範囲と全電源電圧範囲にわたり、オフセット誤差とゲイン誤差がそれぞれ最大32LSBと6LSBという極めて小さな値になるよう出荷時に調整されます(1LSBは、±10Vのレンジでは305.175µV、±5Vのレンジでは152.58µVに相当します)1。しかし、外付けの受動部品を追加すると、システム(抵抗性入力を備えるADCとその前段に付加される抵抗の全体)としての精度は、上記の仕様を満たせなくなります。つまり、システムのゲイン誤差は、AD7606単体のゲイン誤差よりも大きくなるということです。このことは設計者にとっての懸念事項になります。なぜなら、最終的な製品の精度が業界の標準的な規格や顧客が提示する仕様を満たせなくなる可能性があるからです。言い換えれば、設計者の責任で、キャリブレーションを実行し、システムのゲインを補正するプロセスを盛り込まなければならなくなります。そうしたキャリブレーションは、以下に示すどちらかの方法で行うことになるでしょう。
- ADC を搭載する製品の製造時にゲインのキャリブレーションを実施する:製造されたすべての製品(システム)にキャリブレーション用のルーチンを適用し、キャリブレーション用の係数を保存/使用することでゲイン誤差を補正する方法です。IC(ADC)のレベルで行うキャリブレーションと似た処理をシステムのレベルで実施することになります。
- 値が固定の補正用係数を個々の ADC に適用する:システムのゲイン誤差については、後述する分析によって十分に理解されています。そのため、デジタル・ホスト・コントローラを使用することで、ADC の各サンプル(製造済みの個々の製品)にシステムのゲイン誤差を補正するための係数を適用することができます。後述するように、この手法はバックエンド・キャリブレーションと呼ばれます。
上記の1つ目の方法を採用すれば、最高の精度を達成できる可能性があります。しかし、ADCを搭載する製品の出荷テストに要する時間が長くなり、コストが大幅に増加します。2つ目の解決策であればコストを抑えられますが、精度は低くなります。なぜなら、この方法はADCの入力インピーダンスの標準値に依存するからです(本稿において、入力インピーダンスの標準値とは、データシートに記載されている代表値のことを指します)。加えて、場合によっては制約のあるコントローラのリソースを消費してしまうことも短所になります。このように、いずれの方法にも欠点があります。そのため、2つの方法の複雑な問題を回避すべく、顧客はより高い入力インピーダンスを求めるようになるかもしれません。その場合、外付けの抵抗の影響で生じる誤差は低減され、結果としてシステムの精度は向上します。ただ、この手法を採用しても、問題がシステムからICへと移行するだけなので、最善の策だとは言えないかもしれません。なぜなら、入力インピーダンスを高めるには、新たなソリューションを開発する必要があるからです。ADCが内蔵する抵抗の値を高めると、ノイズが増加するといった新たな問題が発生します。そうした問題を解決するには相応の時間がかかります。上記の問題を解決するために、「AD7606B」と「AD7606C」はゲインを補正するためのキャリブレーション機能を内蔵しています。この機能を使えば、外付けの抵抗によって生じるシステムのゲイン誤差を補正することができます。しかも、最終製品の製造時にキャリブレーションを実行することなく、最高の精度を達成することが可能です。更に、システムを構築するにあたって余計なコストがかかることもありません。
ゲイン誤差の理論計算
PGAのゲインは、アナログ入力範囲を設定するためのプログラマブルな帰還抵抗RFBと、値が固定(通常は1MΩ)の入力抵抗(入力インピーダンス)RINによって設定されます。これらの抵抗は、PGAのゲインを適切に設定するように調整されます。図3に示す例のように、±10V(あるいは±5V)のアナログ入力信号AIN+/-を±4.4VというADCの入力範囲にスケール・ダウンするといった具合です。AD7606の場合であれば、以下の式が成り立ちます。
ところが、PGAの入力部に直列に抵抗RFILTERを接続したとすると、ゲインは上記の理想的な値とは異なる値になります。RFILTERによって、式(3)の分母が変化するからです(以下参照)。
結果として、システムのゲインは調整時に目標とした値よりも小さくなります。例えば、図3の状態でAD7606に10Vの信号を入力すると、4.4Vに相当するコードが出力されます。しかし、30kΩの外付け抵抗RFILTERをAD7606の入力部に接続した場合、それとは異なるコードが出力されます。AD7606が内蔵するPGAの出力が4.4Vではなくなるからです。システムのゲインを表す理論上の伝達関数をプロットすることでもわかりますが、上記の条件においてPGAの出力は4.2718Vになります。つまり、約-3%のゲイン誤差が生じることになります(図5)。
このゲイン誤差は、次の式のようにRFILTERの関数として表すことができます。
上の式を使用すれば、RFILTERとシステムのゲイン誤差の関係を図6のようにプロットすることができます。ゲイン誤差の単位「% of FS」は、フルスケール(FS)に対するゲイン誤差の割合を百分率(%)で表すという意味です。
AD7606B/AD7606Cの特徴
AD7606B/AD7606Cには3つのオプションがあります。それぞれ、表1に示すような入力インピーダンスと分解能を備えています。
オプション | 入力インピーダンスの標準値 | 分解能 | ||||
AD7606B | 5MΩ | 16ビット | ||||
AD7606C-16 | 1.2MΩ | 16ビット | ||||
AD7606C-18 | 1.2MΩ | 18ビット | ||||
入力インピーダンスRINが5MΩであるか1.2MΩであるかに関わらず、直列抵抗RFILTERの値が大きいほどシステムのゲインは低下します。言い換えれば、ゲイン誤差が増加します。ただ、式(5)に示したように、RINが大きいほど、RFILTERの影響は少なくなります。RFILTERの値が50kΩ程度である場合、AD7606B/AD7606Cにおけるシステムのゲイン誤差は理論上は1%~5%程度になります。
入力インピーダンスが5MΩのAD7606Bと同1MΩのAD7606Cとでは、RFILTERがシステムのゲイン誤差に及ぼす影響に差が出ます(図8)。
アプリケーションによっては、このレベルのゲイン誤差であれば許容できることがあります。つまり、従来から行われてきたようなシステムのキャリブレーションは必要ないということです。これまでも、キャリブレーションを不要にすることを目標とし、より入力インピーダンスが高いPGAが設計されてきました。しかし、アプリケーションによっては、1%のゲイン誤差も許容できません。仮に各業界の標準規格や顧客によって指定された要件を満たせなければ、キャリブレーションを実施しなければならないということになります。
バックエンド・キャリブレーション vs. オンチップ・キャリブレーション
従来のキャリブレーションは、工場において製品の出荷テストを行う際に実施されていました。そのプロセスは以下のようなものになります。
- ゼロスケールの信号を入力し、オフセット誤差を測定します。
- オフセットを除去(補正)します。
- フルスケールの信号を入力し、ゲイン誤差を測定します。
- ゲイン誤差を除去(補正)します。
ただ、ここまでに説明したとおり、システムのゲイン誤差は式(5)のように求められることが明らかになっています。そのため、コントローラ側でデータを後処理することにより、ゲイン誤差を簡単に除去できます。つまり、式(4)のように生じるゲイン誤差を補正するために、キャリブレーション係数Kを適用するということです。このようなキャリブレーションを実施すれば、結果として得られるシステムのゲインは式(3)に示した理想的なゲインと同等になります(以下参照)。
この方法は、バックエンド・キャリブレーション(以下、BECAL)と呼ばれています。しかし、BE-CALには、以下に示す2つの大きな欠点があります。
- コントローラ側(マイクロコントローラや、DSP、FPGA)のリソースが消費されます(図 9)。
- RIN としては標準値を想定していますが、その許容誤差は 15%に達します。つまり、個々のサンプルによって値が異なります。
式(6)において、キャリブレーション係数Kを一定に保ったまま、RINの値を最小値から最大値まで変化させると、ユーザには想定が難しいADC内部の抵抗の許容誤差によって、キャリブレーションの精度がどのように変化するかがわかります。
図10は、AD7606の入力インピーダンスと、BE-CALを適用した際のゲイン誤差(理論値)の関係を示したものです。同ADCの許容誤差である15%の範囲で入力インピーダンスの値を変化させ、ゲイン誤差をRFILTERの関数として表しています。入力インピーダンスがデータシートに記載された標準値(AD7606C-16の場合、1.2MΩ)である場合(緑色の線)、BE-CALを実施することで、RFILTERによって生じるゲイン誤差が完全に除去されます。最も条件が厳しくなるのはRINが1.00MΩ(データシートに記載されている最小値)のケースです。コントローラはRINの値を1.2MΩと想定しているので、BE-CALによる精度は大きく低下します。RFILTERが30kΩ以上になると、ゲイン誤差が0.5%を超えてしまい、標準的な要件を満たせなくなります。
AD7606B/AD7606Cは、ゲイン誤差を補正するためのオンチップ・キャリブレーション(以下、OC-CAL)の機能を備えています1。これらの製品を採用すれば、より高度な機能を利用して高精度のデータ・アクイジション・システムを構築することができます。OC-CALの機能は非常に使いやすく、ホスト・コントローラのリソースを消費することはありません。また、工場で行う最終製品の出荷テストにおいてキャリブレーション向けの測定を実行する必要もありません。そうした欠点を克服しつつ、システムのゲイン誤差を最小限に抑えることができます。AD7606B/AD7606Cは、チャンネルごとに1つのレジスタ(8ビット)を備えています。そのレジスタにはRFILTERの値を書き込むことができます。そして、A/D変換部の後段に位置するデジタル部により、同抵抗が原因で付加される誤差をデジタル的に補正します。なお、このユーザ・プログラマブルなデジタル部は、ゲイン誤差、オフセット誤差、位相誤差の補正を担いますが、本稿ではゲイン誤差のみを対象として話を進めます。AD7606B/AD7606Cが備えるOC-CAL用の回路は、入力インピーダンスRINの値を正確に把握しています。つまり、ADCの内部でRINの実際の値を測定し、それを保持しているということです。そのため、RINやRFILTERの実際の値に依存することなく、BE-CALと比べて常に高い精度を得ることができます。
上述したレジスタは、RFILTERの値を整数型の変数として格納します。最大64kΩの抵抗に対応し、1024Ωの分解能で補正を行うことができます。このように分解能が離散的なので、RFILTERの値が1024の倍数ではない場合、丸め誤差が発生します。ここで図12をご覧ください。OC-CALの実施後のゲイン誤差は±0.05%未満にとどまっていることがわかります。キャリブレーション係数Kの算出にはRFILTERとRINを使用しますが、RINが標準値であると想定せず、ICの内部で測定した実際の値を使用すれば、このような精度が得られるということです。図12を図10と比較すると、RFILTERが30kΩの場合、誤差が1/10に低減されていることがわかります。ゲイン誤差はRFILTERの値に依存することなく一律になり、RINの値が大きいほど誤差の低減効果は大きくなります。
入力インピーダンスの許容誤差は、キャリブレーションの精度に影響を及ぼします。同様に、RFILTERの許容誤差もキャリブレーションの精度を左右します。これに関しては、以下の3点に留意してください。
- RFILTER の値は、RIN の値よりはるかに小さく設定します。また、ディスクリート抵抗の精度(許容誤差)は、通常は ADC 内部の 1MΩ の入力インピーダンスの精度よりも優れています。
- BE-CAL、OC-CAL のどちらを使用する場合にも、RFILTER の許容誤差が原因でゲイン誤差が発生します。
- RFILTER としては、許容誤差の小さいディスクリート抵抗を使用するべきです。それにより、RFILTER が原因で生じるゲイン誤差を最小限に抑えることができます。
図13に示したのは、RFILTERの許容誤差が最も厳しい条件を想定し、OC-CALの機能をイネーブルにした場合のゲイン誤差です。このようにすることで、様々な許容誤差(5%、1%、0.1%)の抵抗について検討することができます。
実測による検証
続いては、実測結果に基づいてOC-CALの効果を検証します。
入力インピーダンスの影響
図14、図15をご覧ください。それぞれ、RINが5MΩのAD7606BとRINが1.2MΩのAD7606C-16を評価した結果です。両者を比較すると、入力インピーダンスRINが約5倍になれば、RFILTERがシステムのゲイン誤差に及ぼす影響が約1/5に低減されることがわかります。これは、ここまでに示した理論上の解析から予想されるとおりです。例えば、AD7606(RINは1MΩ)の入力部に20kΩの抵抗を付加すると約1%の誤差が生じます。それに対し、AD7606B(RINは5MΩ)の入力部に20kΩの抵抗を付加した場合、誤差の大きさを約0.2%に抑えられます。図14、図15を見ると、OC-CAL機能をオンにするだけで、更に大きな改善が得られることがわかります。その場合、キャリブレーション向けに複雑な測定を行う必要はありません。ADCに、RFILTERの値(それに最も近い1024の倍数)を書き込むだけです。そうすることで、図14に示すように0.01%程度まで誤差を抑えることができます。なお、OC-CALを適用した場合のゲイン誤差は事実上の総合未調整誤差(TUE:Total Unadjusted Error)です。以下に示す理由により、すべての潜在的な誤差要因を包含していることになります。
- リファレンスとリファレンス・バッファは理想的なものだと仮定しています。つまり、2.5V のリファレンス電圧、リファレンス・バッファの 4.4V の出力に生じる偏差は補正されません。
- 許容誤差が 1% であったとしても、ADC に書き込まれる抵抗値は理想的なものだと仮定して処理が行われます。抵抗で生じると予想される偏差は補正されません。
- オフセット誤差は補正されません。AD7606x のオフセット誤差も、外付け抵抗の間のミスマッチも補正されません。
RFILTER | AD7606 | AD7606B (5MΩ) | AD7606C (1MΩ) | ||
キャリブレーションなし | OC-CALあり* | キャリブレーションなし | OC-CALあり* | ||
10kΩ | 0.5% | 0.1% | 0.01% | 0.45% | 0.03% |
20kΩ | 1.05% | 0.2% | 0.01% | 0.95% | 0.03% |
50kΩ | 2.5% | 0.5% | 0.01% | 2.5% | 0.03% |
*最も厳しい条件における誤差。RFILTER の値には非依存。 |
AD7606Bの入力インピーダンスは、標準値で5MΩです。それに対し、AD7606C-16/AD7606C-18の入力インピーダンスは標準値で1.2MΩです。つまり、AD7606C-16/AD7606C-18の入力インピーダンスはやや低いので、ノイズが減少してS/N比が向上します。ただ、アナログ入力部に外付け抵抗を付加するとシステムのゲイン誤差が発生します。その場合も、OC-CALをイネーブルにすることで誤差は大幅に低減され、0.03%未満に抑えられます。
まとめると、外付けの抵抗RFILTERによって生じるゲイン誤差とOC-CAL機能の精度は、いずれも各ADC自身が内部で把握している入力インピーダンスRINの値に依存します。AD7606B/AD7606C-16/AD7606C-18でも、OC-CALを実行しなければゲイン誤差はRFILTERの値に比例して変化します。しかし、表2に示したように、OC-CALを実行すれば、RFILTERの値に依存することなくゲイン誤差が一定の値に維持されます。
続いて、ここまでに示した理論値と実測値を比較してみましょう。図16に示したのは、OC-CALがイネーブルの状態で測定したAD7606C-16のトータルの誤差です。図13で示した最も厳しい条件における誤差を算出した値(理論値)も重ねて示しています。いずれも、RFILTERの関数として値をプロットしています。実測値については、オフセット誤差も直線性誤差も補正していないので、事実上のTUEだと考えることができます。それにも関わらず、理論値よりも低い値に抑えられています。つまり、デバイスのTUEの主要因はゲイン誤差であるということです。また、RFILTERの実際の値が1%の許容誤差内に十分に収まっているため、このような結果が得られています。
いずれにせよ、OC-CALをイネーブルにすれば、トータルのゲイン誤差は、多くのアプリケーションで目標とされる±0.1% of FS未満に抑えられていることが確認できます。RFILTERの値が65kΩ±1%未満であれば、ゲイン誤差がその値に依存することはありません。OC-CALを利用する場合、同抵抗の値をADCに書き込むだけでよく、それ以外のキャリブレーションの作業は不要になります。
OC-CALとBE-CALの実測値の比較
先述したように、BE-CALでは、キャリブレーション係数Kを保持したコントローラ側(マイクロコントローラ、DSP、FPGA)で処理を行います。しかし、この方法には2つの大きな欠点があります。コントローラのリソースを余分に消費してしまうことと、入力インピーダンスのばらつきによって誤差が生じてしまうことです。ここでは、BE-CALに対するOC-CALの優位性を確認してみます。図17に示すように、AD7606C-18のサンプルを4個用意し(UUT#1~UUT#4)、OC-CALとBE-CALを適用して誤差の測定を行いました。BE-CALを実行する際には、入力インピーダンスRINは標準値(1.2MΩ)であると仮定しています。
- 図 17(a)に示した UUT#1 では、BE-CAL を適用した場合でも、OC-CAL に匹敵する効果が得られています。これは、実際の入力インピーダンス RIN が標準値に非常に近いということを意味しています。
- UUT#2 ~ #4 では、BE-CAL を適用してもある程度の偏差が発生しています。これらのサンプルでは、実際の入力インピーダンス RIN が標準値よりもわずかに高いため、このような結果になっています。
- 4 つのプロットにおいて、OC-CAL の結果は濃い青色で示してあります。いずれのサンプルでも、RFILTER の値に依存することなく、トータルの誤差が 0.03% 未満に抑えられています。
BE-CALでは、PGAの実際の入力インピーダンスが考慮されません。そのため、BE-CALを実施しても、ADCの製造ばらつきによる誤差が生じてしまいます。それに対し、OC-CALでは、入力インピーダンスの値をADCの内部で測定し、その結果に基づいて補正を行います。そのため、BE-CALと比べてより優れたキャリブレーション結果が得られます。システムのゲイン誤差が抑えられるということは、ADCのデータ・ポイントごとにコントローラで後処理を行う必要がないということを意味します。つまり、より効率的で、より使いやすいということです。結果として、より精度の高いシステムを迅速に設計することが可能になります。
まとめ
本稿では、抵抗性の入力部を備え、8chの同時サンプリングに対応できるADCとしてAD7606ファミリを紹介しました。いずれの製品も、すべてのシグナル・チェーンを内蔵した完全なソリューションです。使いやすく、優れたAC性能/DC性能を備えており、センサーに直接接続することができます。ただ、アプリケーションによっては、アナログ入力部に抵抗を外付けしなければならないことがあります。それらの外付け抵抗は、システムのゲイン誤差が発生する原因になります。この問題にキャリブレーションで対処しようとすると、最終製品を市場に投入するまでの時間が長くなります。また、余計なコストがかかるという問題も発生します。アナログ・デバイセズは、このような課題に対処できるようにするために、AD7606B/AD7606C-16/AD7606C-18を提供しています。これらの製品は、より高い入力インピーダンスとOC-CALの機能を備えています。そのため、外付け抵抗によって生じるゲイン誤差を最小限に抑えることが可能です。