« 2012年11月 | トップページ | 2013年1月 »

2012.12.31

2012年を振り返ってみて

年末なので今年1年を振り返ってみます。

  • 1月 基板年賀状の発送、RXプログラマの開発、なひたふ直送便
  • 2月 MITOUJTAG2.4のリリース、EZ-USB FX3ボードの開発開始
  • 3月 「月刊特電技術」第1号
  • 4月 エレキジャック・フォーラムに出展、がじぇるねボードの設計
  • 5月 がじぇるね用ライブラリの開発
  • 6月 がじぇるね用ライブラリの開発
  • 7月 がじぇるね用ライブラリの開発
  • 8月 がじぇるねプロジェクトを離れる
  • 9月 ルネサスエンジニアフォーラムに出展 「月刊特電技術」第2号
       GR-PLUMの開発を依頼されるがRaXino-iの名称で出さざるを得なくなる
  • 10月 CEATEC出展 RXduino更新 オフィス模様替え 
       MITOUJTAG Air開発スタート RaXino-i出荷開始
  • 11月 ET2012出展 MITOUJTAGのパッケージを刷新 MITOUJTAG Airβ版
       「このままじゃだめぽ・・」ということで特電の方針転換
  • 12月 安い系マイコンから撤退 EZ-USB FX3の高速化 MITOUJTAG更新
       大型受託開発をいろいろ

その他、1年を通じて大小さまざまな受託案件を平行してやってました。

FPGAやJTAGの開発をするのが特電の本来の社会的使命だったと思うのですが、この1年間、大きく回り道をした感じがします。でも、そのおかげでマイコンに対する理解は深まったので成長はしていると思うので、その経験を活かしてZYNQやらMicroBlazeの開発に取り組めたらいいなと思います。

それとは関係ないのですが、今年は大事なことを学びました。これまで世の中にある取引先は(少なくとも組み込み業界は)すべて善意に基づいて取引していると思っていたのですが、実はそうではないところもあったのです。半分ぐらい納品したところで、代金の支払いをめぐって相手先がヤバイことに気が付き、交渉してみたのですが埒があかず、弁護士を探して相談にいきました。

その弁護士の先生は中学生の時までマイコン少年だったというので、話が通じやすく、いろいろアドバイスをしてくれました。本当に良い人にめぐり合えたと思います。

相手が有名だからとか老舗だからということで信用してしまうのではなく、取引の前に必ず信用調査をするのが重要だと学びました。そのまま気がつかずに進めていたらどんな状況になっていたかと思うと身震いがします。

本当にあのタイミングで気がついてよかったと思います。

また、9月末ごろから、特電の所在する地域(岩本町の南のあたり一帯)が寂れてきました。今では多くの店舗が閉店し、オフィスも閉められ、人通りもまばらです。大都会の真ん中でここだけ過疎が起きています。おそらくJRの大工事で「氣」の流れが変わって、その地域に良い「氣」が流れてこなくなったせいではないかと思うのですが、そんなことを嘆いても仕方がありません。

特電のオフィスだけでも「氣」を良くしなければと思い、必死で風水を試みました。まず、部屋の配置を大きく変えて、宅向やら方位やらを気にして一人一人の机や本棚の位置・向きを最適化しました。使われていない部品や機械を思い切っていっぱい捨てました。代わりに怪しげな風水グッズをいっぱい買いました。

そしたら、不思議なことに特電にどんどん良い変化が訪れたのです。11月の末ごろから作業の効率がとてもよくなり、受託案件が舞い込み、本来のFPGA/JTAGの開発ができるようになってきました。来年の春までの受託案件は確保できたので、来年の桜が咲くころにはかなり回復できているのではないかと思います。そうしたら、オフィスの引越しをしたいと思います。

特電は5年前に秋葉原から神田に移ってきたので、もう一度秋葉原に戻ろうかと思ったのですが、もはや秋葉原は電気の街ではなくなってしまっていました。メイドや、制服を着た変なのが1メートルおきに並んでビラを配っている街だったのです。私はメイドとかそういうのは好きではないので、どこに引っ越せばよいか一から考え中です。

お客様が特電に期待していることは、FPGAやJTAGを使った奇抜なアイデアだと思いますので、来年はFPGAの世界に戻ってきたいと思います。ALTERAのJTAG通信とか、XILINX用のJTAG-UARTとか、SATAコアのリリースとか、PCI Expressの64bit対応とか、SGDMAの謎解明とか、XILINX 7シリーズのボード設計とか、いろいろやりたいことがあります。

来年こそは、FPGAとJTAGの道をまっしぐらに進んでいきたいと思います。

| | コメント (0)

2012.12.30

MITOUJTAGがALTERA Cyclone4の書き込みに対応

MITOUJTAGをALTERA Cyclone4の書き込みに対応させるパッチをリリースします。

 ● 書き込みアルゴリズムの更新 更新日:平成24年12月30日

今回の検証につかったのは、このDE0-nanoボード。

