Accessory Modeにならない件についていろいろ考え込んだが、Android DeveloperにあるArduinoのADKサンプルを見て調べるのが一番よいだろう、ということになった。
まず、VID/PIDを切り替えるところ。
これは、AndroidAccessory.cppのswitchDevice()でやっている。
最後にACCESSORY_STARTしたあと、USBタスクの状態がUSB_DETACHED_SUBSTATE_WAIT_FOR_DEVICEになるまで待っている。
状態がUSB_DETACHED_SUBSTATE_WAIT_FOR_DEVICEになるのは、USBタスクの状態がUSB_DETACHED_SUBSTATE_INITIALIZEになったあと。
ではUSB_DETACHED_SUBSTATE_INITIALIZEになるのはどういうときかというと、VBUSの状態がSE0になったときのようだ。
コメントには、SE0はdisconnected、となっているが、はてさて。
USB2.0の仕様書を読むと、Assert_Single_Ended_Zeroというポートがあった。
これのようだ。D+とD-がVOLよりも小さいという条件かな。
VBUSは電源と見てよさそうだから、電源供給が断たれた?
でも、ホストだよ??
まったく踏み込むつもりがないところに入り込んでしまった、居心地の悪さを感じる。。
私はソフト屋さんなので、ハードが関係しそうなところとは極力距離を置いているのだ。
置いているというか、置かれているというか。。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。