I2Cの通信

EEPROM の AT24C512 の通信の仕方を説明します。

  • EEPROMのI2Cの接続例

通信

タイミング

  • I2Cの通信タイミング

通信開始 (START) は、"SCL" が High の時に "SDA" を立ち下げる。
通信終了 (STOP) は、"SCL" が High の時に "SDA" を立ち上げる。
アドレスやデータは "SCL" が Low の時に "SDA" を Low または High に変える。

1バイト 書き込み

  • I2Cの1バイト書き込みの通信フォーマット

チップアドレスは "A0", "A1" ピンで指定した値と同じEEPROMが対象になる。
、「AT24C512」は「A2」ピンがないので、チップアドレスの "A2" は Low にする。
"IN ACK" はPICが受信し、Low であれば正常となる。

nバイト 書き込み

  • I2Cのnバイト書き込みの通信フォーマット

EEPROM が1バイトのデータを受信するとアドレスが自動的に+1される。
「通信タイミング」の「STOP」するまで、連続で書き込みが出来る。
ただし、「AT24C512」は最大64バイトまで。

1バイト 読み込み

  • I2Cの1バイト読み込みの通信フォーマット

最初は書き込み操作でアドレスを指定する。
その後、読み込み操作でデータを受信し、"OUT ACK" を High にする。

nバイト 読み込み

  • I2Cのnバイト読み込みの通信フォーマット

"OUT ACK" を Low にするとEEPROMが送信を続ける。
"OUT ACK" を High にすると送信を止める。
EEPROMが1バイトのデータを送信するとアドレスが自動的に+1される。

公開日:2011年05月, 更新日: