1

我正在设计一个 USB OTG 板作为 Android 的扩展板。该板基于飞思卡尔 KL25Z128VLK4。大部分设计类似于 Sparkfun 的 IOIO,但有一些扩展。

  1. 通过将 Android 手机 (Galaxy Nexus) 的 OTG 电缆连接到 KL25Z 板,Android 充当 USB 主机,KL25Z 充当设备 B (CDC)。
  2. 通过反向连接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?有任何文件、实验室和开放项目吗?

4

1 回答 1

1

截至目前,Android 不支持 HNP 协议。这样做的唯一方法是重置板上的 USB 堆栈,并在每次要切换模式时重新枚举。

于 2013-05-14T20:47:31.190 回答