ラズパイでアナログ電圧を扱う (7) MCP3208のプログラム③
前回、シングルエンド入力では5LSBの誤差、疑似差動入力では3LSBの誤差がありました。その誤差がいくつかの方法を試して減少するかどうかを実験します。
●デバイスを差し替える
一番簡単なのは、MCP3208自体を別の製品に差し替えて様子を見ることです。データシートにも書かれていますが、積分非直線性や微分非直線性は、累積すれば2LSBぐらいの誤差がデバイスごとに生じます。オフセット誤差や利得誤差も2LSB程度の差が出る可能性があります。
けれど、経験上、ICの性能は、データシートに書かれている誤差より大変少ないことが多いです。
全部で3個のMCP3208を用意しました。
●No.1
一つ目を、疑似差動入力のch6=in+,ch7=in- [0x05,0x80,0x00]の条件で測定しました。実験用TL431電源の出力をKeitley 2000で読み取った電圧は2.49222Vでした。
プログラムを実行した結果です。最頻値は2.49625898901Vです。
(2.49625898901 - 2.49222) / 2.49222 = 0.16%
0.16%の誤差があり、差の4.0mVは約6.6LSBに相当します。
●No.2
2個目です。
プログラムを実行した結果です。最頻値は2.49625898901Vです。1個目と同じです。
●No.3
3個目です。購入時期が上記と1年以上異なるので、違うロットだと思われます。
プログラムを実行した結果です。最頻値は2.49625898901Vです。1個目と同じです。
少ない実験例ですが、IC自体のバラツキは測定値に影響していないと思われます。
●グラウンドの処理
データシートでは、アナログとディジタルのグラウンドはIC内部で配線されているという表記だったので、外部ではつなぎませんでした。ここでは、ジャンパ・ケーブルでそれぞれのグラウンドをつないで測定します。
プログラムを実行した結果です。最頻値は2.49197304029Vです。
(2.49197304029 - 2.49222) / 2.49222 = -0.01%
誤差が少なくなりました。差の0.25mVは1LSB以下です。
シングルエンドの測定をします。電圧発生器TR6142で1.0000Vを発生してch0に入力します。
プログラムを実行した結果です。最頻値は2.49197304029Vです。
(0.999850608059- 1.0000) / 1.0000 = -0.01%
誤差が少なくなりました。差の0.14mVは1LSB以下です。
これらの実験から、12ビットA-Dコンバータは、手配線のレベルでも十分実用的な測定ができることがわかりました。