CQ出版のキットではなく、INTELの評価キットとterasICのUSB Blasterでの書き込み確認でハマりました。
中華の廉価版USB Blasterでトライした時にはあっさり諦めてしまい、INTEL純正はあまりにも購入ハードルが高いのでterasICの純正互換で書き込みトライでのことです。
ドライバは一応難なく?インストールしてFPGAプログラマーソフトからも認識しています。
でも書き込もうとすると失敗しました。
あれこれ調べてみるとUSB Blasterの設定周波数を変更してたら?っていう記事を発見しました。
Quartus Prime Liteの無償版の場合は、コマンドプロンプトからの実行ということで、
Quartus Prime Liteの無償版の場合は、コマンドプロンプトからの実行ということで、
"jtagconfig"というコマンドを打ち込むのですが、
1) USB-Blaster [USB-0]
Unable to read device chain - JTAG chain broken
と出てきて周波数設定することは出来そうになくて暫く固まってました。
その後、このエラーが出ている時にどうしたらいいの?っていうのを検索すると、FPGA基板側の電源を入れてからUSB BlasterをPCに接続すれば良いという記事を見つけて、試してみると無事に書き込み出来るところに到達しました。
書き込んだソフトはCQ出版のサンプルのLチカで何の捻りもありません。
今回は元々、CQ出版のMAX10実験キットで学ぶFPGA&コンピュータで扱っているMTG-MAX10-FB-FというMAX10ボードをMTG-MAX10-JB-Fという専用のUSB Blaster互換の書き込み装置に依存しないことを目的にJTAGで普通に書き込めるようになりたかったのですが、ずいぶんハマりました。
現時点ですとボードに電源が入ってないとUSB BlasterがDevice Chainを正しく認識出来ない通信手順になってしまいますので、MTG-MAX10-FB-FとUSB Blasterだけ接続したのでは、電源シーケンスが手順から外れてしまい認識しません。
これを回避するためには、MTG-MAX10-FB-Fにあらかじめ電源供給しておいて、それからUSB BlasterをPCとUSB接続させる必要があります。これで本当にちゃんと動作するかどうかは後日検証予定です。
とは言え、今回の結果からするともしかしたら中華USB Blasterもまだリトライする価値はありそうです。
今回試したのはインテルのMAX10 FPGA評価キットです。
CQ出版のタイプより少し高いですが、Arduino UNO互換っぽいピンも出てますし、電源もミニUSB給電になっているので、USB Blasterを使って普通に書き込みできます。
お値段もCQ出版社のやつより少し高いですが、FPGAのキットとしてはお手軽の部類かと思います。
PICの値段を考えるとFPGAで粘る必要があるのかどうか微妙な気分もしますが、用途によってはスピードがまるで違うのでなんとか自分の中での選択肢の一つに出来るように頑張りたいところです。