ABLIC(旧SII:セイコーインスツルメントセミコンダクタ)社製、1Mビット(1048576bits=128kバイト)のI2C書き換え可能ROMです。
秋月電子で1個140円。いまだけピッチ変換基板が付録されていてお得です。
I2C接続のEEPROMで書込み/読込み手順やピン数/配置が、今まで使っていたマイクロチップ社製24FC512などと一緒なので、PICKit2 を使ってデータ書き込みを試みました。
が、I2C Bus Error (No Acknowledge) というエラーで書き込み不可。
細かくマニュアルを読み込んでいくと、ページライトのときのバイト数が256で、いままでの128の2倍と、異なっています。
PICKit2 がEEPROM製品に合わせてページライト数を合わせているとしたら、それが原因で書き込み失敗の可能性もあると考えましたが、なんとなく違う気がします。
USART経由流し込みで I2C EEPROM に書き込むプログラムは以前PIC(18F26K22)用に作ってあったので、ページライトバイト数を256に変更して試みるも書き込み失敗。
マニュアルを比較してやっと気がつきました。I2Cのサポートクロックが違うことに。
S-24CM01CI がサポートするクロックは、400kHzと1MHz。
18F26K22がボージェネレータで作れるクロックは、100kHzと400kHz。プログラムはI2Cクロック100kHz(赤下線)で作られていました。
マスター側が低いクロック供給をした場合でも電圧などは揃っているので、なんとなく書き込みしてくれてもよさそうなのに、そうは行かないことがわかりました。
というか今まで使っていたマイクロチップ社の24FC512が、サポートしていない100kHzで読み書きできているほうが異常でした。
I2Cクロック400kHzになるようにプログラムを書き換えます。
TeraTerm(Send File)→USART→PIC18F26K22→I2C→EEPROM と、配線が面倒ですが、ABLIC社のEEPROMへの読み書きができるようになりました。






