« 2012年10月 | トップページ | 2012年12月 »

2012.11.30

RaXino-iを使ったUSB-JTAGの作り方

昨日、RaXino-iをUSB-JTAG化するプログラムをリリースしましたが、肝心の接続方法を書いていませんでした。

RaXino-iで作るUSB-JTAGの結線図は次のようになります。

Raxinoijtag

JTAG信号はポートのPORTEから出てきます。

  • PE.1 … CLK
  • PE.2 … TMS
  • PE.3 … SRST (CPUのリセット信号)
  • PE.4 … INIT (汎用I/O)
  • PE.5 … TRST (JTAGのTAPリセット信号)
  • PE.6 … TDI
  • PE.7 … TDO

※究極のRX62Nボードや、RaXinoを使う場合には、同様にPORTEとAN5に接続してください。

SRSTとINITとTRSTは、CPUのバウンダリスキャンを行うときに使います。
ターゲットボードの電源電圧Vrefは、アナログ入力のAN5に入れます。

これだけのことで、RaXino-iがUSB-JTAGになります。

Rxjtag_topRxjtag_bot

※上の写真ではBlueToothが乗っていますが、まだ使われていません。

USB-JTAGになったら、次に必要なるのはソフトウェアです。

このブログをご覧のお客様に、出血大サービスしてしまいます。
なんと、RaXino-iがJ-Writerになってしまうソフトウェアを期間限定で無料でお配りすることにしました。ただし、2012年12月7日までの期間限定で、特電のRXマイコンボードをお買い上げいただいた方のみのサービスとなります。

J-Writerソフトウェア Version 1.1 (平成24年11月30日) をダウンロード

※このダウンロードリンクは12月7日に使えなくなります。

J-Writerソフトウェアは、下記のFPGAやCPLDに書き込みができます。

  • XILINX: XC9500/XL Spartan2/2E Spartan3/3E/3A Virtex2/2Pro Virtex4 Virtex5  XC18V00 XCF00S XCF00P CoolRunner2 Spartan-6
  • ALTERA: MAXII Cyclone Cyclone2 Cycloe3 FLEX10K ACEX1K ArriaGX
  • LATTICE: XP2

また、XILINXのFPGAに接続されたSPI ROMに間接的に書き込むこともできます。

Rxjwriter

J-Writerを使うと、MS-DOSプロンプトからコマンド起動して、FPGAやCPLDに簡単に書き込みができます。

このソフトを無償配布するのは12月7日までです。どうぞお早めに。
RaXino-iの製品情報については下記のWebページをご覧ください。

http://www.tokudenkairo.co.jp/raxinoi/

【使い方】

使い方を簡単に説明します。

  • jwriter -detect
  • 接続されたJTAGデバイスを発見します。

  • jwriter -auto ファイル名
  • JTAGデバイスに書き込みます。

Rxjwriterusage

こんな感じで、XILINXにもALTERAにも書き込めます。

| | コメント (0)

2012.11.29

RXマイコンで作るUSB-JTAGをリリースします

RXマイコンで作るUSB-JTAGアダプタが、ついにできました!

このプログラムは

 ① RXマイコンで動くプログラム
 ② WindowsPC上で動くプログラム

の2つの部分に分けて提供されます。

まず、RXマイコンで動くプログラムは下記のリンクからダウンロードしてください。

これらのプログラムを評価ボードに書き込んでください。

次に、Windows PCで動くコントロールソフトウェアですが、本日の昼の時点ではMITOUJTAGが対応しました。

これをダウンロードして、中にあるexeを実行すると、MITOUJTAGが更新されて、RX-USB-JTAGが使えるようになります。5000円のバウンダリスキャンソフト「みえたジェイ」も対応できると思います。

ためしに、手近にあったCyclone2の評価ボードのFPGAに書き込んでみたところ、問題なく書き込みができました。ちゃんとLEDがチカチカします。

Rxusbjtagcy2

Rxusbjtagcyclone

上のパッチはMITOUJTAG本体を持っていないと使えません。

今夜には、J-Writerのソフトウェアを、RX-USB-JTAGに対応して、いろいろなFPGAやCPLDに書き込むコマンドライン版のツールをリリースしようと思います。J-WriterソフトウェアはMITOUJTAG本体はいらないので、つまりRXマイコンボードがあれば、各社のFPGAやCPLDに書き込みができるようになるわけです。

一人でも多くの人が、JTAGやバウンダリスキャンを使って回路設計を楽しめるようにするのが、私の使命だと感じています。

ご質問やご意見があれば、当ブログのコメントや、特電掲示板に書き込んでください。返信率120%です。

| | コメント (0)

RXマイコンをUSB-JTAGアダプタにしよう!

RXマイコンって、USBがついていて、内蔵SPIモジュールとかあるし、メモリもいっぱい積んでいて、しかもCPU自体が高速ですよね。

これはUSB-JTAG用のマイコンにぴったりだと思い、「RXマイコンをUSB-JTAGアダプタにしよう!」という企画を考えました。

苦労と努力の末、できました!

この装置で使っているRXマイコンボードは「RaXino-i(ラクシーノ・アイ)」です。RaXino-iはmbedと同一形状のコンパクトなRX63Nマイコンボードです。

Rxusbfpga

※この試作機にはUSB-BlueToothアダプタも乗っていますが、まだ使われていません

このRaXino-iの汎用ポートの「PORTE」から、TCKやTMSといったJTAG信号を引き出してきて、FPGAボードのJTAG端子につないでいます。そして、スキャン!

Rxusbfpgascan

このとおり、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マイコンをデバッグしてみることにします。Rxusbrx

右のRX63Nボード(水色のボード)をUSB-JTAGにして、左の緑のボード(究極のRX62Nボード)につなぎました。

