I2C通信の使い方

42 I2C

コードを書く前に I2C の使い方の復習です。

通信を行う片側をマスター、もう一方をスレー・・・おっと
いまはコントローラとターゲットという呼び方が推奨されているようです。

今回はラズパイ pico をコントローラ、LCD をターゲットとします。
ターゲットにはアドレスが振られており
1602互換 LCD では 0x27 や 0x3F の事が多いようです。

I2C のアドレスは7bit (最大 128種)のようなので
どうしてもアドレスがわからない場合は
反応が出るまで全アドレスを試してみるかな?

I2C 通信手順 ( pico → LCDへのデータ送信)

① pico が Start condition、LCD のアドレス、R/W 信号を送る
  今回は pico → LCD なので R/W は W (write)

② LCDからアクノリッジを受け取る
  アクノリッジは1bit で正常なら0、異常なら1

③ 8bit のデータを送る

④ LCDからアクノリッジを受け取る

⑤ 必要な回数、③と④の繰り返し

⑥ 最後に Stop condition を送って終了

pico が受信する場合 (R/W が R の場合)は、pico がデータを受け取った後に
pico がアクノリッジを送信します

I2C 通信の基本をコードを書いてみましょう
・・・と思いましたが
ターゲットが無いとコードが正しいかわかりません

次回は、I2C 接続した LCD の使い方です

コメント