)Devicesは、A-Dコンバータのクラスがたくさん用意されています。いずれもマイクロチップのA-Dコンバータで、10ビット、12ビットおよび13ビット用です。同社のA-Dコンバータは22ビット以上も発表されていますが、下の表の品種が入手しやすいようです。MCP3xxxはマイクロチップのA-Dコンバータ・シリーズです。内部に基準電圧源を搭載していないモデルは、通常、電源電圧を利用します。端子に基準電源Vrefがあるモデルでは、安定な基準電圧ICの出力をつなぎます。SPI●12ビットA-DコンバータA-Dコンバータはアナログの値をディジタルに変換します。0.00080566406[V]が1LSB=一番細かな最小単位です。0.80566406mV以内のアナログ値は見分けられません。これを量子化誤差と呼びます。ビット数が増えるほど量子化誤差の絶対値は小さくなります。ここで取り上げるMCP3201/3202/3204/3208は、入力チャネル数が異なります。内部にA-D変換するユニットは一つですが、入力に切り替えスイッチで複数のチャネルを同時に扱えるように構成されています。MCP3204/3208●ピン配置ピン配置やピンの名称などシリーズの統一性はありません。SPIインターフェースの読み書きにも統一性はありません(写真はMCP31xxを加工して使用。配置と名称はまったく同じ)。チャネルは一つの12ビット・アナログ-ディジタル・コンバータ。MCP3201は常に差動モードで動作し、IN-に対するIN+の値を測定する。差動は疑似差動なのでマイナスは扱えない。valueデバイスから読み取られた現在の値。0〜1の値にスケーリングされる。6桁のDMMで測定した値です。sleep(1)実行中の様子です。二つの電圧の差を求めると、0.00080332071Vでした。LSBと同じことがわかります。入力IN+とIN-にはTL431電圧源の約2.48Vをつないでいます。2チャネル、12ビット・アナログ-ディジタル・コンバータ。channelデータを読み取るチャネル。differentialTrueの場合、デバイスは差動モードで動作する。このモードでは、一つのチャネル(チャネル属性で指定)が、2番目のチャネルの値(チップの設計によって暗示される)に対して読み取られる。データシートには、設定ビットによって、「Ch0がIN+、Ch1がIN-」と逆の「Ch0がIN-、Ch1がIN+」があるが、この解説に具体的なことは書かれていない。valueデバイスから読み取られた現在の値。1)の値にスケーリングされる。(図の写真はMCP31xxを加工して流用しています)実行例です。TL431電圧源の約2.48VはCh0とCh1につないでいます。不安定だったのでCh1はVssにつないでいます。千回測定し、頻度のグラフを描きました。4チャネル、12ビット・アナログ-ディジタル・コンバータ。channelデータを読み取るチャネル。differentialTrueの場合、デバイスは差動モードで動作する。このモードでは、一つのチャネル(チャネル属性で指定)が、2番目のチャネルの値(チップの設計によって暗示される)に対して読み取られる。valueデバイスから読み取られた現在の値。0〜1の値にスケーリングされる。(図の写真はMCP31xxを加工して流用しています)実行例です。TL431電圧源の出力は、Ch1とVssにつないでいます。8チャネル、12ビット・アナログ-ディジタル・コンバータ。channelデータを読み取るチャネル。differentialTrueの場合、デバイスは差動モードで動作する。チャネル0はチャネル1に対して読み取られる)。valueデバイスから読み取られた現在の値。0〜1の値にスケーリングされる。(図の写真はMCP31xxを加工して流用しています)実行例です。これは、回路図中のグラウンドから浮いた電圧を測るような用途には適していません。グラウンド・ループやノイズ耐性を上げるために用意されています。したがって、マイナスの電圧が測れるわけではありません。IN-)まで変動できます。具体的には、入力は-0.1~3.40Vの範囲で、最大100mVの同相(コモン・モード)ノイズが入っても除去されるということだと解釈できます。参考;http://digital.ni.com/public.nsf/allkb/649202233E3EF06286257408002FDDBD●基準電圧Vref端子にA-D変換のかなめとなる基準電圧を入力します。基準電圧は0.25V~Vddの範囲です。このとき、A-Dコンバータの入力電圧は、0V~基準電圧の範囲になります。電源電圧Vddを5.0Vとすれば、Doutなどの出力端子のHIGHレベルVohは4.0V以上になるため、ラズパイのGPIO入力電圧の上限を超えます。Vdd=3.3Vのときのスペックがデータシートにないのですが、0.7Vddとすれば、2.31Vです。ラズパイの入力端子のHIGHレベルを満足しています。(※)インターネットを検索すると、ラズパイのHIGHレベルVohは1.34~3.30V、LOWレベルVolは0~1.19Vが多いようです。これはラズパイ4に当てはまるかは不明です。(INL)も劣化します。したがって、2.5~3.30Vを選択します。ライセンスで提供されています。