で、バウンダリスキャン!

Rxusbrxscan

このとおり、ターゲットになったRX62Nの端子の状態も丸見えです。ロジアナを走らせてみると、

Rxusbrxlogana

ちゃんと波形も見えました。サンプリング間隔は7ms。RX62Nのバウンダリスキャンレジスタ長は357ビットと短いので、FPGAの倍の速度が出ています。

最後に、RX63NをUSB-JTAGアダプタにして、RX62NをJTAGデバッグしてみました。

Rxusbrxice

やっぱり、ちょっと重いです。


なお、このプログラムは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進数の変換ルーチンとか、そういうくだらないところが時間を食っているようなので、いずれ劇的に改善できるのではないかなと楽観視しています。

| | コメント (0)

2012.11.26

MITOUJTAGにALTERAのバウンダリスキャン定義をいろいろ追加

MITOUJTAGでALTEARの比較的最近のデバイスがバウンダリスキャンができるよう、デバイスデータベースの更新ファイルを用意しました。

デバイスデータベース更新ファイル

このパッチを適用すると、

・Cyclone3              デバイス追加
・Stratix               デバイス追加
・Stratix2              デバイス追加
・Stratix3              デバイス追加
・Stratix4              デバイス追加
・Arria2                新規ファミリ対応
・ArriaV                新規ファミリ対応
・Cyclone4              新規ファミリ対応
・Cyclone5              新規ファミリ対応
・MAX5                  新規ファミリ対応

の定義ファイルがMITOUJTAGに組み込まれるので、バウンダリスキャンで端子の状態をご覧いただけるようになります。

Altera_bsdl

電源の配置とか、ギガビットトランシーバの配置とかって、芸術センスが求められると思うんです。

なお、私はこれらのALTEARAデバイスを実際に持っていないので、いまから、いろいろ集めようと思います。

デバイス定義更新ファイルは、下記のURLからダウンロードできます

デバイスデータベース更新ファイル

| | コメント (0)

2012.11.25

EZ-USB FX3の転送速度が91MB/secまで行った

以前、当ブログによせられたコメントを参考にして、ファームウェアを書き換えてみました。

いただいたコメントというのは、

DMA Channel のバッファがいっぱいになると、次のバッファに切り替える必要があります。この切り替えにかかる時間が、転送速度が高くなると無視できません。
切り替え時間が見えなくなるようにするには、バッファのサイズをパケットの数倍に大きくしてやります。また、 bulk burst の数を同じく数倍にしてやることで、パケットがまとめて送信されるようになります。

というものなのですが、10回くらい読んでようやく何をすれば良いかがわかってきました。DMAのバッファがいっぱいにならないように増やしてやればよいのです。

で、そのやり方ですが、試行錯誤の末、ファームウェアのcyfxslfifosync.cと、cyfxslfifosync.hをそれぞれ1箇所ずつ書き換えます。

まず、ヘッダファイルのほう。CY_FX_SLFIFO_DMA_BUF_COUNTが(2)になっています。これを(4)にします。

Fx3_4

次に.cのほう。dmaCfg.size = size;となっているところを、dmaCfg.size = size * 16;にします。

Fx3_5

これで、DMAバッファの数が増えて、なおかつバッファの深さも増えるのではないかと思われます。

実際にやってみると、

CY_FX_SLFIFO_DMA_BUF_COUNT = 2の場合
・size*1  16MB/s
・size*2  16MB/s
・size*4  41MB/s
・size*8  53MB/s
・size*16 64MB/s

CY_FX_SLFIFO_DMA_BUF_COUNT = 4の場合
・size*1  21MB/s
・size*2  41MB/s
・size*4  66MB/s
・size*8  92MB/s
・size*16 92MB/s

となりました。デフォルトはCY_FX_SLFIFO_DMA_BUF_COUNT = 2、バッファは*1なので16MB/secしか出ませんでしたが、いろいろ増やすと92MB/secまではいくようになったというわけです。

Fx3_6

この方法で確かに高速にはなりました。USB2.0 HighSpeedをようやく超えられるようにもなりました。しかし、問題が1つあって、パケットがある程度溜まらないと送ってくれないんですね。1024バイトのパケットをXferData()で送ろうとしても16個分溜まらないと送ってくれません。まあこういう問題は簡単に解決できるのでしょうけど・・

さらに高速度を目指すにはどうすればよいのかは全くわかりませんが、この路線でもうちょっと頑張ってみようと思います。

【PR】 特電FX3評価ボードの入手方法はこちら
https://shop.tokudenkairo.co.jp/shopping/detail.php?shpdi=TKDNFX3

| | コメント (4)

2012.11.24

EZ-USB FX3の動作テストを再開

今年の4月にちょこっと実験していたEZ-USB FX3の動作テストを再び行っています。

前回の問題点はUSBの転送速度が遅いということでした。だいたい16MB/Secくらいしか出ませんので、USB2.0以下ということになります。

ブログにいただいたコメントによればDMA Channel の切り替えに時間がかかっているということだったのですが、正直、EZ-USB FX3のファームウェアはお手上げ状態なので、何をどう直してよいのかわかりませんでした。

最近、EZ-USB FX3のSDKが1.2にバージョンアップされていた上、ET2012の会場でうかがった話では速度のの問題も解決されたとのことだったので、試してみたのですが・・

Fx3_1

やはり、転送速度は15~16MB/sec程度。

MITOUJTAGに内蔵されているFPGA内蔵ロジアナで見てみると、1024バイトのデータを受け取った後、長い休みに入っています。きっと、DMAの切り替え時間の待ちなのでしょう。本来ならばここに次のパケットが来ていなければならないと思います。

Fx3_2

