« 2010年4月 | トップページ | 2010年6月 »

2010.05.28

みえたジェイ 鋭意開発中!

お待たせしてたいへん申し訳ございません!!
4月中にリリースと言っていたみえたジェイですが、ようやく完成に近づいてきました。

「みえたジェイ」とは、見ることに特化したバウンダリスキャンソフトです。
現在、鋭意開発中です。来週の月曜日には発売開始します。

シンプルさが特徴なので、ボタンは6つしかありません。
Mietaj_5
左から順に、「ケーブル接続とデバイス検出」「スキャン開始」「スキャン停止」「印刷」「クリップボードにコピー」「画像保存」です。あと1つ、ヘルプが増えるかどうかというところです。

この1、2日で大幅に機能を強化しました。
まず、対応ケーブルが大幅に増えました。Pocket JTAG Cableだけではなく、特電Spartan-6ボードで作るUSB-JTAGや、特電Spartan-6ボード上のUSB-JTAG、XILINXやALTEAR、Latticeのパラレルケーブル、J-Writerなどが使えるようになりました。
Mietaj_1

これらのケーブルを使って「接続」すると、JTAGチェーンにつながってデバイスを自動的に認識してくれます。

次の図はBLANCA(CQ出版の組み込みシステム評価ボード)を認識させたときの図です。XILINXのCPLDとFPGA2個が認識されて、さらに端子の状態(H/L、入力/出力)が可視化されているのがわかると思います。

Mietaj_2

ここでCTRL+Cを押すとメイン画面の図がクリップボードにコピーされます。また、GIFやBMP形式で画像としても保存できます。この機能はブログに貼り付けるのに便利です。
Mietaj_3_2
上の図はクリップボードに貼り付けたものをブログに貼り付けてみました。

また、印刷プレビュー機能もつけました。印刷関係が一番苦労しています。
Mietaj_4
Mietaj_6

プリンタを選んだり、縦横変えてみたりして、お気に入りの形式を探してください。プリンタをAdobe PDFにすれば、PDFにもできるのでレポート作成などにも使えます。
「mietaj_4.pdf」をダウンロード

来週月曜日の発売開始を目指して、これからさらにデバッグと機能強化を進めていきます。どうかご期待ください。


追記:
BSDLファイルを画面上にドラッグ・ドロップしてデバイスを追加できるようにもしました。これで、自動認識できないデバイスにも対応できます。また、将来出てきた新しいデバイスにも対応できるようになるので、未来永劫末永くお使いいただくことができるようになりました。
次の図は、いろいろなSH-4をチェーンに追加してみたときの図です。
Sh_series

画像では解像度の関係で縮んでしまっていますが、PDFにするとカタログみたいな感じになります。
「sh_series.pdf」をダウンロード

| | コメント (0)

2010.05.26

Spartan-6のDeviceDNA

XILINXのSpartan-3A以降のFPGAには、DeviceDNAがあります。DeviceDNAとは、工場出荷時にFPGAの中にプログラミングされた57ビットの不揮発な一意の値で、ユーザが書き換えることはできません。そのため、この値を利用することで、特定のIDを持つFPGAでしか動作しないようなアプリケーションを作ることが可能になり、不正コピー対策ができるというものです。

FPGAのデザインの中からDeviceDNAを読み出すには、DNA_PORTというプリミティブをインスタンシエートするか、JTAGからも読み出すとされています。

まずは、FPGA(XC6SLX16-2CSG324C)の中にDNA_PORTをインスタンシエートする方法で実際に読み出してみました。

データシートによれば、Spartan-6ではDeviceDNAの上位2ビットは"10"で、下位55ビットが実質的なIDの役割をしているとされています。DNAはMSBファーストで読み出されるので、最初のビットは1であるはずです。
Devicedna_ds_2
(データシートDS380より)

しかし、実際に読み出されたデータは、0000000010001000・・・・と、8個の'0'で始まっています。しかも、全長は57ビットのはずなのですが、実際には最後のデータ(と思われる'1')が読み出されるのは73ビット目です。

次の図は、DeviceDNAのDoutから読み出された波形です。最初の'1'から最後の'1'まで、やはり、65ビット分の長さがあります。このように、結果はデータシートと異なります。これはSpartan-6がES品だからという可能性が高いでしょう。
Devicednablogana

また、データシートには、巡回シフトといって、DNA_PORTの出力を入力に戻すことでこのIDを繰り返し出力することができるとされています。しかし、これは効きませんでした。DNA_PORTの入力(DIN)は機能していないように見えます。
Devicedna_shift_2


次にJTAGから読み出してみます。
結果は、0x11A2DD9210453431100で、上の波形と一致しました。やはり65ビット分の長さがあります。
得したわけではないのですが、データシートに記載されているより長いIDコードが埋め込まれていて、ちょっぴり変な気分です。

幸いなことにSpartan-6は手元にたくさんある(それこそ、売るほどある)ので、いろんなSpartan-6で試してみることにします。

DeviceDNAをJTAGでアクセスする際のシーケンスや、FPGAにインプリメントしたVHDLのソースコードはJTAGひろばのほうにアップロードしておきましたので、ご興味のおありの方は是非ともご覧下さい。

追記 Spartan-3Aでのやりかたも追記しました。Spartan-3Aはデータシートどおり、まともに動作します。

| | コメント (0)

2010.05.24

トリプル対応JTAG ICE

先日、無償でリリースしたSH-2A用JTAG ICEの対応CPUにSH7144とV850ES/JG2を加え、トリプルで対応させようと企てています。

Multice

昔の付録基板を引っ張り出してきてデバッグをしています。
明日、25日中にはリリースできると思います。

