今日のポイント(EEPROM)マニュアルはP11

1.EEPROM空間は汎用レジスタやSRAMとは異なる空間にある
2.読み出し/書き込みはI/Oレジスタを介した間接アクセス
3.書き込みには時間がかかるので書き込み処理中に電源が落ちるとデータは保護されない
4.チップ・イレーズにより内容が消えてしまうのを防ぐにはヒューズビットEESAVEに「0」

関連レジスタ

○ EEPROMアドレスレジスタ(EEARH,EEARL)

EEARH
 -    -    - 
 - 
 - 
 - 
 - 
EEAR8

EEARH
 EEAR7 
EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0



EEPROMのアドレス空間は512byteなので アドレスレジスタは9ビット

○ EEPROMデータレジスタ(EEDR)

(MSB)                                          (LSB)

○ EEPROM制御レジスタ(EECR)

 -    -   EEPM1 EEPM0 EERIE EEPME  EEPE EERE

プログラムモード
 EEPM1 EEPM0
   0      0    消去 & 書き込み
   0      1    消去のみ
   1      0    書き込みのみ

割り込み処理を行う場合
 EERIE=「1」のときEEPEビットがクリア時に割り込み発生

EEPMEビット(EEPROMマスタ書き込み許可) と EEPEビット(EEPROM書き込み許可) はペアで使う!
EEPMEビットを「1」にセット後4クロック以内にEEPEビットを「1」にセット することで書き込み処理を始め、書き込み終了時に「0」に戻る

○ 書き込み手順 (消去 & 書き込み)
  1. EECRレジスタのEEPEビットが「0」になるまで待つ
  2. EECRレジスタのEEPM1、EEPM0ビットを共に「0」とする
  3. EEARレジスタにアドレスをセット
  4. EEDRレジスタにデータをセット
  5. EECRレジスタのEEPMEビットを「1」にセットし4クロック以内に
  6. EECRレジスタのEEPEビットを「1」にセット
○ 読み出し手順
  1. EECRレジスタのEEPEビットが「0」になるまで待つ
  2. EEARレジスタにアドレスをセット
  3. EECRレジスタのEEREビットを「1」にセット
  4. EEDRレジスタのデータを読み出す