やはり、SDK1.0→SDK1.2に入れ替えただけでは、高速化はできませんでした。

まぁ、でも今日の半日、FX3の開発環境と戯れたおかげで、いろいろ思い出してきました。USB Control Centerのバグが取れて、SPI ROMに書き込めるようになったのは大きいと思います。

明日から旅行にでかけてしまいます野で、日曜日の夜に帰ってきたら続きをすることにしましょう。

| | コメント (0)

2012.11.23

MITOUJTAGでDE0-nanoを使う

TerassicさんのDE0-Nanoという評価ボードを買いました。

Cyclone4が乗っていて約1万円の激安評価ボードです。

De0nano_1

このボードをMITOUJTAGで使えるようにしようと思います。

まず、このボードはオンボードでUSB-Blasterが搭載されていて、逆にJTAGコネクタのピンヘッダは出ていません。でも、大丈夫。最近のMITOUJTAGはUSB-Blasterに対応しています。だからケーブルの自動認識でUSB-Blasterと表示されます。(ちょっと格好悪いけど)

De0nano_u

次に、デバイスの自動認識。

残念ならがCycloneIIIのEP3C25F256が認識されてしまいました。どうやら、Cyclone IIIとCyclone IVはデバイスのIDCODEが一緒なのです。何故だー!

De0nano_2_2

しかも、バウンダリスキャンスキャン結果は正しいように思われます。少なくともプッシュボタンスイッチを押すと、回路図どおりのピンが変化するからです。

De0nano_3

謎ですね。

ALTERAのWebサイトから、CycloneIVのBSDLファイルをダウンロードしてきます。それをMITOUJTAGに食べさせると、ちゃんとCycloneIVのEP4CE22F17となりました。

De0nano_4

DE0-Nanoに最初から入っているFPGAのデザインを動かして(つまりケーブルをつないだだけで自分では何も書き込んでいない)、I/O端子の波形も見ることができました。

De0nano_5

LEDがPWMでじわじわ点滅しているので、それが見えています。また、J15番とE1番ピンはプッシュスイッチなので、それを押したタイミングでLレベルになるのも見えています。

つまり、CycloneIIIとCycloneIVは、IDCODEが一緒で、ピンの内部構造が一緒のような気がします。EP3C25F256とEP4CE22F17の間にどのような関係があるのでしょうか??

| | コメント (2)

2012.11.22

Stellaris Launch Padのバウンダリスキャン

ET2012のTIブースで500円でStellaris Launch Padというボードを買いました。

Lp1

TIのLM4F120H5QRというマイクロコントローラが乗っているそうです。Cortex-M4だそうです。

Jp2

ボードを見て見たらTCKとかTDIとか書いていたので、ついカッとなってJTAGをつなげてみました。

Jp3

すると、たしかに何らかのデバイスはみつかるのですが、デバイスIDコードデータベースにないため、genericとして認識されてしまいます。

Jp5

TIのWebサイトを見て見たけれど、LM4F120H5QRのBSDLファイルはありませんでした。仕方がないので、データシートに記載されているJTAGの記述から推測して自分でBSDLファイルを書いてみました。

Jp6

バウンダリスキャンレジスタの並びは推測で書いたので、I/Oの値は正しくは取れていませんが、なんとなく動いているのは確認できました。

Jp4

正しいBSDLファイルが手に入れば、きっと正しくバウンダリスキャンができるでしょう。

| | コメント (0)

2012.11.21

MITOUJTAG Airを公開します

MITOUJTAG Airを公開します

MITOUJTAG Air(みとうジェイタグ エアー)というのは、Webブラウザなどを通じてインターネット経由でJTAGバウンダリスキャンを行い、さまざまなFPGAやCPUを遠隔操作する技術です。下記のURLで公開します。

http://www.tokudenkairo.co.jp/mjair/

現在、私の自宅の窓際に、RXマイコンボードとノートPCをセットして、バウンダリスキャンがいつでもできるようにしています。そして、このパソコンをインタネットに接続して特電のクラウドサーバにつないでいます。

Testequip

皆様のWebブラウザから上のURLを開くと、このパソコン上のMITOUJTAGを遠隔操作して、端子の状態を見たり操作したりできるのです。

端子レベルで操作できるというのがポイントです。だって、見るというだけなら、いまどき遠隔で見えるというソリューションはいくらでもあるでしょう。見るだけなら、オシロの画面でもWebカメラで映しておけばいいんです。

MITOUJTAGならではのポイントは、ハードウェアを端子レベルで遠隔操作できることです。ぜひ、EXTESTをして、端子をいろいろ操作してみてください。

Mjair_1

どこかのどなたかがEXTESTをして端子を操作してくれましたら、上の基板のLEDが点いたり消えたりします。それを見つけたら、私がツイッターでつぶやいてみることにします。

https://twitter.com/nahitafu

えっ、セキュリティ!? 大丈夫です。クラウドサーバの中でリクエストを反射するような仕掛けを作っているので、実際の基板につないでいるJTAGサーバ(上の写真のPC)と、皆様のクライアントPCは直接はつながりません。JTAGサーバは、クラウドとのみ通信します。皆様のPCもクラウドとのみWeb経由で通信します。だから、安心・安全なのです。

今後、このMITOUJTAG Airをどんどん発展させていって、皆様の回路をインターネットで公開できるようなインフラを作って行きたいと思います。

なお、この冬。12月中旬を目処に、MITOUJTAG Lightを期間限定で販売します。今度のMITOUJTAG LightはJTAGサーバになれるようにしたり、いろいろ機能Upを予定しています。

MITOUJTAG Airは下記のURLから入れます。

http://www.tokudenkairo.co.jp/mjair/

