出典:RaspberryPiのPinout
出典:SPIについて
出典:Raspberry Pi GPIOを使用したSPI通信(温度センサ)
SPI(Srial Peripheral Interfacd)
シリアルバスは一度に1bitずつではあるが、複数のbitを転送する方式。
SPIの基本構成
マスタICとスレーブICとの間は3本の信号線、SCLK(Serial Clock)、MISO(Master-In Slave-Out)、MOSI(Master-Out Slave-In) で接続され、マスタICの駆動するクロックで双方の8bitシフトレジスタのデータを交換する。
このほか、伝送開始の同期をとるためおよびバス接続のためにSS(Slave Select)が設けらる。
スレーブ動作専用ICではこれらの信号名とは別の信号名(DI,DO,CSなど)が使われることが多い。
DACや1ch ADCのように一方通行で済む場合は、片方のデータ信号が省略される。データのシフト方向はMSBが先頭になる。
複数のスレーブをバス接続する場合は、スレーブがSPIに並列にぶら下がり、マスタから個々のスレーブにCS信号が接続される。
スレーブのデータ出力は3ステートになっていて、CS信号で選択されたスレーブだけがMISO信号を駆動することになる。
ラズパイでSPIを有効に
「設定」>「Raspberry Piの設定」>「インターフェイス」>「SPI:」を有効に、確認は以下
pi@raspberrypi:~ $ lsmod | grep spi
spidev 20480 0
spi_bcm2835 20480 0
pi@raspberrypi:~ $ ls -l /dev | grep spi
crw-rw---- 1 root spi 153, 0 3月 25 11:09 spidev0.0
crw-rw---- 1 root spi 153, 1 3月 25 11:09 spidev0.1