検索
連載

A-Dコンバーターの測定精度を上げる方法【対策の効果を検証する】ハイレベルマイコン講座【ADC測定精度編】(2)(4/6 ページ)

すでにマイコンを使い込まれている上級者向けの技術解説の連載「ハイレベルマイコン講座」。前回に引き続き、マイコンに搭載されているサンプル&ホールド型A-Dコンバーター本来の測定精度を得る方法を、実際の測定を基に解説する。

Share
Tweet
LINE
Hatena

変換誤差の補正

 A-Dコンバーター変換の誤差は、ノイズ起因によるもの以外に、次のようなA-Dコンバーター変換モジュールの持つ特性起因の誤差が発生する。

1)オフセット誤差とゲイン誤差
2)非直線性誤差

1)オフセット誤差とゲイン誤差

 オフセット誤差は0Vを変換したときに変換結果が0よりも大きくなる、または、0Vよりも大きな値なのに変換値が0になってしまう誤差である。また、ゲイン誤差は、フルスケールの電圧を変換したときに結果がフルスケールの理論値(例、12ビット分解能の場合、0xFFF)よりも小さくなってしまう、もしくは、フルスケールに至らない電圧を変換してもフルスケールの理論値が得られてしまう誤差である。

 非直線性誤差が比較的小さい場合、すなわち変換特性が直線に近似できる結果が得られる場合は、これらを1次関数とみなし、ソフトウェアで補正すると、より正確な変換結果を得ることができる。

 今回の変換結果で、非直線性誤差を無視できるような結果はなかったが、例として「単1形乾電池×2個/デカップリングコンデンサーあり/変換は1回のみ」の場合を補正してみる。補正する計算式を図8に示す。また、補正結果と補正前の元データ(実測値)を図9に示す。


図8:オフセット誤差とゲイン誤差の補正計算方法

図9:オフセット誤差とゲイン誤差の補正を行った結果

 補正後と補正前を比べると、わずかではあるが誤差は小さくなっている。

2)非直線性誤差

 理想変換の結果は直線を描くが、実際は曲線を描き、理想直線から少しずれた値になる。この直線からずれた曲線の特性を持つ誤差を非直線性誤差と呼ぶ。オフセット誤差やゲイン誤差のように、理論的に説明できる誤差ではないので、理論式では補正できない。しかし、擬似的な補正方法として、2次関数に置き換えて補正する方法がある。2次関数に近似する際にオフセット誤差とゲイン誤差も考慮すれば、より誤差の小さい結果が得られるはずだ。

 補正する計算式を図10で簡単に説明する。比較のために、ここでも「単1形乾電池×2個/デカップリングコンデンサーあり/変換は1回のみ」の場合を補正してみる。補正結果と補正前の元データ(実測値)を図11に示す。


図10:非直線性誤差の補正計算方法

図11:非直線性誤差の補正を行った結果

 オフセット誤差とゲイン誤差だけを補正した場合に比べると、まだ実用的ではないが、かなり改善された結果が得られる。

3)非直線性誤差の限定的な補正

 非直線性誤差を2次関数で補正するのは、理論的ではないので無理はあるが、ある一定範囲だけに限定すると、比較的正確な補正が可能になる場合がある。

 今回の変換結果の中で、2次関数に近い特性が見られたのは、「単1形乾電池×2個/デカップリングコンデンサーなし/平均化処理を行った場合」の0Vから2Vの電圧を変換した場合であったので、その部分だけを補正した結果を図12に示す。


図12:非直線性誤差の補正を部分的に行った結果

 この補正結果は、測定できる電圧が限定されるが、かなり改善された値に補正されている。

注意

 非直線性誤差を2次関数で補正する方法は、一部では行われているようだが、理論式に基づいていないので、筆者はお勧めしない。どうしても、この2次関数の補正をお使いになる場合は、データの蓄積を十分に行って、しっかり検証してほしい。


4)ディザー(Dither)を使ったノイズ除去

 また、ディザー(Dither)を使用したノイズ除去の方法もあるが、この方法はかなり複雑で、多くの説明を要する。本記事では、割愛するが、詳細を知りたい方は、STマイクロエレクトロニクスのアプリケーションノート(AN2668)に原理と方法が詳しく記載されているので、参照してほしい。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る