ログイン画面では、ユーザ名とパスワードには何も入れずにguestボタンを押して入ってください。

Guest_login

なお、今はまだ2人以上が同時にサーバに接続するとバグってしまうので、動作が変だなと思ったらしばらくしてからまたお越しください。ブラウザを閉じると自動的にログアウトされるのでご心配なく。

| | コメント (0)

2012.11.20

MITOUJTAGにXILINX 7シリーズのデータを追加

MITOUJTAGでXILINX 7シリーズのバウンダリスキャンができるよう、デバイスデータベースの更新ファイルを用意しました。

デバイスデータベース更新ファイル

このパッチを適用すると、

・Spartan-6の後発デバイス
・Automotive Spartan-6
・軍用Spartan-6
・Artix-7 FPGA
・Artix-7 FPGA QPro
・Kintex-7 FPGA
・Kintex-7 FPGA QPro
・Virtex-7 FPGA
・Virtex-7 FPGA QPro
・Zynq-7000 EPP
・Zynq-7000 EPP QPro

の定義ファイルがMITOUJTAGに組み込まれるので、そのままバウンダリスキャンをしていただけるようになります。

ちなみに、私は実際のデバイスは持っていませんが、形だけ表示してみました。

Xil_1

左上から右下に向けて、Automotive Spartan-6、Kintex、Artix、Virtex-7、Spartan-6後発、Zynqです。

次の図は、Virtex-7の一番でかいやつです。きっと高いんでしょうね。

もちろん実デバイスは持っていないので形だけです。なんと1930ピンもあります。

Xil_2

PDFでもどうぞ。

「xq7vx980t_rf1930.pdf」をダウンロード

ここからダウンロードできます

デバイスデータベース更新ファイル

ふだん使うことができないようなFPGAだからこそ、見るだけでも楽しいですね。
明日はALTERAのデータベースを更新したいと思います。

| | コメント (0)

2012.11.19

ET2012出展レポート

14日~16日の3日間、ET2012に出展してきました。

特電ブースはこんな感じでした。(開場前の時間の写真なのでお客様は映っていません)

Et2012_1

今回も、清水の舞台から飛び降りるつもりで自社ブースを構えました。結構な出展料+装飾代でしたが、それに見合った効果はあったと思います。

上の写真にあるように、角部屋で、3つの角には「のぼり」をぶら下げています。この「のぼり」は、パネルよりも持ち運びに便利で、人目を引く効果もあったと思います。

Et2012_2

次回の展示会でものぼりを有効活用したいと思います。

出展物のメインは、なんといってもMITOUJTAG Air。

AndroidのタブレットでMITOUJTAGが動くというものです。

実を言うと、10月にCEATEC2012という展示会に出展しましたが、そのときにもMITOUJTAGを出していました。しかし、CEATECでは全然お客さんが来なくて悩みました。CEATECはブースの小間位置が悪かったというのも原因の一つではあるのですが、やはり小間まで来てくださったお客様も、パソコンで動作しているMITOUJTAGをなかなか見てくれず、触ってくれる人は皆無で、パソコンで動いているMITOUJTAGをみてもふーん、という感じでした。

そこで、暇なCEATECのブースで店番をしながら、繁盛しているブースと閑散としているブースの違いについて考察していたのです。そうしてわかってきたことは、展示物がパソコンで動作していると触りにくいのではないか。心理的に展示物のマウスやキーボードには触りにくいのではないかということです。

そこで、CEATECが終了してから、大急ぎでMITOUJTAGをタブレットPCで動くように開発を始めました。約1ヶ月間、猛烈な勢いで開発し、ET2012の2日前くらいにようやくWebブラウザ上でMITOUJTAGが動くようになりました。

こうしてET2012では無事にMITOUJTAGを出展できたわけです。

結果は大成功でした。タッチパネルの大画面Androidタブレット「FT103」でMITOUJTAGを動かしたものを丸テーブルに載せてブースの入り口の角に置き、また、お客様の手元でも触っていただけるよう小さなタブレット「Nexus7」でも同じ画面を出しました。

Et2012_3

結構な人数のお客様に、バウンダリスキャンで端子の動作が見えるのをご覧いただき、また、手元の端末でI/Oを操作してブースの奥にあるボードのLEDが遠隔でチカチカできるのをご覧いただき、とても驚かれていたようです。

CEATECでの失敗があったからこそ、うまくいったと思います。

なお、このMITOUJTAG Airは、Webブラウザ上で動くので、この展示会で使っていた展示セット一式を現在インターネットにつないでいます。ボードは私の自宅で24時間スキャンしていますので、WebブラウザでMITOUJTAG Airのサイトにつなげれば、このボードをバウンダリスキャンしてSAMPLEやEXTESTをしていただけます。

そのときに必要となるURLと、アクセスIDは、会場でお配りしたMITOUJTAG Airご利用券に記載しております。今はまだguestで入れます。

Mjair_card

なお、展示会場では実際にMITOUJTAGが動作するPCと、クラウドサーバが近かったので、ずっと問題なく動いていたのですが、実際のインターネット環境ではパケットロスが生じると接続が切れるなど、ちょっとまだ不安定なところがあるようで、たまに動作していないことがあるかもしれません。それはおいおい直していこうと思います。

それから、展示会に出てみて改めて決心したのですが、これから先、特電はFPGAやJTAGをメインとしてやっていきます。今年1年はちょっとマイコンに力をいれてしまいましたが、再びFPGAとJTAGに戻ってきたというべきでしょうか。

今年出たZynqはちょっと見送りましたが、来年にはArtixの評価ボードを必ずや出します。

| | コメント (0)

2012.11.13

ET2012のブースセットアップ

今日は、ET2012のブースをセットアップするためにパシヒコへ行きました。

