USBプロジェクト - HIDデバイス(2) [USB]
MC908JB16で制御するLCDモジュールに文字を表示させました。 まずは、有名なご挨拶から。
起動時のトランザクション
トランザクションをLCDモジュールに記号で表示するようにしました。 このため、起動時のトランザクションを確認することが出来ます。
so-netは、WMVファイルを受付けないので、yahooにリンクしています。
yahooは、サービスを停止したため、YouTubeに引っ越しました。
速すぎて表示が読めないので、書き起こしました。
記号 | 意味 |
---|---|
GDD | GET_DESCRIPTORリクエストがDEVICEデスクリプタを要求しました。 |
Sa | SET_ADDRESSリクエストが届きました。 |
GDD | 再度GET_DESCRIPTORリクエストがDEVICEデスクリプタを要求しました。 |
GDC | GET_DESCRIPTORリクエストが2回CONFIGURATIONデスクリプタを要求しました。 |
GDC | |
GDS | GET_DESCRIPTORリクエストがSTRINGデスクリプタを4回要求しました。 |
GDS | |
GDS | |
GDS | |
GDD | 再度GET_DESCRIPTORリクエストがDEVICEデスクリプタを要求しました。 |
GDC | GET_DESCRIPTORリクエストが2回CONFIGURATIONデスクリプタを要求しました。 |
GDC | |
Sc | SET_CONFIGURATIONリクエストが届きました。 |
GDR | GET_DESCRIPTORリクエストがREPORTデスクリプタを要求しました。 |
赤いLEDが点灯しているのは、どこかで"STALL"が発行された事を示しています。
付録 : USBプロジェクト索引
- USBプロジェクト - ファームウェアに立ち返る (1)
- USBプロジェクト - ファームウェアに立ち返る (2)
- USBプロジェクト - ファームウェアに立ち返る (3)
- USBプロジェクト - ファームウェアに立ち返る (4)
- USBプロジェクト - ファームウェアに立ち返る (5)
- USBプロジェクト - ファームウェアに立ち返る (6)
- USBプロジェクト - ファームウェアに立ち返る (7)
- USBプロジェクト - ファームウェアに立ち返る (8)
- USBプロジェクト - ファームウェアに立ち返る (9)
- USBプロジェクト - ファームウェアに立ち返る (10)
- USBプロジェクト - ファームウェアに立ち返る (11)
- USBプロジェクト - ファームウェアに立ち返る (12)
- USBプロジェクト - ファームウェアに立ち返る (13)
- USBプロジェクト - HIDデバイス(1)
- USBプロジェクト - HIDデバイス(2)
- USBプロジェクト - HIDデバイス(3)
- USBプロジェクト - 複合デバイスを考えた
- USBプロジェクト - HIDデバイス(4)
- USBプロジェクト - HIDデバイス(5)
参考文献
USBハード&ソフト開発のすべて―USBコントローラの使い方からWindows/Linuxドライバの作成まで (TECHI―Bus Interface)
- 作者: インターフェース編集部
- 出版社/メーカー: CQ出版
- 発売日: 2006/07
- メディア: 単行本
USBターゲット機器開発のすべて―各種USBコントローラの使い方と基本ソフトウェアの作成法 (TECHI―Bus Interface)
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2005/08
- メディア: 単行本
>赤いLEDが点灯しているのは、どこかで"STALL"が発行された事を示しています。
SET_CONFIGURATIONの直後のSET_IDLEでしょう。Duration = Infinity (0)を指定してきますが、STALLしてもぜんぜんOKです。
ここにベンダ特定型HIDのWinXPでのエニュメレーションの過程を貼っています。
"Difference on HID enumeration on Win, Linux and Mac" on SiLabs USB Forum
http://www.cygnal.org/ubb/Forum9/HTML/001325.html
Tsuneo
by Tsuneo (2008-04-09 23:41)
ふむふむ。
こうやって一覧にするとわかりやすいですね。この中ではSET_IDLEだけがSETUPを受信したらSTALLしています。
MC908JB16でコレだけの情報量を出そうとすると、次はシリアル出力を出したくなってきますね。トラ技の付録基板を使ってやろうかな。
by noritan (2008-04-10 08:43)
まだまだ何やってるか分かってないのですが、何となく、USBが何やっているか、高価なハードウエアモニタが無くても、正常に動くファームがあれば、VBでよくやる、Msgbox関数によるデバッグのような方法で分かってくる、と言うことなのでしょうか。
タイミングは・・・・何回でも繰り返してくれると言うことですし。
by DAI (2008-04-13 14:53)
プロジェクトを解凍してもらうとわかるのですが、デバイスに依存する"main.c"は、ベタにメインループを組んだだけなので、非常にシンプルです。もう、割り込みなんか必要ありません。
デバッグ段階では、LCD表示が役に立ちました。LCDの表示を見て、どこで止まっているのか見当がつきますので、すぐに対処できます。もし、PCにシリアル・インターフェースが二つあったら、そちらのほうが情報量が多いので、もっとデバッグしやすいと思います。
DAIさんも、ぜひ、挑戦してみてください。
by noritan (2008-04-13 18:35)