我正在设计一个 USB OTG 板作为 Android 的扩展板。该板基于飞思卡尔 KL25Z128VLK4。大部分设计类似于 Sparkfun 的 IOIO,但有一些扩展。
- 通过将 Android 手机 (Galaxy Nexus) 的 OTG 电缆连接到 KL25Z 板,Android 充当 USB 主机,KL25Z 充当设备 B (CDC)。
- 通过反向连接OTG线,Android工作在AOA/ADK/ADB模式,KL25Z为Android提供VBUS和充电电流。
在当前设计中,切换角色主机/设备必须通过交换电缆连接手动完成。但是,在后一种情况下,如果 KL25Z 无法为 Android 提供足够的电流,KL25Z 想将主机角色移交给 Android,因此它可以关闭 5V/500mA 的主电源,并在 Android 的 VBUS 下工作在低功耗模式。
无论如何,我希望我的主板支持主机/设备之间的切换模式,以及在 Android 中的支持。
OTG中A/B切换原则上应启动HNP协议。但是,我不知道如何在 Android 端处理它。我的意思是我不知道 Android SDK 如何以编程方式支持 HNP?涉及任何API?有任何文件、实验室和开放项目吗?