*概要 [#l6838bb3] -3pin式双方向シリアル通信規格(I2C, UARTの同様) -MasterとSlaveがある(1:n) -一回の通信で,双方の8bitのレジスタの内容を入れ替えることで実現([[シフトレジスタ>http://www.geocities.jp/zattouka/GarageHouse/micon/SPI/SPI.htm]]) -MISO (Master In Slave Out)とMOSI (Master Out Slave In)は,全デバイスn個で共有 --通信対象のデバイスを指定するためのCS (Chip Select)がn本必要([[CS>http://toragi.cqpub.co.jp/Portals/0/backnumber/2006/06/p153-154.pdf]]) *参考 [#gae820e4] -http://www.eleki-jack.com/2007/04/1233.html -http://www.geocities.jp/zattouka/GarageHouse/micon/SPI/SPI.htm(シフトレジスタのリング接続の説明がわかりやすい) *SPIの実波形 [#u38776fa] -http://www.eleki-jack.com/archives/images/SPIWave.gif *Arduinoのわかりやすいサンプル [#rca19176] -http://www.wsnak.com/wsnakblog/?p=679 *実装 [#f3c34117] -''SPIのMaster側は全てGPIOで実装可能''([[これ>http://www.eleki-jack.com/archives/images/SPIWave.gif]]を実際に作り出せば良い) -省略 --片方向通信では,MISO, MOSIが省略可能(省略時は結線しない,[[参考>http://www.avr.jp/user/AN/PDF/AVR151.pdf]] --スレーブが1つの場合は,SSが省略可能(省略時はHIGHに?) |