プロジェクト休止中
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ピッチのヘッダピンが使用できます。