マイクロキーボード その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の書き換え方法

  1. EEPROMの5ピンをGNDにしてPCに接続する
  2. EEPROMの5ピンをノーマル状態にする
  3. EZ-USB Control PanelのDownloadでVend_AX.hexを書き込む
  4. EZ-USB Control PanelでReq=A9、Value=0、Index=0,Length=1,DIR=0OUT,HexByte=ffとし、VendReqボタンをクリック
  5. USBケーブルを一度抜き、再度挿す
  6. EZ-USB Control PanelのEEPROMでIICファイルを書き込む