De0nano_1

このボードをMITOUJTAGでコンフィグできるようにしました。

まず、DE0-nanoに最初から入っているデザインが動作しているときのようすをバウンダリスキャンします。

Cyc4_1

ここで、MITOUJTAGの書き込み機能を起動します。書き込むファイルは、QualtusIIで生成した非圧縮RBF形式にしてください。SOFからの直接の書き込みはまだできません。

Cyc4_6

びゅーーっと進捗バーが進んでいきます。

Cyc4_2

すると、書き込みが完了して、私が作ったLEDチカチカ(ナイトライダー風)が起動しました。

Cyc4_3

こんな感じで、書き込んだ直後から動いている端子の状態が見えます。

これだけだとQualtusIIのJTAG Programmerにもできるので、MITOUJTAGならではの「かゆいところに手が届く機能」をつけました。

Cyclone4の書き込みアルゴリズムを解析していて、面白いことを発見したのです。この特徴を使うと、コンフィグROMから起動させたり、させなかったりすることができます。そういうJTAG命令が隠されていたのです。

MITOUJTAGのCyclone4書き込みダイアログで、「Reconfigration from ROM」というチェックを外して、Eraseをします。すると・・

Cyc4_4

Cyclone4は、コンフィグROMからも起動せずに、完全に未コンフィグの状態に留まるのでした。つまり、コンフィグROMに何かのデータが入っている状態であっても、ROMを消さずに、FPGAを未コンフィグの状態にできます。

すべてのピンは静かな状態になって、コンフィグROMにつながるピンだけが出力になっているのがわかります。

Cyc4_5

Cyclone4の書き込みアルゴリズムの詳細についてはJTAGひろばのほうに書きました。

パッチは下記のリンクからダウンロードできます。

 ● 書き込みアルゴリズムの更新 更新日:平成24年12月30日

では、快適なFPGAライフをご堪能ください!

| | コメント (0)

2012.12.29

冬限定!MITOUJTAG Light版2.4を発売します

今年のお正月休みは、「MITOUJTAG Light(ライト)版」を使って、新しいスタイルでFPGAや組み込みCPUの開発をはじめてみませんか?

先月行われた展示会「ET2012」の弊社ブースにお越しいただいた方から、趣味でもJTAGを使いたいとのことで、MITOUJTAG Light版の復活を望む声をいただきました。多くの皆様からの熱いご期待、本当にありがとうございます。皆様からのご期待にお応えして、期間限定ですがMITOUJTAG Lightを再開することにいたしました。

Bannerl24

MITOUJTAG Light版は、非営利・非商用目的に限ってご利用いただけるMITOUJTAGの個人向けバージョンで、MITOUJTAG2.0 Proのプラットフォームをベースに構築されています。このツールを使うと、BGAの裏側が見え、FPGAが論理合成しなくても動くデバッグができるようになります。オシロや埋め込みロジアナだけでは決してできなかった「見える・楽しいデバッグ」が待っています。

Mjl_image

今年は、ZYNQなどのXILINX 7シリーズに対応したり、クラウドを介した遠隔操作など、MITOUJTAGにはいくつかの新しい試みがありました。今年はまだ残っているのでわずかな時間を使ってCyclone4への書き込みにも対応します。

新しく追加された機能は、MITOUJTAGサポートページからパッチをダウンロードできます。

MITOUJTAG Lightは平成25年1月15日までの期間限定発売ですが、もちろん、発売期間が過ぎた後もそのままお使いいただけます。そのうえ、その後、お得な価格でBASIC版へのバージョンアップもできます。

このバージョンは、仕事だけではなく個人でもFPGAの技術を身につけたいというパワフルな方や、先進の回路を趣味で研究する方、展示会や学園際のためにFPGAのデバッグに本腰を入れたいという方を対象にしています。

よって、個人のお客様でもご購入いただけるよう3万円台の価格を目指しました。
具体的にいうと34,800円です。Pocket JTAG Cableをつけると52,500円です。

このようなMITOUJTAG Light版(2012年冬バージョン)は、来年1月15日をもって販売終了とさせていただく予定です。その後の再復活の予定は、いまのところございません。

 ● MITOUJTAG Lightの紹介ページはこちら

さて、現在、MITOUJTAG Lightの即納可能な在庫は6個です。

Mjl_6pcs_2

というか6個しかありません。

この6セット分は、ご注文いただければすぐに発送できますが、もし完売してしまうと、次に製造できるのは年明けの1月8日ごろになります。特電はすでに年末年始休業に入っていますが、この商品の発送だけは31日まで行うことができるようにしています。

それから、ご注文の際には「代引き」をご選択ください。銀行が来年の1月4日までお休みなので、入金の確認ができませんので、「代引き」を選んでいただいたほうが早く出荷できます。

ご注文のオンラインショップはこちらです

 https://shop.tokudenkairo.co.jp/shopping/detail.php?shpdi=MJLIGHT

