組み込み通信

I2CとSPI

どちらもクロックに合わせてデータを読むシリアルバスです。I2Cは2線でアドレス指定し、一般的なSPIは4線で同時送受信します。

I2CとSPIの波形シミュレータ

1. バスと送信値を選択

2. 1段階ずつ進む

オレンジの点は受信側の標本化時点です。

I2C:2線とアドレス

SCLとSDAはプルアップでhighを保ち、装置はlowへ引くだけのオープンドレインです。複数装置で共有できます。

START後に7ビットアドレスとR/Wを送り、対象がACKします。SCLがlowでデータを変え、highで安定させます。high中のSDA変化はSTART/STOPです。

SPI:4線で同時送受信

SCK、MOSI、MISO、CSを使います。CSで対象を選ぶためアドレスは不要で、標準のACKもありません。8クロックで各側のシフトレジスタを交換します。

モード0はアイドルlow、立上りで読込みです。CPOL/CPHAによる他モードもあるため、装置仕様に合わせます。