2013-03-24 2 views
0

저는 Android 용 확장 보드로 USB OTG 보드를 설계하고 있습니다. 이 보드는 Freescale KL25Z128VLK4를 기반으로합니다. 디자인의 대부분은 스파크 펀 (Sparkfun)의 IOIO와 유사하며 일부 확장이 포함되어 있습니다. KL25Z 안드로이드 폰 (갤럭시 넥서스)로부터 보드 OTG 케이블을 접속함으로써안드로이드에서 USB 모드를 전환하는 방법?

  1. 안드로이드는 USB 호스트로 동작하고 KL25Z 디바이스 B (CDC)로서 작용한다.
  2. OTG 케이블을 역 접속하면 안드로이드는 AOA/ADK/ADB 모드에서 작동하고 및 KL25Z는 VBUS를 소스로 사용하여 Android에 전류를 충전합니다.

현재 설계에서 전환 역할 호스트/장치는 케이블 연결을 바꿔 수동으로 수행해야합니다. 그러나 후자의 경우, KL25Z가 안드로이드에 충분한 전류를 공급할 수 없다면, KL25Z는 안드로이드에 호스트 역할을 넘기려고하므로 5V/500mA의 메인 전원을 끌 수 있고 안드로이드에서 VBUS로 저전력 모드로 작동 할 수 있습니다.

어쨌든 내 보드가 HOST/Device 사이에서 전환 모드를 지원하고 Android에서 지원되기를 바랍니다.

OTG에서 A/B를 전환하기 위해 원칙적으로 HNP 프로토콜을 시작해야합니다. 그러나, 나는 안드로이드 측면에서 그것을 처리하는 방법을 잘 모른다. 안드로이드 SDK가 프로그래밍 방식으로 HNP를 어떻게 지원하는지 모르겠다. 관련된 모든 API가 있습니까? 모든 문서, 실험실 및 공개 프로젝트?

답변

1

현재 HNP 프로토콜은 Android에서 지원되지 않습니다. 이렇게하는 유일한 방법은 보드의 USB 스택을 재설정하고 모드를 전환 할 때마다 다시 열거하는 것입니다.

+0

내 보드와 Android 기기를 케이블로 수동으로 전환 하시겠습니까? –

+0

케이블을 전환 할 필요가 없습니다. USB OTG ID 핀을 gpio에 연결할 수 있습니다. 따라서 휴대 전화가 호스트 할 때 ID 핀을 접지로 설정하고 KL25Z에서 USB 스택을 재설정하십시오. 케이블을 일부 수정해야합니다. – Jason