2012/06/02

[usb]SE0はSingle Ended Zeroの略だろう

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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。