Raspberry Pi(5) ADコンバータとSPI通信

Raspberry Pi(5) ADコンバータとSPI通信

今回は、SPI通信のところにいきます。
このあたりがわかってくるようになれば、センサーから値を取得してなんたらかんたら・・とかできるようになるのかな?

なかなか楽しそうだ。
で、読んでいくとアナログ値をデジタル変換するものをADコンバータといい、その値のやり取りにSPI通信を使います、と。

 

そもそもSPI通信ってなんだ?

シリアル・ペリフェラル・インタフェース(Serial Peripheral Interface, SPI)は、コンピュータ内部で使われるデバイス同士を接続するバスである。パラレルバスに比べて接続端子数が少なくて済むシリアルバスの一種で、比較的低速なデータ転送を行うデバイスに利用される
出典: フリー百科事典『ウィキペディア(Wikipedia)』

ほうほう、要はデバイス間のデータ通信と。

この教本(カラー図解 最新 Raspberry Piで学ぶ電子工作)では、ADコンバータにMCP3208を使用している。
このラズパイとADコンバータを繋いでる回路図があるけど、このように繋ぐ意味を知りたいので、ちょっと調べてみます。

Wikiといろんなサイトを元に自分でまとめてみました。
まずはラズパイの各ピンの名前とその意味です。

ピン名称 機能
SPI SCLK [Serial Clock]データ転送タイミングを合わせるためのクロック。
SPI MISO [Master-In Slave-Out] マスタ(ラズパイ)へスレーブ(SPIデバイス)からデータを送るポート。
SPI MOSI [Master-Out Slave-In] マスタ(ラズパイ)からスレーブ(SPIデバイス)へデータを送るポート。
SPI CE0/CE1 [Chip Enable] CS(Chip Select)やSS(Slave Select)と書いてあることも。通信相手のスレーブを選択するための端子。ラズパイCE0/CE1の2つだから、スレーブは2つまで繋げられる。

およそこんな感じのようです。

 

そして、MCP3208のデータシートをみると端子は、

ピン名称 機能
VDD +2.7V ~ 5.5V 電源
VREF 基準電圧入力
AGND アナログアース
CLK シリアルクロック
DOUT シリアルデータ OUT
DIN シリアルデータ IN
CS/SHDN チップセレクト / シャットダウン入力
DGND デジタルアース

とのこと。

それぞれラズパイのピンとMCP3208のピンの名前やら機能を見ると同じっぽい名前あるね!
それでラズパイとMCP3208はこの本の図のように繋げるのね!

 

それでは、自分なりに理解できたところで、ラズパイとブレッドボード上の回路をつなぎます。

なかなか仰々しいですな

 

そしてidleを起動してから、半固定抵抗を回す!

お、なんか値がかわってく!

 

次はフォトレジスタを使ってなんかやるみたいだ!