電子工作etc
■EEPROM性能測定(目安)
★概要
様々なデータを測定する場合、そのデータの蓄積(ロギング)方法をどうするかが悩みの種です。
蓄積方法は、いろいろ考えられます。
・PIC内蔵のEEPROM
・外付けのEEPROM
・外付けのSRAM
・SDカード
・USBまたはRS232C経由でパソコンのハードディスク
各々、長所短所がありますが、出来るだけコンパクトに、安価に仕上げるのであれば、外付けのEEPROMなど
が丁度よさそうです。
今回の実験では、マイクロチップ社製のEEPROM(24LC1025)を使用しました。(秋月電子で450円)
24LC1025の記憶容量は、1Mビット(約131kバイト)もあるので、大概のデータ測定に使えそうです。
そこで、気になる性能(特に書き込み速度)を、実際にPICに接続して、測定してみました。
<24LC1025(左)とPIC12F683(右)>
<書き込みシーケンス>
<読み出しシーケンス>
★実験内容
データサイズ(1バイト、8バイト、16バイト、32バイト)単位での、書き込みと読み出し速度を測定します。
測定方法は、書き込み処理および読み出し処理の開始時点で、LEDを反転(ON→OFF、OFF→ON)させ、
その信号をオシロスコープで測定し、処理時間を求めます。
※EEPROMには、“Twc(Write cycle time)”があるので、これ以上の速度は望めません。
※24LC1025のTwcは、5msecです。
スイッチ(SW1)を押下する毎に、次の@〜Hの処理を逐次実行していきます。
@1バイト単位の書き込み(131072バイト分書き込みます)
A1バイト単位の読み出し(131072バイト分読み出します)
B8バイト単位の書き込み(131072バイト分書き込みます)
C8バイト単位の読み出し(131072バイト分読み出します)
D16バイト単位の書き込み(131072バイト分書き込みます)
E16バイト単位の読み出し(131072バイト分読み出します)
F32バイト単位の書き込み(131072バイト分書き込みます)
G32バイト単位の読み出し(131072バイト分読み出します)
H@に戻る。
※書き込みまたは読み出しに失敗すると、LEDは点灯したままになります。
★実験回路
★プログラム
ソースリストはここです。
HEXリストはここです。
★実験結果
表のような結果になりました。
データサイズが大きいほど書き込みも読み出しも性能が高くなります。
<クロック=20MHz、Twc=5msec>
データサイズ
|
処理内容
|
処理時間
|
131072バイトに要する時間
|
1バイト
|
書き込み
|
6msec
|
約13分
|
読み出し
|
6.2msec
|
約14分
|
8バイト
|
書き込み
|
7.6msec
|
約2分5秒
|
読み出し
|
7.4msec
|
約2分1秒
|
16バイト
|
書き込み
|
9.2msec
|
約1分15秒
|
読み出し
|
8.6msec
|
約1分10秒
|
32バイト
|
書き込み
|
12.8msec
|
約52秒
|
読み出し
|
11.2msec
|
約46秒
|
<クロック=8MHz、Twc=5msec>
データサイズ
|
処理内容
|
処理時間
|
131072バイトに要する時間
|
1バイト
|
書き込み
|
6.9msec
|
約15分
|
読み出し
|
7.2msec
|
約16分
|
8バイト
|
書き込み
|
9.8msec
|
約2分40秒
|
読み出し
|
9.6msec
|
約2分37秒
|
16バイト
|
書き込み
|
13.2msec
|
約1分48秒
|
読み出し
|
12.0msec
|
約1分38秒
|
32バイト
|
書き込み
|
20.0msec
|
約1分22秒
|
読み出し
|
17.0msec
|
約1分10秒
|
例えば、4チャネルのA/D変換(10ビット精度)で、10msecサイクルでデータを蓄積するのであれば、データ
サイズを、8バイト(2バイト×4チャネル)、クロック=20MHzにすれば十分実現できそうです。

電子工作etc
|