【備忘録】Xilinx(現AMD)のFPGAのUSBドライバートラブルの解決

 諸事情によりFPGAの勉強をしなければならなくなり、AliexpressでMicroPhaseという中国企業の「A7-Lite」というボードを購入した。ボードのメーカーは中国だが載っているチップはXilinx(現在はAMD)のチップで、AMD提供のツールであるVivadoで開発することができる。

 しかし、届いたボードをパソコンにつなげてもVivado側で認識できず、プログラムの書き込みができない。あれこれやってみた結果、USBドライバの問題であることが分かった。
 以前USBからSPI通信をするためにFT232Hというボードを試したことがあり、このときFTDI製チップに対してlibusbkというドライバインストールしたが、おそらくFPGAのJTAGチップに対してもそのlibusbkというドライバが適用されているせいで正常な動作をしなかったようである。

 しかし、ドライバを元に戻せばいいだろうと思ってZadigを使ってインストールしたり、Vivado付属のdigilentドライバをインストールしたりしても相変わらず認識されない。どうやら利用できるドライバが複数ある場合、インストールしなおすだけでは自動で適用されず、手動で指定する必要があるようだ。手順は以下のとおりである。


デバイスマネージャで目当てのデバイスの「ドライバーの更新」
コンピューターを参照してドライバーを検索
コンピューター上の利用可能なドライバーの一覧から選択
USB Serial Converter選択

この記事を書く直前に諸事情でOSを入れなおしてるためスクショには2種類しか表示されていないが、トラブル解決当時は5種類ほどドライバがあった。USBドライバはインストールすることはあっても、あるドライバの中から一つを選ぶということはこれまでしたことがなかったため解決法を見つけるまでかなり時間がかかってしまった。
 ちなみに、VivadoのインストールフォルダにはdigilentのためのUSBドライバがあり、それのドライバをあてるとdigilentデバイスとしてデバイスマネージャーに表示されるが、Vivadoと接続するためには「USBシリアルコンバーター」として認識されなければならないし、そのために必要なドライバはFTDI D2XXドライバーである。

この記事が気に入ったらサポートをしてみませんか?