このツールの名称は、Nahice に決めました。ナヒスと書いてナイスと読んでください。(歴史的仮名遣いです)

よろしくおねがいします

| | コメント (0)

2010.05.21

PCI Expressセミナーのお知らせ

来る6月3日(木)、アジレントテクノロジー様のPCI Expressセミナーで講演させていただくことになりました。
題して「FPGAベースのPCIeシステムの設計・デバッグ実例 」

いままでPCI Expressの設計を称するセミナーや解説本は星の数ほどありましたが、そういうセミナーに参加しても、インターフェースチップや、Express内蔵のFPGAを紹介されるだけだったり、もしくは、高速ディジタル作動配線パターンの引き方の説明と高価なIPコアの宣伝だったり、せいぜい良くてFPGA内蔵のEndPointを生成するウィザードの使い方だったりして、参加した人は本当に知りたかったことを知ることができず不満を抱えて帰ってくることも少なくなかったのではないでしょうか?

今回のセミナーは違います。
FPGAを開発するエンジニアが本当に知りたいと思っていたことを喋ります。

このセミナーが紹介するのは、FPGAにPCI Expressを実装するためのノウハウとデバッグ手法です。FPGAがどうやってPCI Expressのパケットを処理しているのか、どうやってデバッグするのか、そういうことを喋ります。

従来のIPコアベンダーは、コアの中身やプロトコルの具体的なことについては語りたがりませんでした。だから、必然的に基板の設計とかそういう方向に話が偏ります。そのため従来のセミナーは、高価(100万円以上する)なIPコアを購入できて、10層以上の多層基板を設計できるような資金的に余裕のある大企業しか、その恩恵にあずかることはできませんでした。

このセミナーは違います。中小零細企業やフリーランスのエンジニアでも、PCI Expressのアドインカードを設計できるようなってもらうのが目的です。プロトコルの中身もどんどん喋ります。
だから、安価なFPGAで実装し、身近なツールを使ってデバッグを行うテクニックを紹介します。

参加は無料です。場所はアジレントの本社のある北八王子です。ぜひご参加ください。

詳しくはこちらのページをご覧下さい。
https://www.appnavi.jp/public/seminar/view/238#D2-A

P.S. 残席が少なくなってきているそうなので、お申し込みはお早めに。

| | コメント (0)

Spartan-PCIeの配線完了

ようやく、Spartan-6 PCI Expressボードの配線が完了しました。
Sp6pcie_11

Spartan-6 MCBの配線ではとても苦労しました。次に出るFPGAのファミリではMCBのピン配置を自由に変更できるようになっているとうれしいです。

さて、今回の基板は製品としての仕上がりを目指したものではなく、6月にある展示会に間に合わせるためのプロトタイプです。差動のインピーダンスコントロールや等長配線をちゃんとやっていないので、高周波的には問題があるのでしょう。(動くとは思いますが。)
もし、将来製品化するようなことになったとしても、コネクタの向きとか使い勝手とかの理由で1回くらいは基板を作りなおすことになると思うので、次に作るときには差動インピーダンスのコントロールをしっかりやったものを作ろうと思います。そうすれば、インピーダンスコントロールや等長配線が本当に効果があるのかどうか確かめられるでしょう。

メモリの部分も、苦労しつつも6層基板で配線を引くことができました。この極めて扱いにくいFPGAのピン配置を我慢して配線するコツは、
 ・FPGAとメモリ間は、できるだけ離す。直近に置くと配線できない。
 ・表層と内層①で横方向に引く
 ・内層②は縦方向に引く
 ・部品面にはコンデンサや終端抵抗を置く。メモリから終端抵抗までの配線は裏面層を使って良い。
 ・データのスワップはやったほうがいい
です。
MCBの配線が出来たのですから、もう何も怖いものはないという自信ができました。
基板を作るたびに自分の中にいろいろなノウハウが溜まっていくのを感じます。

表面はこんな感じになりました。
Sp6pcie_12

裏面はこんな感じです。
Sp6pcie_13

内層と電源層はすごいことになっています。

この基板は、Spartan-6とPCI Expressの本質を理解するために、余計なものを一切排除して、徹底的に使いやすくしようというのがコンセプトです。だから、

■電源は選べる(ジャンパで選択)
・PCI Expressのバスから給電
・USBから給電
・どこでも手に入る普通の5V DCアダプタ

■PCI Express External Cablingを装備
机の上に水平に置いてデバッグできる。
ボタンを押したりLEDを見るのが楽。

■ロープロファイル形状
スリムタワーケースのパソコンに入れても、蓋が閉められる!

■2.54mmピッチのピンヘッダ
・60本のI/Oを出しました。30組の差動信号としても使えます。
・Bank2から出ています。Bank2のVccIOは設定可能です。

■USB2.0を標準装備
・オンボードのUSB-JTAGとして使って、FPGAの書き換えが可能。
・MITOUJTAG対応。バウンダリスキャンやBLOGANAで強力なデバッグを。
・このUSBはユーザアプリにも使用可能。数十Mバイト/secの転送速度。
・USBは2つ要りません。1つで十分です。

■SATAのコネクタを2つ用意
手軽にギガビット伝送実験が楽しめます

あと少し手直しして、今日こそ出図を行います。

| | コメント (0)

2010.05.19

Spartan-6 PCI Expressの続き(3)

ようやくだいたいの配線が引き終わった。

Sp6pcie_9

Spartan-6とDDR2の接続部分が困難を極めた。
もはや芸術性とか規則性のかけらもない。
ただ、接続することのみを目的としている。
ミアンダ配線とかする余裕は全くない。

