メモリ

  1. シリアルROM:ATMEL AT24C256

    1. 仕様
      これはフラッシュメモリです。書き込みの保証回数は、10万回から100万回となっています。バイト単位または64バイト単位での書込みが可能です。

      容量 書込み速度 最大クロック 電圧
      24LC64
      24LC128
      24LC256
      64kbits(x8)
      128kbits(x8)
      256kbits(x8)
      5ms 400kHz 2.5-5.5V

      詳細は http://www.atmel.com/dyn/resources/prod_documents/doc0670.pdf

    2. 構成
      A0,A1,A2はチップアドレスで、アクセス時に指定したアドレスのチップのみが応答します。SCLがクロック、SDAがデータ信号です。シリアル信号はI2Cタイプです。



    3. スタート・ストップコンディション
       SDAとSCLは1とします。SCLを1にしたまま、SDAを1>0に変化させます。これが、スタートコンディションです。続けてデータを送り、最後のSCLを1にしたまま。SDAを 0>1 に立ち上げます。これがストップコンディションです。

    4. 応答
       1バイトのデータ書込み後、SCLにパルスを送ります。このとき、書込みへの応答としてメモリは SDA を0に下げます。これを応答と言います。バイトデータの書込み後はこの応答を確認する必要があります。

    5. バイト単位書込み手順
      スタートコンディションを設定し、次に 1010 aaa0 のコントロールバイトを順に送ります。aaaはチップアドレスです。
       次に、アドレス上位、アドレス下位バイト、書込みデータを送り、最後にストップコンディションを送ります。各バイト毎に 応答の確認を行います。

    6. 64バイト単位の書込み
      スタートコンディションを送り、次に 1010 aaa0 のコントロールバイトを送ります。aaaはチップアドレスです。
       次に、アドレス上位、アドレス下位バイト、書込みデータを64バイト続けて送り、最後にストップコンディションを送ります。各バイト毎に応答信号が返ります。

    7. バイトデータ読みだし
      スタートコンディションを設定し、次に 1010 aaa0 のコントロールバイトを送ります。aaaはチップアドレスです。
       次に、アドレス上位、アドレス下位バイト、を送ります。ここまでは、書込みと同じです。
       次に 1010aaa1 の読み出し用コントロールバイトを送ります。 応答を受け取ったらデータ受信を待ちます。データを受け取ったら NACK を返し、最後にストップコンディションを送ります。

    8. 連続データ受信
      バイトデータ読みだしと同じです。データを受け取ったとき ACK を返すと、次のデータを送ってきます。最後のデータを受け取ったら NACK を返し、最後にストップコンディションを送ります。