この冬は、MITOUJTAG Lightで、是非とも

BGAの裏側が見える楽しいデバッグをご堪能ください!

| | コメント (0)

2012.12.26

RXduiono商用ライセンスを初出荷!

RXマイコン用のお手軽ライブラリ『RXduiono 商用ライセンス』の注文をいただきまして、本日、ようやく初出荷できました!

Rxduinonouhin

ソースコードなどが納められたRXduinoのCD-ROMと、マニュアル(インストールガイド)、それからおまけにRaXino-iが1個付属しています。

ご注文をいただけたことが素直にうれしいです。

実は注文をいただいていたのはだいぶん前だったのですが、当方がもたもたしていたため、こんなに遅くなってしまいました。申し訳ございません。

本日の初出荷を期に、今後ますますRXduinoの機能アップを目指していきたいと思います。とりあえず、28日からRXduinoの更新を開始します。最初はイーサまわりをやります。

| | コメント (0)

MITOUJTAGをクラウド接続するためのパッチをリリース

MITOUJTAGをクラウドに接続して、インターネット経由で操作するためのパッチをリリースします。

mjair_patchはこちらからダウンロード

どういうことかというと、MITOUJTAGをWebブラウザ経由で遠隔操作できるというものなのですが、いままで特電社内で試験用に使用していたサーバ側を一般公開します。

インターネットに公開なんて恐ろしい・・と思うかもしれませんが、何も怖いことはありません。

① このパッチを使うと、皆様がお持ちのMITOUJTAGにインターネット接続の機能が追加されます。この機能はメインメニュから「ツール」→「ネットワーク接続」とやって、

Mjair_connect_1

インターネット接続ダイアログを出さないと有効になりません。無条件でいきなりネット接続されるわけではないのでご安心ください。

Mjair_connect_2

② 貴方の持っているMITOUJTAGは、JTAGサーバとなります。

サーバってなんぞや、ということになりますが、MITOUJTAG Airでは、

  • Web画面で操作するのがJTAGクライアント
  • 実際にハードウェアをつないでいるのがJTAGサーバ

と呼ぶことにしています。

Smapho_jtag_6

設定ダイアログでは、サーバ名所有者説明、の3つの欄を適当に記述してください。これは、MITOUJTAG Airで接続できる世界中のサーバの中から、貴方のサーバを識別するときに使われます。

③ セキュリティ的に大丈夫?と不安に思うかもしれません。

ご心配なさらないでください。

MITOUJTAGサーバは、外から接続を待ちうけることはありません。サーバという名称で呼んでいますが、貴方のMITOUJTAGは特電の社内にある「クラウド」に対してHTTPで接続しているだけです。

Mjair_connect_3

つまり、MITOUJTAGは、特電の社内に設置されたあるアドレスにあるWebサイトを見ているだけにすぎません。そして、URIのGETを使って様々な状態を送り、クラウドから返される文字列に従って動作するにすぎません。

そのため、NATを設定したり、ポートを開いたり、といった作業は一切ありません。外から貴方のMITOUJTAGに入ってくることはできません。すべてはクラウドサーバ(これもWebサーバ)から得られる文字列に従って動作するのみです。

Mjair_connect_4

それに、基本的に設定ダイアログを出して「接続」ボタンを押さない限り、インターネットに接続されることはありません。

④ クライアントはWebの画面経由でいろいろな操作情報を送り、それをクラウドサーバが解釈して、貴方のMITOUJTAGに送ってきます。こうして、貴方のMITOUJTAGは特電のWebサイトにあるMITOUJTAG Airのページを介して操作することができるようになります。

Mjair_connect_5

なお、この機能はまだβ版ですので、いくつかの制限があります。例えば、自分だけが見られるようにプロテクトをかけたいということができません。世界中から見えてしまいます。

ゆくゆくは、第三者の接続不可第三者はSAMPLEのみ可第三者にフルアクセス可グループにのみ許可、などのオプションをつけていきたいと思います。

皆様のJTAGバウンダリスキャンを試しに公開してみてください。きっと、世界中からいろいろとハードウェアを操作してくる人がいることでしょう。いろんな人がどんな操作をするかを見ていると面白いですよ。くれぐれもI/Oポートに自爆信号をつないだCPUやFPGAを公開しないようにしてください。

とりあえずは、適当な評価ボードなどをつなぐようにして、機密事項の入ったボードなどはつながないようにしてください。

クライアント側のMITOUJTAG Airは下記のURLにございます。

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

サーバ側のMITOUJTAGは、BASIC版、PRO版、Light版のいずれも対応しています。以下のパッチをパッチを適用すれば、この機能が追加されます。

mjair_patchはこちらからダウンロード

なお、皆様がお仕事で使われている会社の基板を公開するのはいろいろ問題があると思いますので、個人向けのMITOUJTAG Light版でも使えるようにしました。

MITOUJTAG Light版は、この冬、販売を再開しています。

