プロジェクト休止中

2001.3.18

なぜSmartMediaをコンフィグに使う?

 SpartanIIはSRAM構成のFPGAで、外部にコンフィグレーション回路を必要とします。
 XC2S200にもなると2MBitの容量が必要で、Xilinxの専用FlashROMではFGAと同じくらいの価格となることがあり、非常に高価です。(参考価格 XC18V02 = \4,400)
 一方、デジカメなどで仕様されるSmartMediaは、順調に普及と大容量化がすすみ、8MBの少容量のものは、一部の店では捨て値で販売されています。(参考価格 8MBytes=\470)
 当然そのままではコンフィグレーション用ROMとしては使えませんが、数百円の安価な1チップマイコンを組み合わせば、コンフィグ用ROMとして流用できます
 また、SmartMediaの容量は大容量のため、余りの部分をデータ用ROMとして使用することが可能です。

コンフィグ用CPUの条件と選定

コンフィグ用CPUの条件と適当だと思ったマイコン一覧

 当初、コンフィグ制御用マイコンとSmartMediaをモジュール化してしまい、コンフィグROMと置き換えるようにした方が扱いやすいと考えていましたが、スマメと制御マイコンは切り離して考えることにしました。
 なぜなら、クロック供給可否、SmartMediaをデータROMとして使用/未使用、高速コンフィグの要/不要など、FPGA側のアプリケーションの仕様により、最適なマイコンの条件が変わってくるためです。
 たとえば、1MHz〜12MHzのクロックがボードから供給可能で、A/Dコンバーターを使用するアプリケーションでは、H8 3664Fなど比較的高性能が適しているかもしれません。
 一方、適当な周波数のクロック供給は不可で、FPGAに高性能なCPUをIPとして組み込むケースでは、コンフィグだけ出来ればよいので安価なAVR AT90S1200-4などが最適かもしれません。

 そこで、CPUは特定せず、より多くのCPUとモードに対応するために、汎用性を高くします。
 具体的には
  ・SmartMediaのアクセス/コンフィグのプロトコルを簡素化する。
  ・制御プログラムはC言語で記述し、ライブラリを使用しない。
  ・ハードウェア依存部を簡素化し、カスタマイズを容易にする。
 など

SmartMediaのフォーマット

 SSFDCフォーラムから、SMILというSmartMediaを正規の論理フォーマットで使用するためのソースリストが入手できます。
SMILとDOS FATアクセスを行えれば、PCから書き込んだファイルを扱えますが、コードは大きく、必要RAM容量はSMILだけでも6Kbytes程度も必要なため、安価な1チップマイコンで扱える規模ではありません。
 そこでDOSファイルのアクセスはあきらめて、独自フォーマットで使用します。

 SmartMediaでは、工場出荷時の不良Blockを持っており、ECCによるエラー訂正も推奨されているため、不良発生が前提となっています。
 そこでデータ書き込み時にPCから不良部分の検出を行い、ページ毎に設けたフラグに状態を書き込んで、不良のあったページをスキップするようにします。
 読み出し時にはCPUがフラグを判定して、読み飛ばし処理を行います。

メディアの加工

 SmartMediaは通常専用ソケットに差し込んで使用しますが、下記の理由からソケットの使用は不向きです。
 ・ソケットの分だけ余計なコストがかかる。(参考価格\350)
 ・大きなスペースが必要
 ・ソケットは2.54mmピッチではなく、ユニバーサル基板への半田付けに向かない

 独自フォーマットで扱うため、ソケット形状にこだわる必要はありません。
 そこで、SmartMediaそのものを扱いやすい形に加工して使うことにします。
 1.端子以外のタブ部分を、すべて切り落としてしまう。
  ※2チップ構成のSmartMediadaには適用できません。
 2.2.54mmピッチのヘッダーピンを半田付けする。

 こうすれば、24pin幅広DIPタイプICと同程度のサイズになり、コネクタには2.54mmピッチのヘッダピンが使用できます。