I2C と SPI の違い

I2C と SPI の違い

I2C と SPI は、ほとんどおなじ

制御するデバイス
大抵は Raspberry Pi になるけど
こっちをマスターといって

制御される側の部品のことを
スレーブという

この呼び方の違いは
利用する部品がどちらに対応しているかにより異なる

仕組みは
どっちもクロック信号に載せてデータをやりとりする

このデータ交換は
I2c なら1本の信号線を使い

SPIなら2本の信号線を使う

これは I2C が双方向で
SPI が片方向となっているため

ちなみに
I2C のデータ線はSDA という

SPIの場合
マスターからスレーブ方向を MOSI
スレーブからマスターが MISO
という

そして、マスターとスレーブとの間で
MOSI 同士
MISO 同士
をつなげる

SPIの場合、かなりわかりにくく
自分からでていくのが
SDO とか Dout
といって

自分に入ってくるのを
SDI とか Din
と書いているときもある

こう書いてある場合
Out と In で接続する

例えば
マスターの SDO を
スレーブの SDI に接続する

I2C でも SPI でも
複数のスレーブとつなげることができるため
どれと通信するか識別する必要がある

I2C を使っている場合なら
スレーブ側にアドレスを持つので
マスターからアドレスを指定して制御する

SPIなら、専用の信号線があるので
各スレーブが持つ CS や SS を
マスターがロー、つまりGNDにして
デバイスを選択することになる

なお、マスターはスレーブの数だけ信号線が必要になる

Raspberry Pi に搭載されているのは
2本で CE とかかれている

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です