Sp6pcie_10

なんとか配線は通したものの、アドレスバスの終端抵抗が置けるかどうかわからない。
MCBにDDR2 SDRAMをつなげる場合、6層でも不可能に近い。
内層クリアランスのデザインルールが重くのしかかってくる。
MCBを使う場合、ピンのアサインが自由にできないのがつらい。
これなら自前でDDR2 SDRAMコントローラを作ることにも意味がある気がする。

太陽が出てきたので、もう寝る。

| | コメント (0)

2010.05.18

Spartan-6 PCI Expressの続き(2)

昨日は作業できなかったので、今日の昼にちょっとだけ進めました。
USBとFPGA間の配線と、LED、SWなどの配線を通しました。
Sp6pcie_8

P板.comのルールだと、4層でも6層でもプレプリグの厚さは同じなので、同じ設計ルールが使えそうです。
今夜こそ頑張って一気に仕上げます。

| | コメント (0)

2010.05.17

Spartan-6 PCI Expressの続き

作業2日目。今日は夜から配線の続きを行いました。

今日は高速シリアルの配線や電源周りを薦めました。パターンを引くことが先決なのでインピーダンスコントロールとかはされていません。とにかく配線を引いて引いて引きまくりました。
Sp6pcie_6

出来上がりイメージ
Sp6pcie_7

あと残っている作業は、
 ・DDR2用の電源、2種類
 ・DDR2の信号配線
 ・PCIカードエッジ側のWAKEなどの信号の配線
 ・MGT用の電源フィルタを入れるか入れないかを考える。
 ・USBのパターン引きなおし
 ・LEDとSWの配線
 ・JTAGの配線
 ・シルクの直し
 ・シルクの追加
 ・ベタパターン追加
どんなに頑張っても2日はかかってしまいます。

| | コメント (0)

2010.05.16

6層基板は偉大だ

Spartan-6 PCI Expressボードの設計を続けています。
とりあえず、部品の配置がだいたい決まって、USBとGPIOの配線までできました。
Sp6pcie_3

GPIOは、2.54mmピッチのピンヘッダに60本配線しています。
LVDSの差動ペアが隣り合うようにしています。実はGPIOが一番苦労したかもしれません。ビアが邪魔で配線が引き出せないし、奥の方にあるパッドから引き出してくるのはやはりそれなりに大変です。
Sp6pcie_4
(まだ等長配線やインピーダンスコントロールはしていません。それどころかかなり汚い配線です。)

この規模になると4層では無理そうでした。4層で引くと、パスコンが置けません。
4層は裏面の配線はSMDのパッドを避けながら配線しなければならないので、意外と自由度が低いのです。
6層になると、配線専用の内層にはパッドがないので、どこまでも引けてしまいます。
いままで4層で頑張ってきたのがうそのようです。超快適です。

手ごわいのは、Spartan-6とDDR2 SDRAMとの配線です。
このボードはMCBが使えるようにしようと思っています。MCBを使うには、DRAMの端子を、FPGAであらかじめ規定されたSDRAM専用端子につながなければならないのですが、どうもこのピン配置がしっくりこないのです。DDR2のともDDR3とも一致しません。そのためViaが飛びまくりです。
Sp6pcie_5

いったいどういう理由でFPGAのDRAM用ピンがこういうピン配置になっているのかわりませんが、ここでひとまず休憩します。続きはまた明日。

| | コメント (0)

2010.05.15

Spartan-6のPCIeボードを開発します!

Spartan-6のPCIeボードを開発します!

次のようなコンセプトで、Spartan-6のPCI Expressボードを作ろうと決意しました。

・基板の構成がシンプルでわかりやすいこと
・2.54mmのピンヘッダが出ていて(メザニンではない!)、わざわざ基板をおこさなくても拡張できること
・JTAGのピンヘッダを出すこと
・ロープロファイル形状で、スリム型のPCでも蓋が閉められること
・ケーブル接続のPCI Expressにも対応していること
・PCIeのバスから電源をもらって動作できること(ACアダプタ不要)
・誰もが挫折しないで動かすところまでいけるように、親切であること

設計中の基板の現在のイメージは次のような感じになっています。
Sp6pcie_1

Sp6pcie_2

2.54mmピッチのピンヘッダをたくさん用意しました。だから、万能基板で拡張できます。
また、USB-JTAGをオンボードで搭載しているので、別途USB-JTAGケーブルを用意しなくても書き込みができます。

このUSBは書き込みができるだけでなく、FPGAが起動したらアプリケーションの通信にも使えます。(1個のUSBに2つの機能があります)さらに、普通の5V DCのACアダプタの口もつけました。SATAのコネクタを2個つけました。
デバイスはXC6SLX45Tを搭載するので、WebPACKでも開発可能です。

今日から本気で設計を始めます。お楽しみに。

| | コメント (0)

2010.05.14

XILINXのSP605のPCIeを試してみた

Spartan-6の内蔵PCI Express Endpointを試してみたくなって、XILINXのSP605を買いました。

これがそのSP605の基板です。いろんな部品が乗っています。
Sp605

このボードを買った理由は、Spartan-6もさることながら、SystemACEが乗っているからです。SystemACEというのはコンパクトフラッシュからFPGAをコンフィギュレーションするためのチップです。私は初めて見ました。
これでXILINXの全品種コンプリートしたかもしれません。

・・よくみると、私のSP605ボードは、電源のケーブルやジュンフロン線で延長されたコネクタが出ていますよね。
これには深い事情があるのです。

