EEPROM実験
- 2016/05/08
- 18:15
RTCモジュールには、RTC以外にEEPROMが実装されている。
AT24C32という物でした。
それをアクセスする実験をしました。
といっても、いつもの通り、ググって、諸先輩方のコードをコピペーしたけであります。
こちらから情報を頂きました。
http://blogs.yahoo.co.jp/fromphilip20123/65200370.html
アドレスが0x50となっておりまして、動作せず、、いろいろ調べた結果自分のチップは0x57である事が判明し、そこを修正したら動きました。

AT24C32という物でした。
それをアクセスする実験をしました。
といっても、いつもの通り、ググって、諸先輩方のコードをコピペーしたけであります。
こちらから情報を頂きました。
http://blogs.yahoo.co.jp/fromphilip20123/65200370.html
アドレスが0x50となっておりまして、動作せず、、いろいろ調べた結果自分のチップは0x57である事が判明し、そこを修正したら動きました。

#include <Wire.h>
#include <AT24C32.h>
// I2C アドレス
#define AT24C32_I2C 0x57 // 0xa0 << 1
// AT24C32ライブラリ初期化
// I2Cアドレスを設定
AT24C32 PROM( AT24C32_I2C ) ;
void setup() {
Serial.begin(9600) ;
Wire.begin() ;
PROM.init(); // AT24C32 初期化
}
void loop() {
byte message[13] = {'H','e','l','l','o',' ','A','r','d','u','i','n','o'} ;
Serial.println("#test onece of write/read");
PROM.write(10,0xAA) ; // 10番地にAAを書く
delay(10); // 書き込み時間10ms
PROM.write(11,0x55) ; // 11番地に55を書く
delay(10); // 書き込み時間10ms
Serial.println(PROM.read(10),HEX) ; // 10番地を読む
Serial.println(PROM.read(11),HEX) ; // 11番地を読む
// ページライト、リード
// 最大32バイト連続でライト、リードできる
// 32バイト以上指定するとfalseを返して実行しない
Serial.println("#test page write/read");
for ( int i = 0 ; i < 14 ; i++ ) {
PROM.set(i ,message[i]) ; // 書き込みデータをセット
} // データは書き換えるまで保存される
PROM.pageWrite( 1000 , 14 ) ; // 1000番地から14バイト書き込み
delay(10); // 書き込み時間10ms
PROM.pageRead( 1000 , 14 ) ; // 1000番地から14バイト読み出し
for ( int i = 0 ; i < 14 ; i++ ) {
Serial.print((char)PROM.get(i));
}
Serial.println();
Serial.println("#test end");
Serial.println();
delay(10000) ;
}
- 関連記事
-
-
ロータリーエンコーダー用のArduinoライブラリ
-
割り込み実験
-
AE-ATMEGA328-MINIの入力電圧MAXは本当に12Vなんですか?
-
備忘録: LCD 2004 20x4 Display Shield Blue Backlight
-
RTCモジュール、PC時間を自動に時間設定
-
ATMEGA328P I/Oの電圧
-
AE-ATMEGA328-MINIが供給可能な消費電流→150mA
-
EEPROM実験
-
TMGA328Pブートローダー入り
-
LCDチカチカ TX/RX
-
Arduino続き(ロータリー、DDS、LCD) RIT機能
-
アナログピンをデジタルで使う
-
Arduino続き
-
Arduino購入
-