コンテンツにスキップ

SPI

SPI は 4 本の信号線で通信するシリアルインターフェースである。

ピン 別名 意味
SCK - Serial Clock
MOSI COPI, TX Master Out Slave In
MISO CIPO, RX Master In Slave Out
SS CS, CE Slave Select

実際にはデバイスには電源が必要なのでモジュールに接続する線は VCC と GND あわせて 6 本かもしれない。

SCK, MOSI, MISO を共有してスレーブを複数接続することが可能。受信させたいスレーブに対して SS を Low にすると、スレーブが信号を読む。この仕組み上、基本的に同時に通信するのは 1 つだけ。

ハードウェア対応表

ハードウェア 対応 ch 数 備考
Raspberry Pi 3 ✅️ 2 CE0, CE1 が SS
Raspberry Pi 4 ✅️ 2 上に同じ
Raspberry Pi 5 ✅️ 2 上に同じ
Raspberry Pi Pico ✅️ 任意?
Raspberry Pi Pico W ✅️ 任意?
Arduino Uno Rev3 ✅️ 1
ATmega328P ✅️ 1

各ハードウェアは SPI 通信のための専用の SS を持っているが、前述のとおり SS は通信中に Low になるだけなので、他の GPIO を使って SS を実現することで記載以上の数のスレーブを制御することもできるのではないかと思う。