神田でレンタカー借りて、機材一式を詰め込んで横浜まで走りました。

会場に着いたのは15:20分ごろだったので、警備員の人が「ブースの横まで車でいって荷おろししていいですよ」と案内してくれました。こんなところまで入っていいの?という感じです。

Et_setup_1

おかげで遠い駐車場にならなくて済みました。

特電ブースをセットアップしてから、一旦、片付けました。

Et_setup_2

こんな感じのブースになります。

では、皆様、ET2012の特電ブースでお待ちしております。

| | コメント (0)

JTAGの資料を凝縮したものを作りました

ET2012のブースで配る用に、JTAGバウンダリスキャンのしくみを詳しく書いた冊子というかパンフレットを作りました。

これは、以前作ったJTAG小冊子 - 知っておきたいJTAGの基礎知識の内容にいくばくかの訂正と推敲を行い、全12ページ、A4サイズ、フルカラーに凝縮したものです。JTAGに関する知識のエッセンスがぎゅぎゅっと凝縮されています。

さすがにJTAG小冊子に比べると内容は厳選されていますが、JTAGバウンダリスキャンの原理と概要を掴むには十分な内容となっています。

中身(こんな感じ)

Jtagpanf2

実は原稿を書き上げたのが昨日の深夜で、今日の午前0時に印刷屋さんに入稿して、先ほど19時ごろ自宅に届きました。当日発送・当日配達なので、めっちゃくちゃ高かったです。この重い冊子の束を担いで明日、ET2012に向かいます。

特殊電子回路はET2012のF-19番ブースで出展しています。この冊子は特電ブースでお配りしています。300冊作りました。

なお、前バージョンの小冊子、知っておきたいJTAGの基礎知識の販売は終了しました。再販はありません。ただ、前回印刷したものがまだ30余冊残っていて、捨てるのは勿体ないので、MITOUJTAGをお買い上げいただいた方に感謝の気持ちを込めてプレゼントしたいと思います。JTAG小冊子のプレゼントのお申し込み方法はこちらのページご覧下さい。

| | コメント (0)

2012.11.10

スマートフォンからJTAGを使う(1)

スマートフォンからJTAGを使う、そんな馬鹿げた試みがようやく実を結び始めました。

携帯電話の3G回線で通信して、インターネット越しにJTAGバウンダリスキャンを行い、ICの端子の状態を確認しています。

Androidjtag

結構難しい仕組みがうごいているのですが、それを簡単に使えるようにするために苦労してきました。

まず、MITOUJTAG Connectといういわゆる「クラウド」があります。このクラウドに、JTAGサーバと、クライアントがログインし、クラウド内でサーバとクライアントを結びつけることで、どのような端末からでもバウンダリスキャンができるようにしようというものです。

Smapho_jtag_6

JTAGサーバというのは、検査対象ハードウェア(ターゲットボード)にJTAGで実際に接続しているコンピュータのことです。JTAGサーバの上ではMITOUJTAG BASICなどが動いています。

クライアントというのは、人が見たり操作したりするための端末で、Windowsだったり、Androidだったり、iPhoneだったりします。

この方法の良いところは、1つのJTAGサーバを複数のクライアンからで見れることです。JTAGサーバもクライアントも、HTTPだけでアクセスするのでNATやファイヤーウォールなどを容易に通り抜けできます。つまり、会社の中にJTAGサーバがあったとしても、設定を変更したりネットワーク管理者に許可を得なくても使えてしまうというわけです。

このMITOUJTAGの新しい機能を使う手順はおおよそ次のようになります。開発中のものなので、将来的に変更になるかもしれません。まず、手元のパソコンでMITOUJTAG BASICを起動しておきます。このMITOUJTAG BASICでは普通にRXマイコンとか、FPGAとかをスキャンできるようにしておきます。

Smapho_jtag_1

次に、MITOUJTAG BASICのツールメニューの中から「ネットワーク接続」を選択します。

Smapho_jtag_2

すると、次のようなダイアログがでるので、「接続」します。これでMITOUJTAGクラウドネットワークにこのMITOUJTAG BASICが登録されます。

Smapho_jtag_3

次に、Webブラウザを開いてMITOUJTAG WEBSCANのページを開きます。パソコンでも携帯電話でも構いません。

Smapho_jtag_4

サーバ(MITOUJTAG BASIC)につなぐと、サーバ上でスキャンしているICの端子の状態が、クライアント(スマートホン)の上で見ることができ、また、クライアントからサーバのJTAGバウンダリスキャンを遠隔操作することができるようになります。

Smapho_jtag_5

スマートフォンでやった場合、Androidの標準のブラウザで動くので、何もインストールする必要はありません。3G回線経由でも毎秒50fpsくらい出ています。

なお、次は手元にあるAndroid端末から手元にある自分のハードウェアをスキャンするときのやり方を開発しようと思います。

Smapho_jtag_7

すなわち、どこかのサーバ(MITOUJTAG BASIC)につなぐのではなく、クラウド内に容易した「JTAG仮想サーバ」というものを介して、手元のAndroid端末だけでスキャンできるようにしようというわけです。

| | コメント (0)

2012.11.08

MITOUJTAGのパッケージを刷新しました

MITOUJTAGのパッケージ(箱)は、いままで、巨大なA4サイズのものでした。MTOUJTAGが世の中に登場したのは2003年のころで、その頃のソフトウェアの箱といえば大きかったのです。で、MITOUJTAGもそのまま作ってきました。

ですが、最近は小さくなってきて、DVDケースが主流です。

そこで、世の流れに合わせてMITOUJTAGの箱もスリムにしました。

Mjb_package

箱の中にはマニュアルとCD-ROMが入っています。

Mjb_package2

