2012-07-05 7 views
0

cp2102로 맞춤 장치를 Android 태블릿에 연결하고 싶습니다. VCP 모드 (PID EA60 사용)로 연결하고 JavaComm을 사용하여 찾을 수 있습니다.안드로이드 4.x에 cp2102 또는 FTDI를 연결하십시오.

@SuppressWarnings("unchecked") 
Enumeration <CommPortIdentifier> ports = CommPortIdentifier.getPortIdentifiers(); 

while (ports.hasMoreElements()) 
{ 
    final CommPortIdentifier port = ports.nextElement(); 
    Log.d(null, port.toString()); 
} 

결코 루프를 입력하지 않습니다.

실라 박스 대신 FTDI를 사용할 수있는 옵션이 있습니다. 그들은 JNI를 통해 D2xx dll을 사용하는 변형을 가지고 있습니다. 나는 그들의 가이드를 따라 갔지만 ft232r을 연결하고 연결된 장치의 수를 결정하려고 할 때 메모리 충돌 (LogCat에서 신호 및 힙 손상 메시지)이 발생했습니다. 태블릿에서 장치를 분리하면 동일한 코드 (예제 코드)가 올바르게 작동하여 0이 반환됩니다.

FTDI에서 JavaComm을 사용할 때 결과는 cp2102와 동일합니다. 루프가 입력되지 않습니다.

나는 뭔가를 놓치고 뭔가 잘못한 것 같아.

VCP 대신에 usb-mode를 사용하려면 검색을 시작할 준비가되었습니다. 힌트가 필요합니다.

도움을 주시면 감사하겠습니다.

+0

Android 커널이 CP2102를 지원하는지 확인 했습니까? 내 SL101에서는 FTDI가 지원되지만 CP2102는 지원되지 않습니다. 장치를 연결 한 후 커널 로그에서이를 확인할 수 있습니다. FTDI 장치에는 기본적으로 잘못된 사용 권한이 있습니다. – Zouppen

답변

3

기본적으로 안드로이드 커널에서는 CP210x 드라이버가 활성화되어 있지 않습니다. 따라서 tty 액세스 및 JavaComm 사용 기능을 사용하려면 커널에이 드라이버를 빌드해야합니다.

다른 옵션은 USB Host functionality을 사용하고 it's API으로 직접 CP210x에 액세스하는 것입니다.

관련 문제