USB Blaster(互換品)のトラブル??
AlteraのFPGAプログラミングツール(ダウンロードケーブル)であるUSB-Blaster(実はTerasic社製の互換品)を使用しているのだが、ある日突然ダウンロードケーブルとして認識されなくなる、というトラブルに直面した。
それはUSB-Blasterを接続したら、”新しいハードウェアがみつかりました”というメッセージとともにドライバのインストールダイアログが開く、という現象。
あれ?ドライバはインストール済みで使えていたはずなのに・・・と思いつつUSB-Blasterのドライバが格納されているフォルダを指定してインストール継続・・・と思いきや、なぜか”USB-Serial ポート”として認識されてしまう。
当然、ダウンロードケーブルとしては全く機能してくれない。
昨日までは使えていたのに、いったい何故?
原因は意外なところ(そんなに意外でもないか)にあった。
最近開発したボード(画像処理系で、FPGAとUSB-Serial変換デバイス搭載)のデバッグ時にあるミスをしてしまったのがどうやら原因とみた。
そのボードのUSB-Serial変換デバイスには、メジャーなFTDI社のものを実装しているのだが、そのデバイスは初めて電源を投入したときに必ず動作モード等の設定をする必要がある。設定内容としては、BUS Powerd/Self Poweredの別や消費電流値、ベンダーIDやプロダクトIDなどなど。この作業にはFTDI社が提供してくれるFT Progというツールを使用する。
実は、USB-Blaster(Terasic社製)もFTDI社のUSB-Serial変換デバイスが使われている。
察しの良い方はすでにぴんと来ていると思う。
そう、ボード上に実装されているデバイスの設定を行うつもりが、なんらかの拍子にUSBケーブルで繋ぎっぱなしにしてあったUSB-Blaster上のUSB-Serialデバイスに、思いっきり設定を書き込んでしまった、ということである。それをやらかした当日はなぜだか終日USB-Blasterとして使えていたので気がつかなかったのだ。(PCを再起動しなかったからか?そういうものなのかな?)
次の日にPCを起動したとき、いつもどおりUSB-Blasterが繋げられたままの状態だったのだが、いきなり”新しいハードウェアが見つかりました”と表示、しかもどうやっても”USB Serialポート(COM)”としてしかドライバが入らない、という状態に陥ってしまったわけである。
幸いなことに、複数のUSB-Blasterが手元にあったため、別のものを繋いでみると正常にUSB-Blasterとして認識された。
前述のFT Progを起動してUSB-Blasterの設定内容を確認してみると、正常に認識されるものはきちんとVendor IDがAltera、Product DescriptionがUSB-Blasterになっている。一方、正しく認識できなくなったものは、Vendor IDがFTDI、Product DescriptionがUSB Serial(COM)になっていた。これで原因がはっきりした。やはり間違ってUSB-Blaster上のデバイスに設定を行ってしまったのだ。
ここまで分かればあとは簡単だ。
正常に認識されるUSB-Blasterの設定内容を参考にして、ダメダメになった方の設定を修正すればいい。二度と同じ過ちはしないと思うが、自戒の念を含めて正しい設定内容をメモしておくことにする。
あとは、この設定内容を間違いなくUSB-Blaster上のFTDI社のデバイスにプログラムするだけ。
その結果、無事にUSB-Blasterとして認識され、いままでどおり使えるようになった。ほっと一安心だ。