箱のジャケットと中のマニュアルは、オンデマンド印刷の印刷やさんにお願いしています。やっぱり、自分のところのプリンタでやるよりも仕上がりが断然綺麗です。

Mjpmjbman

表紙や中の紙質をいろいろと変えて実験していました。表紙はアートポスト220kg、中身は上質紙70kgに決まりました。

このような感じで、MITOUJTAGはパッケージもだんだん進化していきます。

| | コメント (0)

ET2012に出展します

特殊電子回路は、Embedded Technology 2012(ET2012)に出展します。

http://www.tokudenkairo.co.jp/et2012.html

F-19番ブースなので、XILINXさんの隣の隣になります。

Booth

JTAGというのは、FPGAやCPUについているテスト用端子ですが、本来の目的はICの検査を行うためのものです。この信号を使うと、ICが動いているときの端子の状態(H/L 入力/出力)を、内部回路の状態にかかわらず見たり操作したりすることができるというものです。これを使いやすくしたツールがMITOUJTAGというツールです。

でも、MITOUJTAGは、USBケーブルの範囲内でしか動けませんでした。つまり、作った基板とパソコンは物理的につながなければならないし、操作する人はその前にいなければなりませんでした。

こういう制約があるので、エンジニアは常にパソコンの前にいなければならなかったのです。

その制限をとっぱらい、世界中のどこからでも見えるようにしようというのが、MITOUJTAG Airです。

Cloud

これができれば、世界中のどこからでも、寝ていても、お風呂でも、食事中でも、電車の中でもどこからでも回路の状態を見たり、FPGAのコンフィグを書き換えられます。

それどころか、貴方の回路を(セキュリティーの設定で許可すれば)、世界中の人に公開できるようになります。

Cloud2

こんな馬鹿げたアイデアを、まじめに開発しています。

MITOUJTAG Airの詳しい情報は下記のページをご覧ください。

http://www.tokudenkairo.co.jp/et2012.html

皆様のお越しを心よりお待ちしております。

| | コメント (0)

2012.11.05

大画面Android FT103が文鎮化した でもあきらめない

先日購入した21インチ大画面Androidタブレット「FT103」が先週の金曜日から文鎮化してしまっていたようです。文鎮というには大きすぎる。パネルがテカテカなので鏡台化とでも言ったほうがいいかもしれません。

Ft103bunchin

上のログインの画面までは行くのですが、そこからログインをするには何をやるにしても、重過ぎるのです。指で画面をタッチすると、タッチが認識されるまでに20秒くらいかかります。

つまり何か裏ですごく重いものが走り続けている感じなのです。

このFT103を使っていた特電スタッフによれば、パソコンからADB(Android Debug Bridge)を経由で操作しようとしてもだめだったとのこと。来週のET2012デモ用に使おうと思っていたので、この時期に壊れるのはとても痛いです。

そんなとき、ふと思い出しました。RXマイコンでADBを作って、ADBシェルをUSB仮想COMポート経由で叩けるようにしたアプリがあったことを。

さっそくやってみました。2つあるUSBの片方をUSBホストにしてAndroidにつなぎ、もう片方を仮想COMポートにしてパソコンにつなぎます。次の写真がその様子です。

Rxadb2

まず、RXマイコンでADBプログラムを起動しておいてから、FT103の電源を入れます。USBが動き出すとRXマイコンがADBの接続を認識するので、すかさずlogcatと打ってみます。

Ft103logcat

おおおっ、なにやらlogcatが動き出したですぞ。ログイン画面で固まったとき、ADBのシェルでtopと打ってみると・・

root@android:/ # top

User 1%, System 21%, IOW 0%, IRQ 0%
User 11 + Nice 0 + Sys 134 + Idle 465 + IOW 0 + IRQ 0 + SIRQ 0 = 610

  PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
  324  0  10% D     1      0K      0K  fg root     kworker/u:5
 1294  0  10% D     1      0K      0K  fg root     kworker/u:3
  184  1   4% S    67 547816K  63624K  fg system   system_server
 1342  1   1% R     1   1004K    408K  fg root     top
   73  0   0% S     1      0K      0K  fg root     kworker/u:4
 1253  0   0% S     9 458424K  56480K  fg system   com.android.systemui
 1337  0   0% S     1      0K      0K  fg root     kworker/0:0
    9  1   0% S     1      0K      0K  fg root     ksoftirqd/1
   11  1   0% S     1      0K      0K  fg root     suspend
   12  0   0% S     1      0K      0K  fg root     sync_supers
   13  1   0% S     1      0K      0K  fg root     bdi-default
   14  1   0% S     1      0K      0K  fg root     kblockd
   15  1   0% S     1      0K      0K  fg root     omap2_mcspi
   16  0   0% S     1      0K      0K  fg root     khubd
   17  0   0% S     1      0K      0K  fg root     twl6030-irq
   18  1   0% S     1      0K      0K  fg root     irq/372-twl6030
   19  1   0% S     1      0K      0K  fg root     irq/378-twl6030
   20  1   0% S     1      0K      0K  fg root     musb-otg
   22  1   0% S     1      0K      0K  fg root     kinteractiveup

どうやらkworkerというのが2つ動いていて、これが常にCPUのパワーを食っている様子です。kworkerって何だろう。

そういえばプロンプトに「root@android:/ #」と出ている。誰か特電のスタッフが既にFT103のrootを取っていた模様。あぶないな~。なんでroot取ってるんだ?そういえばフォントを変えたいとか言ってたから、それかな。

GUI画面からどうにも操作できなくなったAndroid機だけど、ADBシェルからなら何とかなるかもしれません。続きはまた明日。

| | コメント (1)

2012.11.01

RaXino-iの出荷開始と、3つのメリット

