ゆるく楽しむプログラミング

EEPROM 24FC1025

1MBit(128KByte)の EEPROM
I2Cアドレスが2個存在し、512KBit(64KByte) x 2個のEEPROMとして動作します。

   A0  I2Cアドレスセレクト
 A1
 A2
 GND  GND
 Vcc  2.5V~5.5V
 WP  書き込み禁止
 SCL  I2C - SCL
 SDA  I2C - SDA
WP: 書き込み禁止ピンは Vccに接続すると書き込み禁止、GNDに接続すると書き込み可

I2C アドレスの割り当ては▼表の通り、A2をGNDに接続すると512KBitブロックが一つ動作しなくなります
A0 A1 A2 I2Cアドレス
GND GND GND  0x50
Vcc  GND  GND  0x51
GND  Vcc  GND  0x52
Vcc  Vcc  GND  0x53
GND  GND  Vcc  0x50 / 0x54
Vcc  GND  Vcc   0x51 / 0x55
GND  Vcc  Vcc   0x52 / 0x56
Vcc  Vcc  Vcc   0x53 / 0x57

データの書き込み手順

24FC1025は 128Byte x 512Pageで構成されています。
連続書き込み時にはページ境界を超えることが出来ません。
ページ境界を跨ぐ場合には、一旦トランザクションを終了し、開始アドレスを設定しなおす必要があります。
読み込み時にはページ境界の影響を受けません。

データ書き込み(1バイト)


データ書き込み(複数バイト)
書き込みアドレスは下位7ビットのみインクリメントされ、上位ビットはインクリメントされません。
ページの境界を超えた書き込みは出来ないと言う事です。
アドレス[B01111111]の次はアドレス[B00000000]に対して書き込みが行われます。



データの読み込み(1バイト)
読み込み開始アドレスを指定するコマンドはないのでダミー書き込みを行ってから読み込みを行います。
※連続して読み込む場合、2バイト目以降はダミー書き込みを行わなくても、読み込むたびに読み込みアドレスがインクリメントされます。



データの読み込み(複数バイト)
読み込み開始アドレスを指定するコマンドはないのでダミー書き込みを行ってから読み込みを行います。
読み込み時にはページ境界は問題にならないようです。


※書き込み後にI2Cバスが解放されるまで最大10msのタイムラグがあります。
※書き込み/読み込み、書き込み/書き込みを連続して行うと開始処理に失敗する場合がありますのでエラー処理を入れた方が良いです。