Time-stamp: <02/09/21 03:43:28 kawasan>

ATMEL PROM のマイコンからの書き込み検証 (Xilinx向け)

概略

ATMELFPGA Configuration Memory (以下、PROMと表記) は、ALTERAやXilinx等のFPGA(RAM型)にも使用することが 可能なFPGAプログラムを格納するFLASHメモリ型のPROMです。フラッシュ なので何回でも書き込みが出来ます。電源系も+3.3V/+5Vの兼用なので どちらのシステムでも動作OKです。便利ですねー。でも、一般では 入手出来ないかも。(^^;
通常はWindowsな環境からパラレルポート 経由で書き込み装置(製品版もありますが手作り可能)を 使って書き込みます。 書き込みアプリケーションは無料で ダウンロード(CPSINSTALL.EXE) 可能です。デバイスさえ 手に入れられれば結構使えるかもしれません。
Windows以外にもマイコンからも書き込みが可能です。 ATMELではマイコンからPROMに書き込むC言語 ソース(AT17C8515.ZIP) を公開してある。そこで実際のマイコン動作を おこなう前に予備実験としてLinuxからの書き込みが可能かの 検証をおこなう。これは、その検証レポートです。

準備

Linuxから書き込みをおこなうので、CPSにて使用するパラレルポート接続の 書き込み治具を使用する。 また、公開されているC言語ソースも取得する。

今回は、SPRTAN(XC30)をターゲットとしています。また、PROMの設定としては、 RESETは負論理となります。 使用したPROMは、AT17LV010 で、1M品です。対象になるFPGA向けの必要 サイズより大きいですが使えます。パッケージ形状は、8pin-SOPの親戚みたいな 8pin-LAPとかいうものでリフロー処理でしか半田付け出来そうに無いものです。 今回は無理矢理ICソケット(8pin-DIP)経由でジャンパー結線しました。(^^;
写真の中央やや右寄りの黒い物がPROMです。

結果

ちょこちょこといじっ(備考1)て完成。動作もしました。WAIT処理を入れて いるので全体の終了までの時間が結構かかってしまっています。 なので、速度優先にしたいなら外して動作させましょう。多分OKなはずです。

PCカードの実装部品として検討中の模様です。 今回は、基板からジャンパーで一旦8pin-DIPのICソケット経由してATMEL PROMに 繋いでいます。右下のは手作りの書き込み装置です。(^^;

Windows(CPS)からのPROMへの書き込み波形(最初のところのタイミング)
DBITは意味無しです。

LinuxからのPROMへの書き込み波形(最初のところのタイミング)
DBITは意味無しです。

実現方法

ソース を取得し、解凍したら、
$ make
し、rootにて
# make sid
としてツールの準備をします。(iopermを使用している為)

実際の書き込み動作は以下の様にします。入力ファイル名、出力ファイル名は固定です。
入力ファイル名 xilinx.bst ← これはCPS(備考2)にてMCSファイル(備考3)からコンバートして得たファイルです。
出力ファイル名 xilinx.bit ← マイコンとかで利用する時の為に使えるバイナリデータファイルです。
$ atmel_prom_wr
LinuxからのATMEL_PROM書き込みの総時間は、2分8秒(手計測)でした。

備考

  1. なぜか、ProgramResetPolarity.cとVerifyResetPolarity.cにて0x20000を指定するばずが、0x00002を指定していた。修正して対処。
  2. MCSファイルは、Xilinxで使用するFPGAプログラムのファイル形式の一つです。
  3. CPSは、Windowsな環境で使用している書き込みアプリケーションのことです。