EEPROM の AT24C512 の通信の仕方を説明します。
I2Cの通信
通信
タイミング
通信開始 (START) は、"SCL" が High の時に "SDA" を立ち下げる。
通信終了 (STOP) は、"SCL" が High の時に "SDA" を立ち上げる。
アドレスやデータは "SCL" が Low の時に "SDA" を Low または High に変える。
1バイト 書き込み
チップアドレスは "A0", "A1" ピンで指定した値と同じEEPROMが対象になる。
、「AT24C512」は「A2」ピンがないので、チップアドレスの "A2" は Low にする。
"IN ACK" はPICが受信し、Low であれば正常となる。
nバイト 書き込み
EEPROM が1バイトのデータを受信するとアドレスが自動的に+1される。
「通信タイミング」の「STOP」するまで、連続で書き込みが出来る。
ただし、「AT24C512」は最大64バイトまで。
1バイト 読み込み
最初は書き込み操作でアドレスを指定する。
その後、読み込み操作でデータを受信し、"OUT ACK" を High にする。
nバイト 読み込み
"OUT ACK" を Low にするとEEPROMが送信を続ける。
"OUT ACK" を High にすると送信を止める。
EEPROMが1バイトのデータを送信するとアドレスが自動的に+1される。