このボードは、某D社(有名な海外電子部品通販サイト)に注文したのですが、届いて箱をあけてみると、電源のACアダプタが入っていない!
USBメモリとCD-ROMとかは入っていても、肝心の電源がないのです。

それにこのボードのACアダプタは12Vで、しかも口が特殊な形状。普通のACアダプタではささらないのです。私が買ったSP605にACアダプタが入っていなかったのは偶然の入れ忘れだと思いますが、D社経由で買ったのでサポートしてもらいにくいのです。
少々納期や価格が高くても、日本の代理店に頼んでおけばよかったと後悔しました。日本の代理店に注文しておけば、ACアダプタがないと伝えれば何とかなったでしょう。

さて、SP605にはJTAGのコネクタがありません

つまり、オンボードのUSB-JTAG(EmbeddedPlatformUSBという)を使って、iMPACT経由で書き込みしなければならないのです。これは致命的です。

このボード、コンパクトフラッシュから起動するとか、SPIとかパラレルのROMから起動するとか、コンフィギュレーションの選択肢が多すぎて、どこをどう操作してよいかわかりません。最初、みようみまねでコンパクトフラッシュから起動しようと思いましたが、うまくいきませんでした。もしかすると、上手くいっていてPCIEの動作に問題があっただけなのかもしれませんが、デフォルトの基板をiMPACTで使っている限り確認する術がないのです。
そこで、素直にコンフィギュレーションと動作確認ができるよう、JTAGの信号を取り出すことにしました。

iMPACTしか使えないのは嫌なので、回路図を見ながらチップ抵抗を取り外し、JTAGの信号をジュンフロン線で取り出しました。TCK、TDI、TMSはLV541の端子から取り出します。
Sp605jtag

TDOはXC2C256の近くの抵抗から取り出します。
Emb_pfj

この改良を行なうことで、ようやく使えるようになりました。

パソコンのPCIeスロットに挿すと蓋が閉まらなくなるほど巨大です。
Sp605onpc

さて、この基板のJTAGの配線は、EmbeddedPlatformUSBから出て、SystemACEにつながっています。FPGAのJTAG信号はSystemAceにつながっています。つまり、回路上の配線は、
 ・EmbeddedPlatformUSB → SystemACE
 ・SystemACE → XC6SLX45T
と2つの経路があるのですが、SystemACEは中に入ってきたJTAG信号をバッファして出力するようで、
 ・EmbeddedPlatformUSB → SystemACE → XC6SLX45T
という3つのデバイスとして認識されます。いやあ、奥が深いです。

自動認識すると、SystemACEとSpartan-6が認識されました。
Sysace

そして、バウンダリスキャンで動作確認してみると、
FPGAのDONEピンがLになっているようなのです。まだFPGAは起動していないようですね。
Sp605scan

ここで、サンプルのリファレンスデザインをコンパイルしたBitStreamファイルを書き込みます。
Sp605write

びゅーっと書き込みます。OKです。
Spartan-6のDONEピンがHに上がったので、書き込みができたようです。
しかし、Spartan-6のI/O端子は1つも動いているようには見えません。PCI Expressのギガビットトランシーバの端子はバウンダリスキャンに対応していないので、全く動いていないように見えます。
なるほど、内蔵PHYのデバッグには新しいアプローチが必要だなと思いました。

デバイスマネージャから新しいデバイスを探してみると、なんと、標準的なRAMカードとして認識されました。デバイスドライバは不要なのですが、何かができるような気配がありません。
Ramcon

しかも、BAR空間が全くない、コンフィギュレーション空間だけのつるつるのエンドポイントとなっていました。
Ramcon2

このサンプルデザインは、PCIのベンダIDとデバイスIDがセットされて認識されること以上のことはしてくれなさそうです。ひょっとすると、何かできるのかもしれませんが分かりません。謎を探ってみることにします。

| | コメント (5)

2010.05.13

JTAG変換基板 発送のお知らせ

先日お知らせした「XILINX 14pinのJTAGコネクタをH-UDIやALTERAのピン配置に変換する基板」を、最近MITOUJTAGをお買い上げいただいた20名様くらいのお客様に発送しました。
Jtagconv_1

メインはこんな基板です。
Jtagconv_2

基板だけではなく、コネクタやケーブルなど一式付いています。写真ではわかりにくいですが、ピンクのプチプチを溶着して小部屋をいっぱいつくった特別な袋に入っています。結構、手が込んでいます。
Jtagconv_3

半田付けしたら、このように箱の側面に挿して使います。LEDが隠れないように設計されています。
Jtagconv_4

3枚ある端の基板は、ぜひともキーホルダーなどにぶら下げて携帯してください。出先でJTAGのピン配置が調べるというのを実践してみたら、思った以上に便利でした。本当にオススメです。
Jtagconv_5

今後も在庫が続く限り、MITOUJTAGセットをお買い上げいただいたお客様に送らせていただこうと思います。突然のプレゼントをお楽しみに。

| | コメント (0)

Spartan-6評価ボードでSH-2AをJTAGデバッグ

大変お待たせしました!

特電Spartan-6ボードをUSB-JTAG化して、Interface付録SH-2A基板のSH7262をJTAGデバッグできるようにしました。SH-2A用JTAG ICEも更新しました
PocketJTAGとほぼ同じ速度なので、J-Writerよりもかなり高速です。
汎用I/OのピンヘッダからJTAG信号が取り出せます。

Sp6jtagpin

SH-2Aと接続しているときのようすを次の写真に示します。

Sh2asp6jtag