お待たせしました。ようやく、RaXino-iを出荷開始できるようになりました。

Raxinoi1

RaXino-i(ラクシーノ・アイ)は、RX63NB(ROM 1MB、RAM128kバイト)を搭載したDIP40ピン形状のマイコンボードです。ピン配置にはmbedとの互換性があります。クロック 96MHzと高速でFPUも搭載しています。

このボードは52mm×25mmととても小型サイズなので、ロボットなど狭いところにも組み込みやすくなっています。

また、ボード上にPHYチップも乗せてあるので、I/Oピンにパルスジャック内蔵RJ-45コネクタを取り付けるだけで、イーサネットが使えるようになります。ネットワークにつなげるために拡張基板は要りません。

RaXino-iは、特電オンラインショップや、Amazonでご購入いただけます。

さて、RaXino-iには、他のボードにはない3つのメリットがあります。

RaXino-iのメリット1 HEWが使える

Raxinoi3

RaXino-iは、趣味や学習用だけではなく、産業用途に利用してもらうことを考えています。そこで、ライブラリ(RXduino)をHEWに対応させました。

Raxinoi2

HEWとE1を使えば、CやC++のソースコードレベルでステップ実行ができるので、ユーザプログラムのデバッグがとても楽にできます。

もちろんGCCにも対応しているので、目的に応じて使い分けてください。

ライブラリは、*.aや*.libをダウンロードしてローカル環境でコンパイルしていただくことになりますが、特電のオンラインコンパイラも準備中です。また、開発者セットとして「RXduinoライブラリ(RX63N版)のソースコード」も提供しています。

RaXino-iのメリット2 DOSプロンプト版書き込みツール

RXマイコンの内蔵フラッシュに書き込むとき、わざわざFDTなどのツールをダウンロードしてきて書き込むのは面倒ですよね?

そこで、rxprog63nbというツールを作りました。

Raxinoi4このツールを使うと、DOSプロンプトから、

rxprog63nb -p ファイル名.mot

のように打つだけで、プログラミングできてしまいます。

わざわざGUI操作をしなくてもいいので、とても楽です。

このようなツールも合わせて提供します。

RaXino-iのメリット3 なひたふがサポートする

Supportこれも重要なポイントです。ボードの設計者とライブラリの設計者である「なひたふ」自らがメールや掲示板で貴方だけにサポートします。

全員から見えてしまう質問だけではなく、プライベートな質問をしたいというご要望にもお応えできます。

このようなRaXino-iですが、本日、11月1日から出荷を開始します。
お求めは特電オンラインショップからどうぞお願いします。

最初の10台目までのお客様には、ちょっと嬉しい「USBコネクタ」と「パルストランス内蔵RJ-45コネクタ」をお付けいたします。

では、RaXino-iをよろしくお願いします。

| | コメント (1)

がじぇるねGR-SAKURAのファームウェアを書き換える方法(1)

がじぇるね、GR-SAKURAのファームウェアは非常によくできています。リセット後にRX63NがUSBマスストレージに見えて、その中にユーザプログラムの.BINをコピーすれば、CPUの内蔵フラッシュに書き込まれて動作するという素晴らしいしくみです。

このファームウェアは、VIDやPIDが変更できるようにプロジェクトが公開されています。

http://www.renesasrulz.com/docs/DOC-2365

上のURLで公開されたプロジェクトをビルドすれば、基本的にはVIDとPIDの変更はできます。しかし、問題が2つあります。

1つ目は、変更できるのはVIDやPIDだけであって、マスストレージとして開いたときに見える最初のファイル名や、ボリューム名、そしてファイルの中身が変更できないことです。

Grfirm1

2つ目は、ファームウェアを書き換えるときに点滅するLEDが、GR-SAKURAのポート(PORTA.0,PORTA.1,PORTA.2,PORTA.6)に固定されてしまっているので、異なるボードに移植したときにはLEDが点滅しないことです。

これらの問題の解決方法を探りました。

まず、マスストレージとして見たときの問題を解決します。

がじぇるねGR-SAKURAの初期ファームウェアはMOTファイルで与えられます。これをFDTなどのツールを使って開いてみてください。

最初に見えるのが0xffff1c08番地※あたりに、<html>~で始まるテキストが見えます。これが、最初からマスストレージに入っているファイルの中身です。このままだと、http://sakuraboard.net/にジャンプしてしまいます。

※ビルドするときの条件で多少前後する

Grfirm2

この部分を書き換えなければなりません。それから、もう少し下を見ていくと、0xffff2246番地あたりに"GR-SAKURA"から始まるデータの塊が見えます。Gadget Renesasと書いているのでしょうが、文字列が入れ替わったりぶつぶつ切れたりしています。

Grfirm3

実は、この部分はディレクトリです。まずは、この部分の見方から説明します。

47 52 2D 53 41 4B 55 52 41 20 20 08 00 00 00 00  GR-SAKURA  .....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
44 20 00 48 00 6F 00 6D 00 65 00 0F 00 01 2E 00  D .H.o.m.e......
68 00 74 00 6D 00 6C 00 00 00 00 00 FF FF FF FF  h.t.m.l.........
03 6E 00 65 00 73 00 61 00 73 00 0F 00 01 20 00  .n.e.s.a.s.... .
50 00 72 00 6F 00 6A 00 65 00 00 00 63 00 74 00  P.r.o.j.e...c.t.
02 66 00 6F 00 72 00 20 00 47 00 0F 00 01 61 00  .f.o.r. .G......
64 00 67 00 65 00 74 00 20 00 00 00 52 00 65 00  d.g.e.t. ...R.e.
01 53 00 41 00 4B 00 55 00 52 00 0F 00 01 41 00  .S.A.K.U.R....A.
20 00 42 00 4F 00 41 00 52 00 00 00 44 00 20 00   .B.O.A.R...D. .
53 41 4B 55 52 41 7E 31 48 54 4D 21 00 00 00 08  SAKURA~1HTM!....
EA 40 EA 40 00 00 00 08 EA 40 02 00 6A 00 00 00  .@.@.....@..j...

