基本的な選別

anago で正式対応してないデバイスを見つけたら、データシートを見てください。データシートで確認する事項は下記です。

am29f040b_00.pngw49f002_00.png

databus が 8 bit

(画像A)

この項目はデータシートの題名に入ってるでしょう。 xxxK x8 CMOS flash memory の x8 に注目してください。PIN CONFIGURATIONS に DQ0 から DQ7 まであれば大丈夫です。

5V programming support

(画像B)

この項目はデータシートの先頭に書いてあるはずです。古い flash memory は書き込みに 12V が必要なものがあり、それは対応できません。

command address の address 幅

am29f040b_01.pngw49f002_02.png (画像C)

command codes for xxxxx の欄外に address format: A14-A0 などと書いてある箇所がとても重要です。A14-A0 もしくは A10-A0 のものが使用可能です。

物理形状

DIP が最も配線しやすいですが、正しく配線すれば SOP や QFP でも使用可能です。

flashdevice.nut を追加する

既存の項目を参考にしてください。設定する項目はデータシートをよくよんで正しく追加してください。

capacity

  • 型: 整数
  • 単位: byte

デバイスの容量を記載します。カートリッジの管理容量は記載しないでください。

pagesize

  • 型: 整数
  • 単位: byte

software data proctection の項目に 0x5555:0xaa, 0x2aaa:0x55, 0x5555:a0 のあとに連続に書き込める数が記載されています。ファームウェアでは 1 から 0x100 まで対応しています。

余談ですが、この値が大きいほど転送速度があがります。

erase_wait

  • 型: 整数
  • 単位: mS

DC CHARACTERISTICS の write cycle timing parameters の項目に erase の待ち時間が書いてあります。書いてないデバイスは動かしてみての値をいれてあります。

erase_require

  • 型: bool
  • 単位: なし

programming の説明の箇所に「データを 1 から 0 にする。 0 から 1 にできるのは erase のみ。」といった記載があれば true, なければ false にしてください。

pagesize が 1 の場合は erase_require は true の傾向が多いです。

w49f002_01.png

id_manufacurer, id_device

  • 型: 整数
  • 単位: なし

profuct identification の項目に値が書いてありますので記載してください。この値を得る方法はソフトウェア側ハードウェア側共にデバイスによってばらばらなので現在の実装では確認できません。