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Ω抵抗を介して接続した。
- ソフトの変更点
- ソフトの特徴
- ダウンロード
オリジナルのソフトは 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 のシステムを開発するにあたって便利なツールを紹介します。
- ホストソフトウェアの制作
ホストソフトとは PC 側のソフトウェアのことです。自作のUSB機器を制御する際に必要になる場合があります。PCのソフトを組める環境が必要になります。筆者は VC++Ver.6 を用いています。
- USB 動作確認
USB Verifier を使っていますが、ググッても見つかりませんでした。
- USB トラフィック解析
USB のプロトコルアナライザーは非常に高価です。それに変わるツールがこの USB Snoopy です。
謝辞
以下の方に感謝の意を捧げます。
- Optimize 氏(USB ターゲットボードを寄贈)
- A.K.氏(先輩)
|