RXマイコンをUSB-JTAGアダプタにしよう!
RXマイコンって、USBがついていて、内蔵SPIモジュールとかあるし、メモリもいっぱい積んでいて、しかもCPU自体が高速ですよね。
これはUSB-JTAG用のマイコンにぴったりだと思い、「RXマイコンをUSB-JTAGアダプタにしよう!」という企画を考えました。
苦労と努力の末、できました!
この装置で使っているRXマイコンボードは「RaXino-i(ラクシーノ・アイ)」です。RaXino-iはmbedと同一形状のコンパクトなRX63Nマイコンボードです。
※この試作機にはUSB-BlueToothアダプタも乗っていますが、まだ使われていません
このRaXino-iの汎用ポートの「PORTE」から、TCKやTMSといったJTAG信号を引き出してきて、FPGAボードのJTAG端子につないでいます。そして、スキャン!
このとおり、FPGAの端子の状態が見えました。
なお、ターゲットのFPGAは、XILINXのXC6SLX45-3CSG324Cで、バウンダリスキャンレジスタは1122ビットの長さがあります。このFPGAに、RX-USB-JTAG経由でBitStreamを書き込んでみると17秒でした。まぁ、待てる範囲でしょう。
このFPGAにSPI ROMを接続して、同じFPGAのBitStreamをJTAG経由で間接的に書き込んでみると2分30秒でした。ベリファイは1分54秒。1日1回くらいの作業なら耐えられるレベルでしょうか。また、バウンダリスキャンでのロジアナをやってみると、サンプリング間隔は14msでした。全体的にあまり速くはありません。
次に、このRX-USB-JTAGで、別のRXマイコンをデバッグしてみることにします。
右のRX63Nボード(水色のボード)をUSB-JTAGにして、左の緑のボード(究極のRX62Nボード)につなぎました。
で、バウンダリスキャン!
このとおり、ターゲットになったRX62Nの端子の状態も丸見えです。ロジアナを走らせてみると、
ちゃんと波形も見えました。サンプリング間隔は7ms。RX62Nのバウンダリスキャンレジスタ長は357ビットと短いので、FPGAの倍の速度が出ています。
最後に、RX63NをUSB-JTAGアダプタにして、RX62NをJTAGデバッグしてみました。
やっぱり、ちょっと重いです。![]()
なお、このプログラムはJ-Writer用に書いたものをRXマイコンに移植したものです。だから、上の図では「J-Writer」と出ていますが、実際にはRX-USB-JTAGです。
プログラムはC言語で書いて全く最適化とかしていないので、速度に関してはちょっと遅いのですが、78Kマイコンと比べると圧倒的な速さです。78Kマイコンでハンドアセンブルしてキッチキチに最適化したものよりもRXマイコンでへろへろへ~と書いたほうが速いのです。そんなものですね。
このRX-USB-JTAGのプログラムは明日無料で公開します。「RaXino(ラクシーノ)」や、「RaXino-i(ラクシーノ・アイ)」、それから「究極のRX62Nボード」をご利用のお客様は無料でダウンロードしていただけるようにします。
さて、JTAGのケーブル側はこれでよいとして、パソコン側のソフトはどうするのかという問題があります。そこは、J-Writerのソフトウェアが利用できたり、MITOUJTAG Airが利用できたりするようにします。
つまり、特電のRXマイコンボードをお持ちの方は、そのRXマイコンボードをJTAGアダプタにして、追加の費用なしに、FPGAやCPLDに書き込んだり、FPGAの端子のスキャンができてしまうようになるというわけです。
こういうことができるRXマイコンボードは特電製品以外にありません。他社のボードはUSB-JTAGにはなりません。
特電は、漠然と評価ボードを作って売るだけではなく、そのボードをお買い求めいただいたお客様に末永く使ってもらえるような実用的なアプリも一緒に提供したいと考えています。その考えを具体化する最初のステップがこのUSB-JTAGなのです。お客様に「特電の製品を選んでよかったな」とちょっとでも思っていただければ嬉しいです。
RX62NのRaXinoは在庫はあと2台です。RX63NのRaXino-iの在庫はもう少しありますが、年末までは持たないと思います。
速度に関しては、文字列の16進数と2進数の変換ルーチンとか、そういうくだらないところが時間を食っているようなので、いずれ劇的に改善できるのではないかなと楽観視しています。
| 固定リンク







コメント