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への読み書きができるようになりました。