この年末年始に本格的に発展させるつもりです。

この冬、みんなで J活(ジェイカツ) しましょう!

| | コメント (0)

TQFP144ピン版 RX63Nの生基板の無償配布はやはり中止となりました

あるところより無償で配るのはよくないとのご指摘をいただいたので、やはり、TQFP144ピン版 RX63Nの生基板の無償配布はやはり中止させていただくことになりました。

発送作業の実費程度をいただくことにさせていただきます。

特電のオンラインショップの「特価処分品」のコーナーに、この生基板を出品しましたので、どうぞご覧下さい。

Np1055_shop

https://shop.tokudenkairo.co.jp/shopping/detail.php?shpdi=NP1055BOARD

基板のみの定価は2000円で送料も込みです。プラス1500円でCPUもお付けします。

3枚限定です。品切れの場合は販売完了です。

タダでもらえるのか!?とご期待させてしまった方には大変申し訳ございませんが、そういう事情ですのでよろしくお願いします。

| | コメント (0)

2012.12.23

TQFP144ピン版 RX63NのArduino互換評価ボードの生基板を×××

会社を掃除していたらこんなボードの生基板が3枚出てきました。

Np1055

諸般の事情により、世に出ることはありませんでした。スペックは

  • RX63NのTQFP144ピン版のArduino互換ボードです。 (2MB)
  • RJ-45は低Height。Arduinoのシールドを乗せても干渉しない
  • パルストランスは外付け。イーサコントローラはKSZ8031
  • SDRAMを搭載可
  • RXduinoのライブラリでお手軽開発

Ether

Arduinoshield

Sdramport

本記事の内容は削除します。写真だけギャラリーとしてお楽しみください。

今年1年はいろいろありました。忘れたいことがいっぱいです。

| | コメント (0)

2012.12.22

MITOUJTAGがZYNQの書き込みに対応しました

MITOUJTAGがZYNQの書き込みに対応しました。

百聞は一見にしかず。↓のビデオを見てください。

LEDチカチカするためのbitファイルをJTAG経由でFPGAに転送しています。このように、iMPACTを使わずにXILINX 7シリーズのコンフィギュレーションが簡単にできるようになりました。

MITOUJTAGの特徴は書き込みをするだけではなく、書き込んだFPGAの端子の状態をモニタするということができることです。書き込んだデザインがちゃんと動いているかどうかをすぐに確認できます。

XILINXの7シリーズには、ZYNQ、Artix、Virtex-7、Kintexと4種類ありますが、その4種類とも、すべて書き込みアルゴリズムの考え方は一緒なようです。BitStreamの中身も解読することができるように目を養いました。

現時点ではXC7Z020のみの対応ですが、7シリーズの書き込みに対応したパッチは次のURLからダウンロードできようにしました。今後、デバイスが入手できればいろいろな7シリーズのFPGAに対応していきたいと思います。

http://www.tokudenkairo.co.jp/jtag/sp.html

↑のページに行って、書き込みアルゴリズムの更新 をダウンロードしてください。

なお、このパッチはMITOUJTAG2.1以降が対応しています。もちろん、MITOUJTAG Lightでも使えますので、ZEDBoardをお持ちの方は、ぜひ試してみてください。

| | コメント (0)

2012.12.20

ZEDBoardをJTAGでバウンダリスキャンする

AVNETのZED Boardを購入しました。

ZED Boardというのは、XILINXのARM内蔵FPGAである「ZYNQ」の評価ボードです。ZYNQのXC7Z020 CLG484が使われているようです(※ただし、ZYNQの上にはヒートシンクがのっているので、シルクは見えません。)

Zedboard

ZED Boardには、USBのポートが3つ!! (PROG UART OTGと書かれている)もあって、普段はUARTにつなげばよいようです。

万能基板のようなランドはなく、10ピンのボックス型ピンヘッダが5個とメザニンがあるだけで、拡張性は高いとはいません。そのほか、VGAやHDMI出力、GbE、オーディオ端子があります。付属のSDカードを差し込んで電源をONすると、カードからU-bootが起動して、すぐにLinuxが起動します。

Zedboard_boot

ZED Board.のWebサイトからサンプルデザインをダウンロードしてきても中にVHDLファイルはわずかしかないので、もはやFPGA評価ボードというよりはARMの評価ボードといった感じです。

さて、このARMFPGA評価ボードを普通に使うのではなく、MITOUJTAGを使ってバウンダリスキャンしてみましょう。

まず、MITOUJTAGを起動してZED Boardを認識させます。すると、CORTEX A9と、ZYNQの本体認識されました。CORTEX A9のJTAG IDCODEは4BA00477、ZYNQのJTAG IDCODEは03727093でした。CORTEX A9はバウンダリスキャンできないので、小さな灰色の■で表示されます。

Zedboard1

基板のシルクをみると、U14,U19,W22番あたりの端子がLEDにつながっているようなので、ここをMITOUJTAGの画面上でクリックしてやります。

