라벨이 USB인 게시물 표시

[DevTip] Android - usb-serial-for-android 사용시 baud rate 바꾸기

안드로이드 단말(진저브레드 이상)의 USB OTG를 이용해 UART 통신을 할 때 baud rate 바꾸는 작업이 애매해서 조금 고생했다. 일단, usb-serial-for-android 라이브러리를 이용해서 포트를 열고 원하는 baud rate으로 설정하는 두 가지 방법. (코드에서 mUsbDriver 는 UsbSerialDriver의 instance로, mUsbDriver = UsbSerialProber.acquire(mUsbManager);  ) 1. 포트 오픈 후 설정 변경 mUsbDriver.open(); mUsbDriver.setParameters(<BaudRate>,<DataBits>,<StopBits>,<ParityBits>); 2. 설정 후 포트 오픈 mUsbDriver.setParameters(<BaudRate>,<DataBits>,<StopBits>,<ParityBits>); mUsbDriver.open(); 물론, 기본(default) baud rate로 사용할 때에는  mUsbDriver.open(); 만 써도 문제는 없다. 두 방법에 차이가 있을까? 결론적으로, 2번의 순서로는 원하는 baud rate으로 동작하지 않는다! 먼저 열고 나서 설정을 바꿔야 제대로 설정이 바뀌는 것을 확인할 수 있다. 실제 usb-serial-for-android 라이브러리의 소스에서 FtdiSerialDriver.java를 보면 open() 메쏘드에서는 항상 기본(default) 설정으로 포트를 설정하기 때문에 반드시 setParameters()가 나중에 호출되어야 한다. 헌데, CP210xSerialDriver.java에서는 setParameters() 메쏘드에서 입력으로 받은 설정 값들을 해당 클래스 내부 멤버 변수로 저장을 해 두고, 이후 open() 메쏘드에서는 그 값들을 사용해 USB-UART 칩셋을 설정하는...

갤럭시 넥서스 젤리빈의 OTG 문제 - 2

여태 넥서스 7에서 OTG 작업을 하다가, 혹시나 싶어 갤럭시 넥서스에 마우스를 연결했더니 동작한다! 전에( http://greyattic.blogspot.com/2013/02/otg.html )는 분명히 전원도 들어오지 않았었는데... 내가 모르는 새, 뭔가 업데이트가 된 것일까? 확인해 보니 여전히  4.1.1에 3.0.31 커널인데?! 갤럭시 넥서스의 4.2 OTA 업데이트도 기약이 없고. 혹시 이전에 뭔가 실수를 했던 것일까 고민해 봐도 딱히 그럴 건덕지가 없는데... 일단 현재 버전에서 OTG가 동작하니 다행이긴 한데, 원인을 모르니 조금 찜찜하다. 구글 플레이에서 넥서스 4도 판매하고 있는 마당에, 빨리 4.2 OTA 업데이트나 떳음 좋겠다.

[DevTip] Android - USB Host Debugging

USB Accessory를 연결한 상태에서는 USB 디버거 케이블을 연결할 수 없는데, 이 때는 adb를 tcp로 연결해서 작업할수 있음. 아래는 안드로이드에서 제공하는 설명. 원본 위치 <http://developer.android.com/guide/topics/connectivity/usb/index.html> Debugging considerations When debugging applications that use USB accessory or host features, you most likely will have USB hardware connected to your Android-powered device. This will prevent you from having an adb connection to the Android-powered device via USB. You can still access adb over a network connection. To enable adb over a network connection: Connect the Android-powered device via USB to your computer.  From your SDK platform-tools/ directory, enter adb tcpip 5555 at the command prompt.  Enter adb connect <device-ip-address>:5555 You should now be connected to the Android-powered device and can issue the usual adb commands like adb logcat .  To set your device to listen on USB, enter adb usb .

갤럭시 넥서스 젤리빈의 OTG 문제 - 1

오늘 오랜만에 갤럭시 넥서스의 USB OTG를 쓸 일이 있었는데, 이게 동작을 안 한다. 혹시나 젠더와 USB 장치 문젠가 싶어 옆에 있는 넥서스 7에 연결했더니 그건 OK. 분명 예전에는 이렇게 사용했는데 뭐가 문제인지 살펴보고 고민하다 내린 결론은... 바로 젤리빈 4.1.1에 USB OTG 관련 버그가 있다는 것. 젤리빈 4.1.1이 설치된 장치는 USB OTG Host 모드시 전원을 공급하지 않는다. 현재 가지고 있는 넥서스 7은 4.2.1이 깔려 있다. 갤럭시 넥서스는 현재 4.1.1. 분명 ICS를 사용하던 시절에는 USB OTG가 동작했다는 것을 감안하면 젤리빈 4.1.1이 가진 문제라고 봐도 무방할 듯 싶다. 해외 사이트 검색에도 비슷한 말들이 나오고 있고. 아마 커널 변경하면서 확인되지 않은 듯 싶다. 혹시나 싶어 삼성 웹사이트를 통해 문의는 해 놨는데... 솔직히 별로 기대는 안 한다. S3를 미는 놈들이라 고의적으로 레퍼런스를 죽일 가능성이 높아서... 그렇다고 루팅하는 것은 내 신조와 어긋나는지라, 그냥 4.2 OTA 업데이트를 기다리는 수 밖에... 해외 쪽은 이미 4.2가 풀린 것 같던데, 도대체 우리나라는 언제나 되려나...