出典: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