1.目的
何らかの経緯で制御回路が停止した際に、最終回転位置を記録しておくメモリが必要である。
そこで、今回はarduinoにてEEPROMの試用を行った。
2. 方法
今回試用するEEPROMはAtmel社製のAT93C46Dである。
EEPROMは不揮発性メモリであるため、電源シャットアウト後も継続してストレージ可能である。(※シャットアウト時のデータ書き込みとは異なる。)
今回のEEPROMはMicrowireという通信規格がとられている。
これはSPIと似ているが、厳密には違うといえる。
また、本品を使用する上で下調べをしたがあまり、arduino上で使用した例が極めて少なく、サンプルプログラム、および、ライブラリを自己改変することにした。
まず、AT93C46Dのデータシートを参考にした。
http://www.atmel.com/images/atmel-5193-seeprom-at93c46d-datasheet.pdf
ページ6に記載してある。
ライブラリに書かれている、オペコードは別のEEPROM用であるため、データシートを参考に、オペコードを改変した。
これを前提に配線、プログラムの書き込みを行った。
3.結果
何度か、オペコードの見直し、ライブラリの改変を行ったが、EEPROMへの書き込みはできなかった。
4.今後の課題
調べてみると、arduinoに搭載されている、168Pまたは328Pには内臓のEEPROMがあることがわかった。
次回は内臓EEPROMの試用を行いたいと思う。