電子工作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