ルモーリン

EEPROMドライバを作成

投稿:2014-07-08

LPCXPresso(1769版)のオンボードEEPROMをアクセスしたい。
できた(簡潔明瞭)。 前回のアーカイブ公開から約1年間かかりました。 長かったです。 EEPROMを扱ったことがなく、データシートを読むところから初めて、アクセスのためのI2Cのシーケンスを読んで シーケンスに合わせた既存ライブラリの仕様を調べたり、色々と時間が掛かってしまいました。 EEPROMは読み出し速度はあっても、書き込みは5msかかるし、1バイトでも1ページ(32バイト)でも同じ時間というのに驚きました。 書き込みはページバッファを介して、できるだけ1ページをまとめて書き込むように努めました。 せっかくなのでオンボードのEEPROM以外のタイプでも扱えるように、書き込みできるか、それと容量を把握してページサイズを推定します。
離れた2バイトを書き込む例です。
  1. アドレス0x0001へ1バイト書き込み要求が来る
  2. 当該ページ32バイト全部をページバッファに読み出す
  3. ページバッファに要求の1バイトを書き込む
  4. アドレス0x00DFへ1バイト書き込み要求が来る
  5. ページバッファをEEPROMに書き込む(この処理に5msかかる)
  6. 当該ページを読み出す
  7. ページバッファに要求の1バイトを書き込む
    (次の書き込み要求またはクローズ処理までEEPROMへの書き込みは保留)
特にありません。
まあ、どうせ話が通じないと思うので、あとはソース見てください(^^;
yrntrlmnmnt20140706.zip