Zedboard4

すると・・

と、このように操作することができました。

次に、Linuxが起動するまでの各I/O端子の状態をみてあげることにしましょう。

Zedboard2

リセットボタンを押すと、PS_SRST_Bという端子がLになります。その瞬間、INIT端子もLレベルを出力します。

その後、SDカードのSD-CMDとSD-D0が激しく動いて、なにやらデータを読み出している様子がうかがえます。10秒ほどすると、FPGAのDONE信号がL→Hにあがって、FPGAのコンフィギュレーションが完了したことがわかります。

同じタイミングで、こんどはDDR SDRAMの端子の状態を見てみます。

Zedboard3

FPGAが起動したくらいの時間(17秒目付近)からDDR2 SDRAMの信号が動き出しています。

おそらく、ZYNQの中のARMがSDカードからブートプログラムが起動して、その起動シーケンスの中でFPGAのコンフィギュレーションを行っているのでしょう。つまり、ARMがメインで、FPGAはサブというわけです。

このように、ZED Boardのデフォルトのデザインについては全く知識がないものの、端子の状態だけは自由自在に見たり操作することができました。MITOUJTAGのJTAGバウンダリスキャンを使えば、このようなことが簡単にできます。

さて、次はMITOUJTAGからZYNQのPL部分をJTAG経由でコンフィギュレーションできるようにしようと思います。

なお、今年の冬はMITOUJTAG Lightを発売します。MITOUJTAG Lightを使ってもZYNQのバウンダリスキャンができます。MITOUJTAG Lightは、非営利非商用の、個人向けMITOUJTAGで、趣味でもFPGAや組み込みCPUを極めたいハイレベルなエンジニアのためのツールです。

MITOUJTAG Lightは期間限定の発売なので、お早めにお申し込みください。詳しくはこちらのページをご覧ください。

https://shop.tokudenkairo.co.jp/topic/detail.php?tid=2012122000

| | コメント (1)

2012.12.16

EZ-USB FX3とFPGAの接続

EZ-USB FX3のSlaveFIFOが動くようになってきたので、FPGAと接続する方法を考えています。

バスの速度が100MHzなので、単純に接続しただけではうごかなさそう・・・。

まず、SLOEやSLCSなどの制御線はステートマシンで作りますが、ステートマシンの出力はレジスタになっているので、他の信号とANDやORしての組み合わせ回路にせずに、そのまま出せば、クロックの立ち上がりから数nsくらいでピンに出てくるでしょう。

そして、クロックだけはODDR2で出します。

inst_fx3clk : ODDR2 port map (
      Q => fx3_clk_op,
      C0 => clk, C1 => not clk,
      D0 => '1', D1 => '0',
      CE => '1', R => '0', S => '0'
);

こうすると、内部CLKが立ち上がってから、外部へCLKが出力されるタイミングのほうが、各種制御線の遷移よりも早くなります。

内部CLK ___|~~~|___|~~~|___|~~~|___|~~~|___|~~~|
出力CLK  ___|~~~|___|~~~|___|~~~|___|~~~|___|~~~|
制御信号  ___X=======X=======X=======X=======

だから、制御信号が遷移してから次のCLKまで十分な時間がとれるはずです。 まあ、本当は、ODDR2とか使ってクロックと制御信号のタイミングを厳密に指定するのがベストなのでしょうが・・さて、次にFX3→FPGA方向のデータの入力です。

このあたりは、ボードの配線やFPGAのピン配置で微妙に変わってくるのでなんともいえないのですが、特電FX3と特電Spartan-6の組み合わせでは、裏クロックでサンプリングしてやらねばなりませんでした。

