TeamKNOx WEB-Site

USB Knowhow
EZ-USB
FX2
Tools
謝辞
<< 戻る


    USB 開発関連の知識を共有するために開設しました。Cypress の EZ-USB, FX2 関連を主に取り上げます。


  • EZ-USB

    (トランジスタ技術2003年6〜8月号参照)

    オリジナルUSB機器の設計と製作


    • 開発目的

      ハードウェアの習得は実際に手を使わなければいけないので、ソフトに比べて困難になります。特に昨今のOS下で動作する環境は全てが完璧に動作していないとそこから先に一歩も進めないと言った状況になります。完璧に動作しているのを踏まえた上で、少しずつシステムを改造しながら所望のシステム近づけていくことになります。このような開発スタイルはフレームワークと呼びますが、USB開発もハードを含めて実現してしまおうと言うのが目的です。

    • システム構成

      マイコン学習の基本である LED の点灯とポートの読み取りを USB のターゲットボードを使って実現します。対象となる基板は Optimize 製ボード miniEZ-USB と IPI社製の評価ボードです。

      • ターゲット側〜テスト回路


      • ホストソフトウェア


    • Download

      CQ出版社・トランジスタ技術のダウンロードサービスからダウンロード可能です。

      オリジナルUSB機器の設計と製作のサンプルコード

    • 応用例

      応用例としては当チームで開発した ULA などがあります。これは ゲームボーイアドバンスとPC を接続してゲームカートリッジの吸い上げやGBA そのものをジョイスティックにするためのものです。


  • FX2 (お手軽USB2.0)

    • 開発目的

      EZ-USB と同様に手軽に USB2.0 の機器を開発できないかと考えました。つまり、ファームの制作は SDCC で行い、ホストソフトウェアの制作は手なれた PC 用の開発ツールを使っての USB2.0 開発です。しかし、USB2.0 は思ったより手強かったのでした。Cypress のサンプルソフトは全て商用コンパイラである Keil をベースにかかれています。これを SDCC にナントカ、コンバートしようとしましたがなかなかうまくいきませんでした。せめて、Renumlation さえうまくいけば…。

    • システム構成

      今回のシステムは LINUX 用に開発されたシステムをなるべく変更を加えずにフレームワークとして再利用することにしました。このシステムは状態監視用の LED を2個持っています。この LED を制御するための方法を設計して実装してみることにします。

      • ハードの変更点
        • オリジナルから

          なし

        • USB2GBA から

          LED を2個 810Ω抵抗を介して接続した。

      • ソフトの変更点
        • ファームウェア

          動作確認用のLEDを直接、ホストソフトウェアから制御できるように改造。

        • ホストソフトウェア

          元々が Linux 用であるので、Windows 用を新規作成。

      • ソフトの特徴
        • ファームウェア

        • ホストソフトウェア

          ホストソフトウェアは VC++Ver.6 で記述されています。ウィザードから出力されるコードを極力そのままに記述してあるので、見た目は悪いですが、何をやっているかの理解はしやすいと思います。また、このソフトから EZ-USB を動作させる部分をクラス化しているので自分で作ったソフトに簡単に利用することが出来ます。

    • ダウンロード

      オリジナルのソフトは GPL になっていますので、ファームウェアを制作した際には貴ファームウェアも GPL に準拠するようにしてください。

    • ビルド方法(ファームウェア)

      • SDCC-2.4.0 をインストール
      • Cypress のツールをインストールしたときに同時にインストールされるHex2Bix.exe をC:\Program Files\SDCC\bin にコピーします。
      • fx2.h, fx2regs.h を C:\Program Files\SDCC\includeにコピーします。
      • make します。(make は適当なものを使ってください。make にパスが通っていれば make 一発で出来上がります。)
      • make bix (hex2bix を起動して *.bix ファイルを作成します。)

    • 今後

      入力部分を実装したり、GPIFの学習が行えるようなシステムにしたいです。


    • Tools (開発スピードアップ)

      USB のシステムを開発するにあたって便利なツールを紹介します。

      • ファームウェアの制作

        ファームウェアはUSB のターゲット側で使われるマイコンソフトになります。Cypress の EZ-USB, FX シリーズは i8051 互換のマイコンが使われています。i8051 用のフリーのコンパイラは SDCC が有名です。今回のシステムもこの SDCC を利用しています。 SDCC は評価版のコンパイラにありがちなファームウェアの容量制限などはありません。自由に使うことが出来ます。

      • ホストソフトウェアの制作

        ホストソフトとは PC 側のソフトウェアのことです。自作のUSB機器を制御する際に必要になる場合があります。PCのソフトを組める環境が必要になります。筆者は VC++Ver.6 を用いています。

      • USB 動作確認

        USB Verifier を使っていますが、ググッても見つかりませんでした。

      • USB トラフィック解析

        USB のプロトコルアナライザーは非常に高価です。それに変わるツールがこの USB Snoopy です。


    • 謝辞

      以下の方に感謝の意を捧げます。

      • Optimize 氏(USB ターゲットボードを寄贈)
      • A.K.氏(先輩)


頁の先頭
織田裕一へメール


Copyright (C) 2004-2005 TeamKNOx