これは、32バイトごとに区切られたデータになっていて、その中の最初の11バイトが8.3ファイル型式のファイル名になっています。その後ろがファイルのアトリビュートです。ここが08ならば、ボリュームとなります。

つまり、この部分の青い字がファイル名で、赤で書いた08がボリュームを示すアトリビュートです。ここを書きかえれば、ディスクを開いたときのタイトルバーが返られます。

47 52 2D 53 41 4B 55 52 41 20 20 08 00 00 00 00  GR-SAKURA  .....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

とりあえず、MOEMOE-KYUNにでもしておきましょう。余った領域は20(空白)を詰めておきます。

次のD. H.o.m.e.・・・と書いた部分の16×8バイトは、ロングファイル名が格納されています。このロングファイル名は、32ブロックの先頭の文字がインデックスになっていて、01→02→03→44の順に読むことになります。なお、44というのは、ファイル名のエントリの終了を表します。

44 20 00 48 00 6F 00 6D 00 65 00 0F 00 01 2E 00  D .H.o.m.e......
68 00 74 00 6D 00 6C 00 00 00 00 00 FF FF FF FF  h.t.m.l.........
03 6E 00 65 00 73 00 61 00 73 00 0F 00 01 20 00  .n.e.s.a.s.... .
50 00 72 00 6F 00 6A 00 65 00 00 00 63 00 74 00  P.r.o.j.e...c.t.
02 66 00 6F 00 72 00 20 00 47 00 0F 00 01 61 00  .f.o.r. .G......
64 00 67 00 65 00 74 00 20 00 00 00 52 00 65 00  d.g.e.t. ...R.e.
01 53 00 41 00 4B 00 55 00 52 00 0F 00 01 41 00  .S.A.K.U.R....A.
20 00 42 00 4F 00 41 00 52 00 00 00 44 00 20 00   .B.O.A.R...D. .

このエントリは基本的にUNICODEになっているので、ASCII文字の後に00が付いています。そして10バイト + 12バイト + 4バイトに切られて32バイトのブロックの中に埋め込まれています。(つまり1つのブロックに13文字入る)

しかし、これを自分で書くとなると大変です。わけがわからなくなります。そこで、先頭の1バイトを0xE5で書き換えてしまいましょう。そのブロックは無効になるので、面倒だからそうしてしまいましょう。

そして、最後の

53 41 4B 55 52 41 7E 31 48 54 4D 21 00 00 00 08  SAKURA~1HTM!....
EA 40 EA 40 00 00 00 08 EA 40 02 00 6A 00 00 00  .@.@.....@..j...

のブロックはショートファイル名です。~1というのは、ロングファイル名が別にある場合にこういうファイル名になります。次の21は、アーカイブ属性と読み込み専用の属性を表しています。

注意しなければならないのは、小文字を使ってはいけないということです。DOSの8.3型式のファイル名ではすべて大文字なのです。小文字を使ってindex.htmなんてファイルを作ると、そのファイルは開くことができません。

このファイル名を書きかえれば、任意のファイルをUSBディスク中に作ることができます。ここでは、4D 4F 45 4D 4F 45 20 20 54 58 54 に書き換えます。

そのあとの、0800はファイルのタイムスタンプで「1:00:00」を、EA40は「2012/7/10」を表しています。一番重要なのが最後の6A000000です。これは、ファイルの長さを表わしていて、つまり0x0000006aバイト(106)バイトのサイズがあることを示しています。

Grfirm4


次に、ファイルの中身本体を書き換えることにします。ファイルの内容は、0xffff1c08番地あたりに書かれているので、この部分を書きかえればよいことになります。HTMLファイルのようなものが書かれていた場所を置き換えましょう。

Grfirm5

で、実際に書き換えたのが上の図です。後ろの部分を0x20(空白)で埋めているほか、ディレクトリエントリ中のファイルサイズも0x00000042に直しておきました。

こうやって修正したMOTファイルを書き込んでGR-SAKURAをつないでみましょう。

Grfirm9

すると、リセット後に何やらUSBが認識されて・・・

Grfirm6

このようになりました。

ファイルを開くと、

Grfirm7

中身はこうなっています。これで、USBマスストレージの中に任意のファイルを中にいれておくことができますね。この情報が皆様の何かのお役に立てれば幸いです。

書き換えたファームウェアは、Renesas Rulzにアップロードしました。

http://www.renesasrulz.com/community/demoboards/gr/japanese/gr_showcase_j/blog/2012/10/31/%E3%81%8C%E3%81%98%E3%81%87%E3%82%8B%E3%81%AD%E3%81%AE%E5%88%9D%E6%9C%9F%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E5%86%85%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA

このファームウェアを試してみたい方は、上のURLをご覧ください。

余談:なお、このルネサスのファームウェアは、GR-SAKURAに使用許諾しているとのことなので、RaXino-iのファームウェアとしては採用しません。

余談2:GR-SAKURAのファームウェアのディレクトリエントリが示しているファイルサイズは0x0000006a(106バイト)だけど、実際のHTMLファイルの中身は0x62(98バイト)しかない。それゆえ、"SAKURA BOARD for Gadget Renesas Project Home.html"の最後には8バイトのゴミがついてしまっていることに気がついた。

Grfirm8
(クリックで拡大)

| | コメント (0)

« 2012年10月 | トップページ | 2012年12月 »