RasberryPiおやじブログ

raspberryPi3で SPI通信

今回は、少しの配線で沢山のデータの受け渡しに便利なシリアルパラレル変換に利用しやすいSPI通信を使えるようにする。

そもそも SPI通信とは (ネット情報)

  • モトローラ社が提唱した方式で、3本または4本の接続線での通信
  • 通信は、マスタが出力するクロック信号(SCK)を基準にして、互いに向かい合わせて接続したSDIとSDOで、同時に1ビット毎のデータの送受信を行います。
  • 常にマスタが主導権を持ち、8ビット単位のデータ通信が行われます。

 

 

python3のspidevのMethodsには次のようなものがある。 (ネット情報)

  • open(bus, device)
  • readbytes(n)
  • writebytes(list of values)
  • xfer(list of values [ , speed_hz, delay_usec, bit_per_word ] )
  • xfer2(list of values [ , speed_hz, delay_usec, bit_per_word ] )
  • xfer3(list of values [ , speed_hz, delay_usec, bit_per_word ] )
  • close()

   raspberryPi3のピン配置(SPI分 raspberrypiの解説本より)

  • 19 SPIMOSI
  • 21 SPIMOSO
  • 23 SPI SCLK
  • 24 SPI CE0
  • 26 SPI CE1

実験のためにチェッカー基板への接続

 SIとSOを接続

テストプログラム

コネクタの接続を入り切りして受信と接続の関係を確認しました。