process(clk) begin
  if(clk'event and clk='1') then
   fx3_din   <= fx3_d_bp;
  end if;
end process;

次の図は、FX3の出した信号(要するにカウントアップするだけのデータ)を、FPGAで取り込んだときの波形です。100MHzでやってくる信号をMITOUJTAGのFPGA内蔵ロジアナでサンプリングしています。

Fx3_fpga

一方、表クロックでサンプリングしたらこうなりました。データの遷移が激しいところで誤ったデータを取ってきてしまっています。どうやら期待したタイミングよりもFX3が出してくるデータの遷移のほうが早いようです。

Fx3_fpga_ng

さて、XILINXのISE13.3で論理合成していたのですが、入出力のタイミングを厳密にするためにOFDを使いたいと思ったのですが、デフォルトの設定では推論してくれないようですね。

process(clk) begin
  if(clk'event and clk='1') then
    signal_op <= signal;
  end if;
end process;

とやっても、OFDには割り当てされず、通常のロジックセル内のFFに割り当てられてしまいます。OFDなら、内部クロックから外のピンまでのタイミングがきっちり計算できるのですが、ただのFFだと配線遅延がどうなるかわからないので不安です。かといって、OFDプリミティブもないし。やはりODDR2で作るしかないのでしょうか。

たかが100MHzだからそこまで考えなくても動いてしまうのですが、どんなボードでも、どんなインプリメントオプションでも確実に動くコアにするには、きっちりやっておいたほうがいいと思いました。

あと、気になったのは、FX3に送るデータが、シーケンシャルなデータであるよりも、乱数列であるほうが若干速いという傾向が見られました。131MB/secが129MB/secになるくらいのわずかな差なのですが・・

Fx3_speed_2 

USB2.0では、シーケンシャルなデータだと0が並ぶからビット挿入が起こって遅くなるという現象は経験したのですが、USB3.0にも同じようなことがあるのかもしれません。

もうひとつ気になったのは、FPGA→FX3への書き込み、つまりBulkIn転送のときに、とりこんだデータが10バイトほどずれることがあることです。書き込んだはずのデータが欠損しています。

なんとなく、FLAGAやFLAGBのタイミングは、SlaveFIFOが、エンプティやフルになったときからかなり時間が経ってから遷移しているような気がします。

FPGAの出力するSLWRとデータバスの関係を見ていても問題はないようなので、FX3の中のFIFOが溢れてしまっているのでしょう。FLAGAとかFLAGBの関係ももう少しきっちりとやらねばならないようです。

現時点でのFX3用サンプルプログラムとFPGAのソースコードはこちらにおいておきます。

| | コメント (6)

2012.12.13

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

EZ-USB FX3とFPGAをつないで、転送速度が207MB/secまでいきました。

実験に使ったボードは特電のFX3評価ボードです。

Fx3_fpga_1213

といっても、この速度を出すにはいろいろ条件があるのですが・・

最初に、前の記事で皆様にコメントいただいたようなepCfg.burstLen=15や、ディスクリプタの変更を行ってみたのですが、それだけでは速度が出ませんでした。なんでだろうと思って、Cypressのアプリケーションノート「AN65974」の中にあるファームウェアをためしてみると、FPGAとつなぐSlaveFIFOで207MB/secでました。

Fx3_210mb


ただ、AN65974 のファームウェアは、SlaveFIFOを32bit幅で扱います。すると、データバスの能力は400MB/secなのですが、その約半分しか出ていないことになります。またデータバスを32bitにしてしまうと、FPGAの利用可能なピンが減ってしまうので、できればやりたくありません。(カメラがつなげられないでしょ?)

そこで、なんとか16bit幅で高速にできないものかと考えました。

まず、AN65974にある

#define CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT (1) 

#define CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT (0) 

にしてみました。これはダメ。GPIFが32bit用にコンフィギュレーションされているのか、うんともすんともいいません。

よくわからないのですが、AN65974と見比べながらいろいろな部分を参考に変えていったら、16bit幅でも130MB/secが出るようになりました。

Fx3_130mb

たぶん、

#define CY_FX_SLFIFO_DMA_BUF_COUNT      (2)

#define CY_FX_SLFIFO_DMA_BUF_COUNT      (4)

にすることが効いたのだと思います。


このときのデータバスの波形を次の写真に示します。

Fx3_burst_wave

こんな感じで間欠動作しています。1回のバーストが82μ秒なので、おそらく8192バイトのデータが入っていると思われます。このような感じで、82μ秒バーストして、40μ秒ほど休んで、バーストして、休んでを繰り返しているので、データバスの使用率は67%程度になります。データバスは16bitにしているので、130MB/secくらいになります。

で、この67%というのがある意味「FX3の結構いい数値」なんじゃないかなと思います。

たとえば、githubにnoritanさんが作ってくださったDMA MultiChannelのサンプルがあります。これはFX3内部で何らかのデータを発生させてBulkInでとってくるものなのですが、速度は270MB/secでした。このサンプルはチップ内部で完結しているのでバス幅は32bitと考えると、やはり使用率は65%です。

Fx3_dmamul

やりかたをまとめると、まず、SlaveFIFOSyncをもってきて、

  1. cyfxslfifosync.hにある #define CY_FX_SLFIFO_DMA_BUF_COUNT が2になっているので、4にする。
  2. cyfxslfifosync.cにある、dmaCfg.sizeとepCfg.burstLenを変更する。
    ・ epCfg.burstLen = 16;
    ・ dmaCfg.size  = size * 16;
  3. cyfxslfifousbdscr.cにあるデスクリプタの定義、「CY_U3P_SS_EP_COMPN_DESCR」の中の
        0x00, /* Max no. of packets in a burst : 0: burst 1 packet at a time */
    という行を
        0x0f, /* Max no. of packets in a burst : 0: burst 1 packet at a time */
    に変更する。(2か所 153行目と168行目)

バスの帯域をMaxに使うことはできないけど、余裕で100MBを超えられることは確認できました。簡単にPCI Express x1の速度を超えられるのです。バスの帯域は最大値の67%くらいというのが現実的なラインなのかもしれません。

次はFPGA内部のロジックと正しくデータを受け渡しするための方法について考えてみたいと思います。

なお、特電のFX3評価ボードは在庫残りわずかになってきました。次のロットは年明けになると思いますので、ご興味をお持ちの方はおはやめにお願いします。

| | コメント (1)

2012.12.05

E1とHEWで究極のRX62Nボードをデバッグする方法

「究極のRX62Nボード」をお買い上げいただいたお客様から、E1エミュレータとHEWで接続しようとすると「JTAG通信エラーが発生しました。JTAGクロックを下げてお試し下さい。」というエラーが出るというお問い合わせをいただいたので、調べてみました。

E1エミュレータとHEWのデバッグ環境はセットアップするまでに選択肢がいろいろあるので、その手順を書き留めておきます。

まず、究極のRX62Nボードは、DIPスイッチを上下下下にします。E1エミュレータのケーブルの向きは写真のとおりです。この例では電源はACアダプタから取っています。USBから電源を取る場合はCN6のほうにつないでください。

E1hew_top

基板の裏側のジャンパ設定はこんな感じです。

E1hew_bot

・J1とJ4は、オープンでもショートでも構いません。
・J2とJ3も、オープンでもショートでも構いませんが、ショートにしておいてください。
・J5はオープンにしてください。

次に、HEWの使い方を書きます。

① まず、HEWを起動します。今回使ったHEWは、Version 4.09.00.007で評価版です。

最初のダイアログでは「新規プロジェクトワークスペースの作成」を選択し、OKを押します。

E1hew_1

②次に、Debugger onlyのプロジェクトを作成します。ワークスペース名は任意ですが、ここでは"e1debug"にしておきます。

E1hew_2

③ターゲットは、「RX E1/E20 SYSTEM」にしておきます。「RX600 E1/E20 SYSTEM」と迷うところですが、どちらでもいけるようです。

E1hew_3

④確認画面なので、そのまま完了を押します。

E1hew_4_2

⑤確認画面です。OKを押します。

E1hew_5

⑥次に、デバイスと書かれたダイアログが開きます。ここでE1エミュレータのシリアル番号が表示されているはずです。シリアル番号が「**S009985 ~ **S012740」の人は、無償交換をしているようなのでこちらのページから交換してもらったほうがいいかもしれません。

E1hew_6_2

⑦MCUグループはRX62N Group、デバイス命はR5F562N8を選択します。デバッグモードで、ホットプラグインはOFFにしておきます。電源供給のチェックボックスもOFFにします。

E1hew_7_2 

⑧運命のダイアログです。デフォルトのまま、シングルチップモード・シングルチップモード・16.5MHzでいいはずです。。

E1hew_8

⑨「接続中」と書かれたダイアログが出るはずです。うまくいかない場合は、後々の解析に使うので「接続処理が終了したら・・・」のチェックボックスもOFFにしてください。

E1hew_9_2

⑩このダイアログがでたら、EXTAL周波数に12MHzを設定してOKを押してください。

E1hew_10

⑪さきほどの「接続中」ダイアログが最後までいって、Completeと出るはずです。

E1hew_11

うまくいったときの私のダイアログの表示内容です。

Connecting...
FFW module initialization.
Setting of USB packet size.
Setting of time out value.
  BFW:10sec  FFW:30sec
Acquisition of emulator information.
  Version Info.
  E20RX.DLL	1.02.00.008
  FFWE20RX600.DLL	1.02.00.015
  BFWE20RX600.S
      LEVEL0 Ver	1.00.00.000
      LEVEL1 Ver	1.02.00.008
  COMMUNI.DLL	2.05.00.000
  Board Revision.
      E1	Rev.02
  FPGA Info.
      FPGA Status	CONFIGURED
      FPGA Version	0A
          Communication FPGA Version	09
      User VCC	3.28 V
      Target Board	CONNECTED
Setting of debugging information.
Setting of JTAG clock.
  JTAG Clock	16.5 MHz
Connecting to MCU...
Debug function authentication.
Acquisition of MCU information.
  Default Endian	Little
  MCU Status	NORMAL
  Execution status	STOP
  MD1/MD0	H/H
  MD		L
Setting of information on individual MCU.
Initialization of internal setting of emulator.

Complete.

⑫ HEWのメイン画面になるので、CPUリセットのボタンを押します。

E1hew_12

⑬ CPUのリセットコードが表示されます。最初はUSPとISPレジスタの設定から始まりますが、そうならない場合はデバイスの選択で違うデバイスが選択されている可能性があります。R5F562N8が選ばれているかどうか確認してください。

E1hew_13

⑭ もし、GCCで作成したプログラムをダウンロードしたい場合は、ファイルフォーマットでElf_Dwarf2 KPITを選択してください。GCCのファイルはKPITとして扱われます。ファイルのところには、生成されたelfを指定してください。

E1hew_14

これで、HEWとE1でうまくいけるはずです。

それでもうまくいかない場合は、製造上の不良の可能性もありますので、メールをいただければ幸いです。送り返していただければ検証したいと思います。

| | コメント (0)

2012.12.03

特殊電子回路の決意・RaXinoとRaXino-iの販売を終了します

いままで、特殊電子回路はRX62N/RX63Nの評価ボードとして、

 ● 究極のRX62Nボード
 ● RaXino
 ● RaXino-i

と、3種類のボードを販売してきました。

このうち、RaXinoとRaXino-iの販売を終了することにしました。RaXino-iは発売開始からわずか1ヶ月しかたっていないのですが、このような「安い系のCPU評価ボードの事業撤退」という決断をしました。

というのは、これからはRXマイコン評価ボードを販売するのではなく、良質なライブラリ(ミドルウェア)としてのRXduinoの開発に努めようと思ったからです。今後はライブラリの販売と、いままでお買い上げいただいたお客様へのサポートに注力していきます。

そもそも、この手の安い系の評価ボードは各社が値下げ競争をくりひろげていて、これ以上関わっていても消耗するだけです。「あっちは12$だ」とか、「○○は2400円だから、それに負けないように新しいのを作ろう」とか、そういう会話ばかり聞くようになりました。

RXマイコン系のボードがライバルなんじゃなくて、Cortexとか、NXPとか、Zynqとか、LPC何とかとか、すべてひっくるめて、安い系CPUボードの市場というもの全体が終わった感じがするのです。終わったのは安い系のCPUボードだけじゃなくて、電子回路系の各種の評価ボード市場がすべて終わったのかもしれないという感じさえあります。

自分もその流れに加担してしまった感じはあるので、後悔しているのですが、私がやらなくてもだれかがやったでしょう。世の中の流れですから。


次の図は、あくまでも私の主観的なイメージなのですが、CPU評価ボードの価格はこの2、3年で大きく下がりました。統計的に解析する方法はあるにはあるのですが、データをあつめるのが面倒なので、あくまでも主観です。でも、そんなに外れていないと思います。

Cpu_sijou

かつて、2~3万円はしたはずの評価ボードが、いまや2~3千円台です。この1~2年くらいで何とかduinoと称するボードがたくさん出たし、その互換機もたくさん出ています。ETの会場で500円で売られていた評価ボードもあります。

こういったボードを趣味の人だけではなく企業で仕事で使っていらっしゃる方も多いのです。つまり、安かろう悪かろうではなく、安くてそこそこ質もよいものが数千円で出るようになってきた。そうなると、他社との差異を出すために、「基板の色を変えました」とか、「○○センサをつけました」とか「USBで書き込みできる」とか、そういう差異しか生じなくなってしまいます。他社製品の価格を念頭において、同じような価格で少しでもメリットを出そうという発想になります。

細かな差異はあるにせよ、おおまかな「価格帯」という枠内での機能追加なので、結局のところ価格競争であることには変わりありません。結局、世界でグローバルに戦っているわけですから、中国や東南アジアの人件費に勝てるわけないですよね。

これから先、「安い系CPU評価ボード」という市場がどうなるか。私なりの予測を立ててみると、

  1. どこのメーカーもすでに原価ぎりぎりでやっていてほとんど利益は出ていない。
  2. ローエンド・ミドルレンジの組み込みCPUという市場が、すでに性能的にも機能的にも成熟していて、大幅な機能追加や性能向上などを望まなくても、だいたいのことができるようになってきている。
  3. したがって、CPUを変えても(同一ベンダでアップグレードしても、他社製品に乗り換えても、)それほどできることに差はなくなっている。
  4. 利益を出すためにたくさん売るという発想になる。そのためには価格を下げるか、ちょこっとした差異を付けて他社との差異をアピールするようになる。
  5. しかし、すでに市場にはたくさんのCPUボードが溢れているので、思ったほど売れない。ライバルは、同じCPUを搭載したボードじゃなくて、CPUボード全体だからどうしようもない。
  6. 作ってしまった在庫を処分し、その損失をカバーするために、新製品を作ろうと企画する。そして1に戻る。

という感じの悪循環がますます進んでいくのではないかと思います。

だから撤退します。

特電は12月7日を以って、RaXinoとRaXino-iの販売を終了します。

さて、突然、RaXinoやRaXino-iを撤退してしまっては、いままでご購入いただいたお客様に申し訳が立ちません。そこで、既にお買い上げいただいたお客様がリピートでご購入いただけるよう何個か生産しておきます。RaXinoに関しては、現在お使いのお客様に限り、しばらくの間の注文を受け付けます。

今後のロードマップについて書きました。詳しくはこちらをご覧ください。

http://rx.tokudenkairo.co.jp/loadmap.html

RaXinoとRaXino-iの新規受注は12月7日の23時59分までです。それ以降はお買い上げいただくことができませんので、ご注意ください。

で、特殊電子回路がこれから何をするかというと、CANとイーサかなぁ・・・

来年はCANの勉強します。

| | コメント (2)

« 2012年11月 | トップページ | 2013年1月 »