これで、特電Spartan-6ボードには有用な使い方ができました。ひととおりSpartan-6の評価を行ったら、使用済みのFPGAボードを机や棚の奥に永久保管してしまうことなく、USB-JTAGとしていつまでもお使いください。お客様のお手元にお届けしたFPGAボードは、決して無駄にはなりません。
逆に、最初はUSB-JTAGのために購入しておいて、後からSpartan-6 FPGAの評価するというのも良いかもしれません。
何度でも書き換えできますので、お好きな使い方がお選びいただけます。

JTAGは、ソフトが命です。現在対応しているのは、
 ・MITOUJTAG 2.x
 ・SH-2A用JTAG ICE
 ・J-Writer書き込みソフトウェア
です。
今後もどんどん増やしていきます。

P.S.
おかげさまでSpartan-6評価ボードは、在庫が少なくなってきております。万一品切れになると、次期ロットの製造にお時間をいただくことになるかもしれません。お早めに。

| | コメント (0)

2010.05.12

J-Writer新バージョン出荷開始

本日、J-Writerの新バージョンの出荷を行いました。

新バージョンも旧バージョンも、ハードウェアはほぼ同じですが、何が違うかというと、
 ① JTAG信号の直列終端抵抗の値を変更した
 ② ベンダIDとデバイスIDを変更した。
 ③ 電源投入直後から、Vref電圧の検出LEDが動作するようにした。
です。

まず、出力の抵抗値を調整したので、JTAGケーブルが長い場合でもオーバーシュートが小さくなりました。より安心してお使いいただけるようになります。
また、今後出荷されるハードウェアは、VID=0x2129、DID=0x0260になります。(これまではトラ技BIOSのベンダIDになっていました)。したがって、デバイスドライバをインストールした際に出るメッセージも若干変わってきます。

そして、最後のVref電圧の検出LEDの件ですが、J-WriterはターゲットボードのVrefが確認できないときには赤いLEDが点滅するようになっているのですが、これまで電源投入直後(実はトラ技BIOSが動いている)にはこの検出機能は動きませんでした。
今回、電源投入直後からVref検出のLEDが点滅するようになったので、より違和感なくご利用いただけるようになったと思います。

これまでに出荷したJ-Writerのファームウェアを後から書き換えできるかどうかは、これから考えます。
この装置が、皆様の組み込み開発のお役に立てることを願っています。

| | コメント (0)

SH7262用JTAG ICEのJ-Writer対応

SH-2A(SH7262)用JTAG ICEを、万能USB-JTAGプログラマ J-Writerに対応させました。起動時にアドレスFFFFFFFFで停止してしまうバグも直しました。

最新版のファイルは、こちらから無償でダウンロードできます。

J-WriterをInterface付録基板(FRK-SH2A)とつなぐには、Vref,GND,TCK,TMS,TDI,TDO,nTRST(INITから),nRST(SRSTから)の配線を1本1本つないで、それからnASEMDの端子をジャンパで隣のGNDに落としてください。(これはPocket JTAG Cableでも同じです)
Frksh2ajumper

J-Writerは、FPGAやCPLDの書き込みだけではなく、CPUのデバッグもできるようになってきました。
動作させてみるとやはり遅いのですが、遅いなりに原因もわかってきました。J-Writerの中にはuPD78F0730という国産マイコン(これもルネサス製です)が入っているのですが、このファームウェア(トラ技2009年8月号で解説したLatticeXP2書き込み用ツールとほぼ同じ)は、USBから1バイト取り出すごとに次のパケットの存在確認をしていたのです。これが遅い原因でした。
これは、FPGAの書き込みのように大きなサイズのデータを一まとめで扱うのは得意なのですが、JTAG ICEのように小さなデータを大量にやりとりするには不向きでした。
遅い原因がわかってきたので、今後、高速化できるようになると思います。

次の目標は、
 ・特電Spartan-6ボードで作るUSB-JTAGに対応させること
 ・デバッグ対象CPUに、SH-2やV850ESを追加すること
です。

3種の付録基板(SH-2、V850ES、SH-2A)のすべてに対応すれば、晴れてマルチJTAG-ICEといえるようになるでしょう。それを目指します。ご期待ください。

| | コメント (0)

2010.05.11

トラ技78KマイコンのWindows7やVistaへの対応

古い話で恐縮ですが、トラ技78Kマイコン(uPD78F0730)はどうやらWindows VistaやWindows 7、さらには64bit版Vistaにも対応しているようです。

今日判明したことは、このマイコン用のUSBドライバは、ルネサスエレクトロニクスさんが提供しているドライバがそのまま使える(ただしプロダクトIDを変更する必要がある)ということです。
上記のドライバを使えば、Vistaで動くことは知っていたのですが、64bit版OS用のまで用意されていることは気がつきませんでした。

64bit版OSで動かすには、ルネサスエレクトロニクスさんの提供するドライバをダウンロードして解凍し、中の wlh_amd64 のフォルダを開きます。そして、necelusbvcom.inf をメモ帳で開き、3箇所あるUSB\VID_0409&PID_01CD をUSB\VID_0409&PID_FFFD に変更します。

次に、デバイスマネージャを開き、不明なUSBデバイスがあれば上記のフォルダを指定すればインストールできて、NEC ElectoronicsさんのUSBシリアルが見えるようになります。(ただし、システムの起動時にF8を押してドライバの強制署名を無効にする必要あり)

Vista_necel_driver

トラ技78KマイコンがVista以降の全OSで動くということは、J-Writerや、xp2jtagなど、トラ技78Kマイコンを応用した製品もVistaやWindows7で動くわけです。
ただ、これまでリリースしていたxp2jtag.exeやJ-WriterがWindows7では動かなかったので、てっきりドライバが対応していないのかと思っていたのですが、TeraTermだとあっさり開けたので、ユーザモードのアプリケーションソフトウェアの問題であることがわかりました。デバイスドライバにはなんら問題はなさそうです。

