機器には必ず寿命が存在する。無論、EEPROMにも読み込み/書き込みに寿命が存在する。そこで今回はArduino内臓EEPROMのR/W耐久試験を行う。
2.方法
※プログラムは最下部にあります。
Arduinoのanarogポートとライブラリを用いて乱数を発生させる。
値は読み/書き上、上限を250とした。(絶対値)
次に、EEPROMに発生した乱数を書き込む。
EEPROM参照番地は、0から512を用いた。
その後、EEPROMより値を読み込み、書き込んだ乱数と比較する。
同じ場合、count1に+1を行う。
違う場合、count2に1を代入後、プログラムのループは終了し、count1,count2の結果を表示するというシンプルなものである。
試行回数は1000回を下限とし、250万回を上限とした。
※Arduinoの読み書きの動作上、それぞれに10msの遅延時間を設置した。
3.結果
表.1に、試行回数、実行時間、R/W成功回数を示す。
試行回数(回) | 実行時間(H:M:S) | R/W成功回数(回) |
---|---|---|
1000 | 00:00:20 | 1000 |
5000 | 00:01:42 | 5000 |
10000 | 00:03:24 | 10000 |
50000 | 00:17:02 | 50000 |
10万 | 00:34:02 | 10万 |
15万 | 00:51:07 | 15万 |
25万 | 01:25:16 | 25万 |
100万 | 05:41:29 | 100万 |
250万 | 14:15:05 | 250万 |
上記の結果から、ArduinoのEEPROMには信頼性が十分あることがわかった。
今回は、R/Wに10msの遅延時間を設置したが、高速化は可能である。
ただ、EEPROMのデータを介してのステッピングモーターの制御なので、速度はすでに十分である。
ただ、高速化を目指す場合は、試行回数によってはR/Wの失敗が見られる恐れがある。
公式スペックではWrite時に3.3msの遅延をおくことを推奨している、のでこれを超える高速化は寿命だけでなく、制度的に問題が出る恐れがある。
実行中のスクリーンショット
プログラムver 2.3
プログラム修正履歴
ver 2.3 プログラム実行時間を時刻化
ver 2.0 現在の試行回数を表示、およびバグ修正
ver 1.6 プログラム実行時間を表示
ver 1.5 試行回数を100万回以上に対応
ver 1.0 EEPROMに乱数の書き込みテスト
参考文献
Arduino 日本語リファレンス http://www.musashinodenpa.com/arduino/ref/