USB Blaster互換機でLongan Nanoのデバッグ環境構築
最近はATmegaはちょっとお休みしてLongan Nanoでいろいろ遊んでいますが、どうしても原因のわからないバグに遭遇し、デバッガを使いたいと思うことがありました。PlatformIOのページを見ると、USB Blasterが使えるとの記載がありますが、Intelの正規品はけっこういいお値段なので、Amazonなどで安価に売られている互換品をポチってみました。今回は“HuaChongChong”というセラーの物(Amazon発送)を購入しましたが、すでに扱いがなくなっているのか商品ページのリストからは消えていました。同じ商品に見えて、セラーごとに中身が微妙に違ったりする可能性があるのでわかりにくいですね。

この手の製品は、一見同じように見えても中身は様々なようで、今回購入したものはPIC18F14K50を搭載していました。これはおそらくOJIKA様のサイトで公開されているものと同様なもの(パクった?)だと思われますが、OJIKA様の開発されたものはCQ社のMAX10のキットに含まれているMAX10-JBのベースにもなっており、信頼性が高いものであると考えられます。いっぽう、他のマイコンが搭載されているものあるようで、その中にはうまく動作しなかったという報告が見られるものもありました。(写真は今回購入したものの内部。の左の石がPIC, 右の石はレベルコンバータと思われる74LVC244Aです。)

とりあえずきちんと認識されるかどうかのテスト、ということで、IntelのサイトからQuartus Primeをダウンロード、インストールしてみました。接続してみると自動的にデバイスドライバが組み込まれ、プログラマからも認識されているので、特に問題はなさそうです。

PlatformIOのデバッガはOpenOCDと呼ばれるものを使用していますが、Intelの標準ドライバではこちらから認識されないので、Zadigを使用してドライバをlibUSBに差し替える必要があります。ただ、これを行うと当然のことながらIntelのプログラマからは認識されなくなるため、CPLDやFPGAの書き込みに使いたい場合には後述の方法でドライバを元に戻す必要があります。

PlatformIOでプロジェクトを開き、platoformio.ini で次のように設定を行います。
これで準備は完了です。デバッガを開いて(左端のツールバーから虫のアイコンをクリック)、メニューの「デバッグの開始」でデバッグが開始されます。

他のデバッガと同様、ステップ実行、ブレークポイントの設定、式のウォッチ、レジスタ・IOの状態表示、メモリダンプなどが可能です。ただ、ステップ実行は1ステップ進むのにかなり時間がかかります。本物のUSB Blasterを持っていないので、この製品の処理速度が遅いせいなのか、もともとこんなものなのかはわかりませんが…。

最後に、Intelのドライバへの戻し方を書いておきます。デバイスマネージャからドライバの更新→コンピュータを参照してドライバを検索→コンピュータ上の利用可能なドライバ一覧から選択、と進むと、このように互換性のあるドライバがいくつか表示されるので、Altera USB Blasterを選べばOKです。

通常の開発作業を行う場合、画面表示やシリアルポートのモニタで何とかなる場合が多いと思いますし、そのほうが効率的な場合も多いかとも思います。ただ、他人の開発したプログラムの動作でわからないところがあるときなどにはこのようなJTAGデバッガも重宝する場合もあるかと思います。低コストでデバッグができるようになるので、必要な方は検討してみてはいかがでしょうか。
左が私が購入した商品ページ。ある意味ガチャですね。MAX10-JBという互換基板が右側の書籍にふくまれていますが、こちらは別途部品購入と組み立てが必要です。

この手の製品は、一見同じように見えても中身は様々なようで、今回購入したものはPIC18F14K50を搭載していました。これはおそらくOJIKA様のサイトで公開されているものと同様なもの(パクった?)だと思われますが、OJIKA様の開発されたものはCQ社のMAX10のキットに含まれているMAX10-JBのベースにもなっており、信頼性が高いものであると考えられます。いっぽう、他のマイコンが搭載されているものあるようで、その中にはうまく動作しなかったという報告が見られるものもありました。(写真は今回購入したものの内部。の左の石がPIC, 右の石はレベルコンバータと思われる74LVC244Aです。)

とりあえずきちんと認識されるかどうかのテスト、ということで、IntelのサイトからQuartus Primeをダウンロード、インストールしてみました。接続してみると自動的にデバイスドライバが組み込まれ、プログラマからも認識されているので、特に問題はなさそうです。

PlatformIOのデバッガはOpenOCDと呼ばれるものを使用していますが、Intelの標準ドライバではこちらから認識されないので、Zadigを使用してドライバをlibUSBに差し替える必要があります。ただ、これを行うと当然のことながらIntelのプログラマからは認識されなくなるため、CPLDやFPGAの書き込みに使いたい場合には後述の方法でドライバを元に戻す必要があります。

PlatformIOでプロジェクトを開き、platoformio.ini で次のように設定を行います。
upload_protocol = altera-usb-blaster
debug_tool = altera-usb-blaster
これで準備は完了です。デバッガを開いて(左端のツールバーから虫のアイコンをクリック)、メニューの「デバッグの開始」でデバッグが開始されます。

他のデバッガと同様、ステップ実行、ブレークポイントの設定、式のウォッチ、レジスタ・IOの状態表示、メモリダンプなどが可能です。ただ、ステップ実行は1ステップ進むのにかなり時間がかかります。本物のUSB Blasterを持っていないので、この製品の処理速度が遅いせいなのか、もともとこんなものなのかはわかりませんが…。

最後に、Intelのドライバへの戻し方を書いておきます。デバイスマネージャからドライバの更新→コンピュータを参照してドライバを検索→コンピュータ上の利用可能なドライバ一覧から選択、と進むと、このように互換性のあるドライバがいくつか表示されるので、Altera USB Blasterを選べばOKです。

通常の開発作業を行う場合、画面表示やシリアルポートのモニタで何とかなる場合が多いと思いますし、そのほうが効率的な場合も多いかとも思います。ただ、他人の開発したプログラムの動作でわからないところがあるときなどにはこのようなJTAGデバッガも重宝する場合もあるかと思います。低コストでデバッグができるようになるので、必要な方は検討してみてはいかがでしょうか。
左が私が購入した商品ページ。ある意味ガチャですね。MAX10-JBという互換基板が右側の書籍にふくまれていますが、こちらは別途部品購入と組み立てが必要です。
- 関連記事
-
- Sipeed Longan NanoでFONTX2形式のフォントを利用する (2020/02/12)
- USB Blaster互換機でLongan Nanoのデバッグ環境構築 (2019/12/07)
- Sipeed Longan Nanoで文字を表示してみる (2019/11/10)
スポンサーサイト
tag : マイコンSipeedLonganNanoUSBBlasterPlatformIOGD32RISC-Vデバッガ