トラ技78Kマイコンは、パソコンから見ればUSB-シリアルなので、
 CreateDevice("\\.\COM3 ・・・
のようにして開けます。このやり方はVistaでも7でも2000でも問題ありません。
ここで、COMの番号をどうやって調べるかが問題です。

そのためには、システムにインストールされたUSB シリアルの一覧を取得しています。レジストリの
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
というところを見ます。トラ技BIOSは、\??\USB#VID_0409&PID_FFFD#5&801a0f&0&2#{86e0d1e0-8089-11d0-9ce4-08003e301f73}という値が作られているので、その値を見ればCOMの番号がわかるというものです。

ここで問題なのは、レジストリを開くためにRegOpenKeyExというAPI関数を呼んでいるのですが、Vista以前のOSではこの関数のセキュリティアクセスマスクという引数がKEY_ALL_ACCESSでも開けたのですが、Windows7では厳しくなったようでKEY_READにしないと開けないようです。(個人設定やユーザ権限にもよるのかもしれません)

もしかすると、これが原因でトラ技78KマイコンがVistaや7で動いたり動かなかったりする人が出てくるのかもしれません。

こういう対応をしたら、J-WriterがWindows Vista 64bit版でも動くようになりました。
Jwriter64bit

また、MITOUJTAGもVista 64bitで動作するのを確認できました。
Vista64bit


| | コメント (7)

2010.05.10

SH-2AのJTAG ICE紹介ページ

SH-2AのJTAG ICEの詳しい紹介ページを書きました。
FRK-SH2AのH-UDIコネクタにJTAG信号をつなぐやり方なども図にしました。
Sh2a_hudi_connect

紹介ページはこちらです。どうぞご覧下さい。
http://www.tokudenkairo.co.jp/jtag/sh7262.html

| | コメント (0)

J-Writerの販売再開とSH-2A対応の予定

大変おまたせしました!!
J-Writer(ジェイライター)の販売を再開します。
Unipro6

さて、紹介が遅れましたが、J-Writerというのは、
9800円のマルチベンダ対応のJTAGプログラミングケーブルで、
これ1本でXILINXやALTEAR、Lattticeなどに書き込むことができるというものです。

J-Writerのソフトウェアは、特殊電子回路がノウハウと魂を込めてJ-Writer専用に開発したものです。これはXILINXとALTERAとLatticeとSHが同一のチェーンにつながっていても、問題なく動作してしまうというスグレモノです。

J-Writerは、各FPGAベンダの純正JTAGツールをフリーソフト経由で騙しながら使うわけではないので、トラブルことはありません。それに、FPGAに書き込みするために、FPGAベンダの開発ツール(数ギガバイトにもなる)をわざわざダウンロードしなくてもいいのです。1つのEXEファイルでマルチベンダ対応しているので、安心感と便利さが違います。

そして、今日、J-WriterとInteraface誌のSH-2A基板をつないで実験してみたところ、なんと拙作のJTAG-ICEが動作してしまったのです!!! それも意外なことに、予想してたよりも動作速度が速かったのです。
Jwrsh2a

最初はもっと絶望的な速度を予想していたのですが、遅いながらも耐えられる速度で動いたので、我ながら驚いています。
Sh2a_ice_2

そこで、私は決意しました。J-Writerを本気でSH-2Aに対応させようと。SH-2Aが満足な速度で動いたら、SH-2や、SH-4、SH-4A、V850ESなどルネサス系のCPUにもユニバーサルにも次々と対応させるかもしれません。

というのも、実はJ-Writerの中にはトラ技の78Kマイコンが入っています。この78KマイコンはUSB経由でRAMにプログラムをダウンロードして動作させることができます。78KマイコンからH-UDIに直接アクセスするようなミニプログラムを転送しておけば、超高速になるのではないかと思っています。そういうことをこれから徐々にやってみようと思います。
ですがいきなりそれは大変なので、当面の間はJ-WriterのUSB転送タイミングを調整することでSH-2AのJTAG-ICEがそこそこの速度で動くようにしたいと思います。

もし、Interface誌付録のSH-2A基板をいずれJTAGでデバッグしたいけど、今日いますぐ緊急に必要ではない方は、ぜひ、もう1ヶ月ほどお待ちください。SHもFPGAも快適に書き込み&デバッグできるワンランク上の開発環境をお届けします。

なお、J-Writerの前回の販売時には4月28日にわずか1日で完売してしまったため、今回は少し多めに用意しています。現在は在庫はありますが、品切れになりますと3週間の納期がかかるようになりますので、お早めに。

| | コメント (0)

2010.05.08

SH-2A用のJTAG ICEをリリースしました

即興で作ったSH-2A用JTAG ICEをリリースしました。
バージョンは、1.7.0 β1です。
SH-2A用のJTAG ICEのダウンロードはこちらから行えます。

Sh2a_pkj

このツールは、お客様※1への日頃の感謝をこめたサービス品という位置付けです。お客様はこのJTAG ICEを無償でダウンロードして使用することができます。

現在のところ、JTAGケーブルには、パラレルポートとPocketJTAG Cableが使用できます。Spartan-6ボードへの対応はこれから行います。

低機能なICEですが、GCCで作ったELFファイルをダウンロードして実行させることはできます。シングルステップ実行でポチポチやって、レジスタの値がくるくると変わっていくのは見えます。

CygwinとGNUWINGと、このJTAG ICEがあれば、開発からデバッグまで全てできます。基本的にはGCCとMakefileでコンパイルします。ベクタとかも自分で書くので、動作は目に見えやすいと思います。それに、オンチップのUSBでデバッグするのとは違って、CPUが暴走していても「通信できません」な状態にはなりません。そこが、JTAGデバッガのメリットだと思います。

Sh2a_ice_2_2

JTAGケーブルと基板の接続方法や、デバッガのダウンロード方法は、こちらのページに取り急ぎ書きました。
また、GCC版LEDチカチカのサンプルプログラムも上記のURLにアップロードしておきました。リセットベクタとかを書く際の参考にしていただければと思います。

本デバッガは、低機能であるうえ、まだ十分にデバッグできていないので、いろいろな問題があるかと思います。今後どう発展させるかは全くの未定ですが、皆様からの嬉しいお声や応援をいただければ、それを糧として、どんどん機能アップしていきたいと思います。

来週の前半には、特電Spartan-6ボードをUSB-JTAG化したJTAGケーブルが使えるようにしたバージョンをリリースしようと思います。
ご期待ください。



※1 対象の製品はMITOUJTAG2.x各エディションと、特電Spartan-6ボードです

| | コメント (3)

SH-2AのJTAG ICE、GDBとも連携

ようやくSH-2AのJTAG ICEが動くようになってきました。
まだ、アルゴリズムが最適化されていないので、すごく遅いですが、ブレークポイントやシングルステップ実行もできるようになりました。GDBとも連携できます。

起動したらCPUやケーブルを選ぶダイアログが出るので、迷わずSH7262を選びます。
Sh2a_ice_1

SH7262と接続できた旨のメッセージが出るので、あとは、ブレークポイントを仕掛けたり、ステップ実行したり、ELFファイルをダウンロードしたりと自由に行ってください。
Sh2a_ice_2

ただし、アセンブラベースのJTAGデバッガなので、Cのソースコードレベルでのデバッグはできません。それは今後の課題としておきます。

GDBボタンを押すと、GDBからの接続を受け付けるようになります。
Insightと接続することもできます。Insight経由でCのソースコードデバッグもできます。ただし、輪をかけて遅いです。
Sh2a_ice_3

それから、このデバッガは逆アセンブラを内蔵していますが、もともとSH-4AやSH-4、SH-2用に作ったJTAG ICEを改良して作っているので、SH-2A用の命令とかは解読できないでしょう。
手抜きといえば手抜きですが、その点も将来の改良ポイントとしておきます。

次なる目標は高速化とソースコードレベルでのデバッグを可能にすることですが、相当先になるでしょう。

この程度のことしかできない低級なデバッガですが、GCCで作ったELFファイルをRAM上に簡単にダウンロードできて、実行するくらいのことはできます。逆に言えば、まだ何も作っていないのと同じことですから、これから発展させていくかもしれません。

このデバッガは、今日中にはダウンロードできるよう、リリースに向けて頑張ります。

| | コメント (0)

2010.05.07

SH-2A用のJTAG ICEが動き始めた

SH-2A用のJTAG ICEが動き始めました。
動作中のプログラムにブレークをかけて、レジスタを見たり、メモリダンプができるようになりました。
次の図は、付録基板上のROMに最初から入っているLEDチカチカ(NMIジャンパをショートさせて起動する)を実行中に、ブレークさせたときの画面です。
Ice_sh2a_1

アドレスFFF8DBFAで停止したので、内蔵高速RAMでしょう。
VBRも内蔵高速RAMの後ろのほうを指しています。

内蔵ペリフェラルのレジスタも、メモリダンプで読めてはいると思われますが、本当に正しいかどうかはまだわかりません。ちなみに、下の図で見ているのはバスステートコントローラの付近です。
Ice_sh2a_2

再開と再ブレーク、ジャンプ、ステップ実行、ブレークポイントの設定などはまだできません。
ぼちぼち作っていこうと思います。

| | コメント (0)

2010.05.06

InterfaceのSH-2A基板をさわってみました

InterfaceのSH-2A基板をさわってみました。目的はSH-2A用のJTAGデバッガを開発することなのですが、まずはどういうボードなのかを知らないといけないので、普通に使ってみようと思い、記事にしたがって操作してみました。

しかし、特集の記事や構成が非常にわかりづらかったです。このCPUが持つ機能や特徴などが本文中にばらばらな箇所に書かれていて、全体像が掴みにくいのです。

結局のところ、SH7262のハードウェアマニュアルを読まないと、このCPUのことはよくわかりません。
わかったことを忘れないように書いておきます。

・内蔵RAMには、1Mバイトの大容量RAMと、64kバイトの高速RAMがある
・内蔵大容量RAMのアドレスは1C000000~1C0FFFFF(キャッシュ無効なら3C000000~3C0FFFFF)。
・内蔵高速RAMのアドレスはFFF80000~FFF8FFFF。
・内蔵周辺モジュールはFFFC0000~FFFFFFFFにある。
・シリアルROM上のコードはリセット時に高速RAM上に展開されてジャンプするらしい。FFFF8000番地にジャンプするのだとは思われるが、起動後にはFFF80000番地の内容はゼロクリアされている。
・リセット時には00000000番地の内容がPCに、0000004番地の内容がSPに取り込まれる。しかし、この基板はSPI ROMからブートする(モード1、3)ので、そうならない。
・NMIジャンパをオープンにするとHEWモニタ、ショートするとユーザプログラムが起動する
・HEWモニタを使うには、①RenesasからHEWとデバイス定義をダウンロードしてインストール。②CQ ConnectからUSBのドライバをダウンロードしてインストール。③CQ Connectから「シリアル接続HEWモニタセットアップ説明ファイル」をダウンロードして展開。その中のmonitorフォルダをHEWのシステムフォルダにコピーする。
・HEWモニタ起動時には、VBRは1C000000番地を示している。
・134ページに、TeraTerm経由のいい感じのモニタデバッガの画面が載っているが、これを使うにはRS232Cを外付けしなければいけないらしい。残念。
・ブート時にはビッグエンディアン。外付けメモリの空間は、CSnBCRレジスタで変更できるが、内蔵RAMのエンディアンはよくわからない。どうやら、この石はビッグエンディアンが標準っぽい。

HEWとかSHCや提供されたライブラリを使わずに、GCCでゼロからプログラムを作るなら、1C000000番地から配置されるように作ればよさそうです。その中でスタックポインタとVBRを再設定して、自分で作ったスタートアップルーチンにジャンプしてやればよさそうだなということがわかってきました。

開発中のSH-2A用JTAGデバッガでは、任意のコードをRAMにダウンロードするところまではできたので、あとは任意の番地へジャンプするような機能を作れば、GCCと組み合わせて遊べそうです。

| | コメント (0)

2010.05.04

J-Writer1.06βをリリース

マルチベンダJTAG書き込みツールのJ-Writerですが、ソフトウェアのバージョン1.06βをリリースしました。

今回の大きな更新点は、
 ・Spartan-6評価ボードで作るUSB-JTAGに対応した
 ・PocketJTAGCableに対応した
 ・ArriaGXとCyclone3の書き込みに対応した
などです。

PocketJTAGCableやSp6-USB-JTAGに対応させた理由のひとつは、J-Writerのハードウェアが品薄の状態が続いているため、J-Writerハードウェア自体の入手が難しいことです。それから、既にMITOUJTAG&Pocket JTAG Cableのセットをお買い上げのお客様にも、J-Writerのソフトウェアを使っていただけるようにするためです。

そして、当社のSpartan-6評価ボードをお買い上げいただいたお客様が、FPGAの評価を終了した後で、そのボードを長い間有効にお使いいただくためのアプリケーションとしてという意味もあります。
普通ならFPGA評価ボードは目的を達成したら、装置に組み込まれるか、実験用具棚の奥に永久に保管されるでしょう。しかし、それではFPGAがかわいそうです。当社から旅立っていったFPGAをいつまでも輝かせてあげたいと思ったわけです。
だから、FPGA評価ボードに、有用なアプリケーションをつけてリリースしようと思いました。そんな思いがSpartan-6ボードのUSB-JTAG化と、J-Writerソフトウェア対応に至りました。
どうか、お客様の手元にあるSpartan-6ボードを、いつまでも使ってあげてください。

さて、J-Writerハードウェアの品薄が続いていた理由は、部品の入手難によるものです。J-Writerのハードウェアに使用した電源IC(6pinで1.8Vと3.3Vが取り出せるスグレモノ)が、昨年の中ごろに突如入手困難になってしまい、さらに今年になってTIの2電源バッファもワールドワイドで品切れになってしまいました。普段ありふれていた何でもない部品が突然入手できなくなって、そのために品薄が続いていました。

次のJ-Writerのハードウェアは、現在100個程度を実装中で、連休明けにはあがってくる予定です。
しかし、書き込み速度はJ-Writerのハードウェアよりも、Pocket JTAG CableやSpartan-6のほうが圧倒的に速かったです。
Sp6-USB-JTAGで、XILINXのSpartan-3AN評価ボード上のコンフィグROMに書き込みしたときの時間は、19秒台を記録しました。FPGAへの直接書き込みではなく、コンフィグROMへの書き込みでこの時間です。
Sp6jwriter

ソフトウェアの最新版のダウンロードは、J-Writerの紹介ページから行えます。
1.06βという控えめなバージョン番号にしたのは、GW中で会社にいけないため、念入りな動作検証ができないためです。今週の末にはもう少しバージョンがあがるかもしれません。

| | コメント (0)

2010.05.02

Spartan-6でUSB-JTAGを作る方法

特電Spartan-6ボードの実用的なアプリケーションの第一弾として、特電Spartan-6ボードをUSB-JTAG化するというものを紹介します。

特電Spartan-6ボードには、FPGAのほかにUSB2.0とピンヘッダがあります。これを使って、USB2.0なJTAGアダプタを作るというものです。JTAG信号はピンヘッダから出てきます。

まず最初に、Spartan-6ボードをUSB-SPIライタ化します。sp6jtag.exeを使って、spiwr.bitを書き込みます。
Pre1

次に、spiwr.exeを使って、SPI ROMにusbjtag.bitを書き込みます。
Pre2

はい、これでSpartan-6ボードがUSB-JTAGケーブル化されました。次の図に示すように、ピンヘッダからJTAG信号が出てきます。これでハードウェアはOKです。
Sp6_usbjtag_4

次はソフト。現時点で対応しているソフトウェアは、MITOUJTAG2.1以降です。
MITOUJTAG Light/BASIC/Proが対応しています。
ケーブルの設定ファイルを書き換えて、DLLをコピーします。すると・・

Sp6_usbjtag_3

このような感じで、MITOUJTAGのケーブルのひとつとして普通に使えるようになります。
動作検証に使ったターゲットボードは、XILINXのSpartan-3AN評価ボードです。
Sp6_usbjtag_5

USB-JTAG化するまでの詳しい手順や、ダウンロードするファイルはこちらにアップロードしておきました。どうぞご活用ください。

次は、J-Writerのソフトウェアを、このUSB-JTAGに対応させる予定です。

| | コメント (2)

« 2010年4月 | トップページ | 2010年6月 »