マイクロキーボード その25
デバック中 メモ
・WindowsXPはHIDクラスのRevisionを見ていない。1001,0100,0001でも動く
・タイマー割り込みは動いており、ハングアップはしていない
・TD_POLLでデータを用意してもPocketPCは読みにこない?
・GET_DESCRIPTORでREPORTは読みにきている。EZ-USBとしては送付も完了してる
・SET_IDLEは発行されない。WindowsXPは発行する
・BOOT_PROTOCOLを設定しても、SET_PROTOCOLは発行されない
・GET_IDLEは発行されない。
・GET_PROTOCOLは発行されない。
・SET_PROTOCOLは発行されない。
以上のことから、BOOT_Protocolの可能性はなく、ReportによりPocketPC側が無反応になっていると思われる。
STALLを発行しているところを取り除いてみたが結果は同じくNG。
何らかの理由でPocketPCがINパケットを発行しないようにしか思えない。理由は何だ!
EEPROMでは不要と思われるRe-enumuration文を取り除く、これでWindowsXPで、接続時に一瞬表示されていた”認識できないデバイス”というメッセージがでなくなった。しかし、これでもPocketPCでは結果は変わらず!
気をとりなおして、PocketPC2002/英語版で試したら動きました。どれで動くようになったのだろうか!しかし、ハードリセットしたe800では相変わらず動きません。キーのアサインは英語OSでは予定通り動きました。さてさてなぜe800/PocketPC2003SEで動かないのだろうか!謎が深まります。USB−HDDは動くので(とあるドライバをインストールしてますが)、故障ではないです。
やたー!!!e800で動くようになりました。やったことはReportDescriptorからLED関係のDescriptorを取り除きました。はて、これはOUTなので、e800はOUTしようとしている?OUTはEndPoint0から行うべきなのですが!
EEPROMの書き換え方法
- EEPROMの5ピンをGNDにしてPCに接続する
- EEPROMの5ピンをノーマル状態にする
- EZ-USB Control PanelのDownloadでVend_AX.hexを書き込む
- EZ-USB Control PanelでReq=A9、Value=0、Index=0,Length=1,DIR=0OUT,HexByte=ffとし、VendReqボタンをクリック
- USBケーブルを一度抜き、再度挿す
- EZ-USB Control PanelのEEPROMでIICファイルを書き込む