2013-03-24 65 views
0

我正在設計一個USB OTG板作爲Android的擴展板。該電路板基於飛思卡爾KL25Z128VLK4。設計的大部分與Sparkfun的IOIO類似,但有一些擴展。如何在Android中切換USB模式?

  1. 通過從Android手機(Galaxy Nexus的)連接OTG電纜KL25Z 板,機器人充當USB主機和KL25Z充當設備B(CDC)。
  2. 通過反向連接OTG電纜,Android工作在AOA/ADK/ADB模式, 和KL25Z爲VBUS提供電源併爲Android充電。

在當前的設計中,交換角色主機/設備必須通過交換電纜連接手動完成。然而,後一種情況下,如果KL25Z無法提供足夠的Android電流,KL25Z會將主機角色移交給Android,因此可以關閉5V/500mA的主電源,並且可以使用Android的VBUS以低功耗模式工作。

無論如何,我希望我的主板支持HOST/Device之間的切換模式,以及Android中的支持。

原則上,應該啓動HNP協議來切換OTG中的A/B。但是,我不知道如何在Android端處理它。我的意思是我不知道Android SDK如何以編程方式支持HNP?涉及的任何API?任何文件,實驗室和開放項目?

回答

1

截至目前,Android不支持HNP協議。做到這一點的唯一方法是重置板上的USB堆棧,並在每次想要切換模式時重新枚舉。

+0

你的意思是,手動切換我的主板和Android設備之間的電纜? – 2013-07-12 02:32:14

+0

您不需要切換電纜。您可以將USB OTG ID引腳綁定到gpio。所以當你想讓手機主機將ID引腳接地並重置KL25Z上的usb堆棧時。這需要修改一些電纜。 – Jason 2013-08-04 05:55:00

相關問題