2012년 9월 11일 화요일

휴대 장치의 USB OTG의 호스트 모드로 동작하면서 배터리 충전 가능성 ?

방문자가 없는 곳인데 댓글에 감사하며 ?

개인적으로 메일을 보내는 것 보다.

많은 사람들이 공유할 수 있도록 하기 위해 따로 글을 남깁니다.

USB OTG는 접속시 호스트로 동작할 것인지 디바이스로 동작할 것인지를 결정합니다.

장치 하나에 호스트와 디바이스를 동시에 서비스 하는 것이 아니라.

둘을 선택하는 것입니다.

전원 관리 측면에서 전류 흐름의 방향성을 스위치 합니다.

전류를 내 보낼 것인지 (호스트 모드) 아니면 받아 들일 것인지 (디바이스 모드) ?

그래서 USB OTG가 들어 있는 회로의 전원은 두 개의 전원 스위치라는 것이 있습니다.

호스트 모드 일때는

충전회로로 가는 전원 스위치를 끄고 USB에 5V를 인가해주는 전원 스위치는 키고,

디바이스 모드 일때는

충전회로로 가는 전원 스위치는 키고 USB에 5V를 인가해주는 전원 스위치는 끄고,

만약 한 포트에서 호스트 모드로 동작하면서 충전 까지 하려면 이러한 회로를 변경해야 합니다.

USB OTG 포트 한곳에서 호스트로 동작하면서 충전을 동시에 하는 것은 불가능해 보입니다.

동일한 내용의 질문을 Nexus 7에 대해서 문의한 내용을 찾아 보니 비슷한 결론이 내려 집니다.

출처 : http://forum.xda-developers.com/showthread.php?t=1839145

해당 케이블로 USB OTG 포트에서 충전하면서 호스트 모드로 동작할 수 있냐는 내용인데,

대부분의 사람들도 궁금하다 누가 사서 한번 해봐라하는 내용입니다.

시원스런 답변은 맨 아래에서 2번째 답글입니다.

시니어 맴버로 등록된 사람의 답글임으로 믿을 만한 내용일 겁니다.

------------------------------------------------------------------------------------------------------------

davidcampbell's Avatar
Senior Member
Thanks Meter 63
Posts: 587
Join Date: Mar 2010
Location: Newcastle, NSW, Australia
More Info >

OTG and Charging is mutually exclusive, the OTG cable triggers the USB controller to send power out to a device, not receive power.

OTG와 충전은 상호 배제적인 성격입니다, OTG 케이블은 USB 컨트롤러에  전원을 받지 말고 디바이스에 보내라는 신호를 보냅니다.

the pogo docks on the bottom of the device are also impossible to charge from as the nexus 7 has only been given one charging circuit, and that is the same one that OTG disables.

장치 아래 부분에 있는 pogo 독(아마도 nexus 7 도킹 스테이션 같음)은 nexus 7이 하나의 충전 회로만 가지고 있기 때문에 충전하는 것은 불가능하다.

The only way to achieve something like this would be a physical battery hack where you splice in a charging circuit direct to the battery, without frying the phone maybe some unidirectional resistors, so that it can be simultaneously charged whilst powering the device.
이러한 것을 가능하게 하는 유일한 방법은 배터리로 직접 연결된 충전회로의 연결 부위에서 물리적인 배터리 해킹하는 것이다.....

I'm 99% certain of this information, and this is not to say someone might hack a kernel together one day
Learn how to LogCat

ASUS Nexus 7 - Unlocked & Rooted
HTC Velocity - Telstra ICS Stock
HTC HD2 - NexusHD2 CM9

-----------------------------------------------------------------------------------------------------------

추가 내용 :

삼성의 몇몇 기기에서 충전과 동시에 폰에 디바이스를 연결할 수 있다고 이야기 되고 있어서

좀 검색을 해 보았습니다.

충전과 공시에 폰에 디바이스를 연결해서 쓸 수 있게 해주는 기능 혹은 기기를

Accessory Charger Adaptor라고 하더 군요

아래의 그림은 USB 표준 스펙 문서에서 복사한 그림으로 명확하게 이해가 될 수 있을 겁니다.

출처: http://www.usb.org/developers/devclass_docs


어줍잖은 실력이지만 문서의 내용을 조금 해석해 보자면 다음과 같습니다.

###############################################################

As PDs get smaller, it becomes more desirable for the PD to only have one external connector.

휴대용 기기(PDs를 일컷는 말로 해석됨)가 작아짐에 따라 휴대용 기기가 단 하나의 외부 장치만 갖아야 한다는 요구가 점점 거세진다.

If the only connector a device has is a USB connector, then a problem arises when the user wants to attach the device to a charger at the same time as it is already attached to something else.

장치가 가지고 있는 하나의 커넥터가 USB 커넥터 뿐이라면, 사용자가 디바이스에 이미 어떤 것을 연결한 상태에서 동시에 충전기기를 연결하고자 할때 문제가 발생한다.

For example, consider a user in a car with a cell phone that is attached to a headset.

예를 들자면, 헤드셋이 연결된 헨드폰을 차안에서 사용하는 사용자를 생각해 보자.

If the phone battery goes low, the user would like to charge the phone, and at the same time continue to talk through the headset.

전화기의 배터리가 약해진다면, 사용자는 전화기를 충전하고 싶어할 것이고, 동시에 헤드셋을 통하여 통화도 계속하고 싶어 할 것이다.

If the phone has only one connector, it is not possible to attach both a headset and a charger to the phone through the same connector.

전화기가 단 하나의 커넥터만 가지고 있다면, 헤드셋과 충전기를 같은 커넥터를 통해서 전화기에 연결하는 것은 불가능하다.

Another example would be as follows.

또 다른 예는 다음과 같다.

 Consider a PD that has a single connector, which can also act as a handheld PC.

휴대용 PC와 같이 동작할 수 있는 단하나의 커넥터만 가지고 있는 휴대용 기기를 생각해 보라.

When such a device is put into an ACA-Dock, it would act as a host to various USB
peripherals, such as a hub, keyboard, mouse, printer, etc.

이러한 기기는 ACA-Dock에 연결할때, 다양한 USB 주변기기(허브, 키보드, 마우스, 프린터 등등의)에 연결되는 호스트로써 동작하게 된다.

 However, while in the ACA-Dock, the device should also be able to charge at the same time.

그러나, ACA-Dock에 연결될때, 기기는 동시에 또한 충전 가능해야만 한다.

The purpose of this section is to describe a method that allows a single USB port to be attached to both a charger and another device at the same time.

이 섹션의 목적은 단 하나의 USB 포트에 충전기와 또 다른 장치를 동시에 연결하는 것을 허용하는 방법을 묘사하고 있다.

 This method makes use of an Accessory Charger Adapter (ACA), as shown in Figure 6-1.

이 방법은 그림과 같은 Accessory Charger Adapter의 사용을  만들어 냈다.

#################################################################

아무튼 위와 같은 기능이 아주 불가능한 것은 아닌 것 같습니다.

아래의 링크를 보면 삼성 기기의 주변기기를 개발하는 회사에서

ACA에 대한 지원을 가능하게 해주는 커널 설정에 대한 이야기를 하고 있습니다.

http://developer.samsung.com/forum/board/thread/view.do?boardName=GeneralB&messageId=175156

뭐 모든 기기가 위와 같은 기능을 지원하는지 알 수는 없지만,

삼성 기기(위에서는 SIII)에 깔리는 리눅스 커널의

USB Standard ACA(Accessary Charger Adaptor)라는 기능을 활성화 해서

################################################################
Menuconfig로 커널을 설정할 경우.

"Device Drivers->USB Support->OTG Support for Qualcomm on-chip USB controller->Support for Accessory Charger Adapter (ACA)=y"

"Device Drivers->USB Support->OTG Support for Qualcomm on-chip USB controller->Support for Accessory Charger Adapter (ACA)->Support for Standard ACA=y"

커널 설정 파일에서 직접 설정할 경우

CONFIG_USB_MSM_ACA=y
CONFIG_USB_MSM_STANDARD_ACA=y
################################################################

다시 컴파일 하면 위와 같은 충전과 동시에 장치를 연결하는 기능을 사용할 수 있다고 합니다.

위의 링크는 현 시점이 아닌 2012년도에 올라온 것이기 때문에 현재는 아마도

USB ACA(Accesory Charger Adaptor)의 기능을 사용할 수 있을 것이라 짐작 됩니다.

참고로 저는 안드로이드 기기가 없어서 확인해 볼 수가 없네요.





댓글 16개:

  1. 그러면 궁금한게 있는데요

    usb로 충전이아닌 그러니까

    배터리가있는부분에 단자로의 전원 공급은 가능하겠죠?

    제가 도전해보기엔 능력이안되서 찾아보는데 없네요ㅜㅜ

    대신 돌아다니다보니 요즘 무선충전을 자체적으로 만드시는분들이 계시던데 저런식으로 전원을 배터리에서 주는만큼 배터리가잇는부분의 단자로 공급하면 되지않을까 하는 생각이 방금들어서요

    답글삭제
  2. 충전하는 회로를 만들 수 있는 칩들은 많이 존재 합니다. 특히나 3.7V의 규격화된 배터리는 컴퓨터 혹은 요즘의 스마트폰 충전기인 USB의 전원으로 충전하는 방식으로 반 제품화 되어 있는 것들이 많습니다.
    https://www.sparkfun.com/products/10255
    https://www.sparkfun.com/products/10401
    https://www.adafruit.com/products/259
    https://www.adafruit.com/products/280
    위의 것들은 친절하게도 회로도와 사용한 칩들에 대한 정보들을 제공하고 있으니 살펴보시면 도움이 되실 겁니다.
    충전기의 원리는 항상 고정된 전류를 배터리에 공급하여 충전하고
    일정 전압이상일 경우 전류를 차단하는 방식으로 동작합니다.
    그래서 충전회로를 구성할 때는 배터리의 전격전압에 맞도록 구성해야 합니다.

    답글삭제
  3. 아직 찾아보지는 않았지만 전원공급이 가능한 usb허브를 otg에 연결해서 쓸수 있다고하는데 그럼 위의 글과 어떻게 연관해서 해석해야할까요?

    답글삭제
    답글
    1. 아마도 전원 공급이 가능한 USB허브로 OTG 포트에 연결은 가능하지만 충전은 불가능 할 겁니다. 단지 외장하드 같은 전류를 많이 소모하는 장치에 모자란 전류를 공급하는 기능입니다. 충전 기능은 디바이스 자체가 구현해야 하는 기능입니다. 위의 글은 OTG 포트에 디바이스가 연결되었을 때 디바이스에 전원을 공급하도록 하고 호스트가 연결되었을때는 해당 장치가 디바이스가 되어 호스트로 부터 배터리를 충전하도록 전원의 방향을 스위치하고자 하는 내용입니다.

      삭제
  4. 그런데 아트릭스의 악세사리인 독을 보게되면 충전과 동시에 usb장치릉 사용할 수 있게 되어있는데 이걸 응용해본다면 뭔가 실마리가 나오지 않을까요?

    답글삭제
    답글
    1. 추가로 아트릭스의 독은 micro usb단자와 hdmi단자를 가지고 있고 usb포트와 흐드미포트 그리고 춘전포트를 제공한다고 합니다

      삭제
  5. 좋은 글 잘 읽고 갑니다. :)

    답글삭제
  6. 내용 잘보고 갑니다. ^^.... 궁금증이 어느정도 해소되었네요.

    제가 같은 솔루션으로 USB Y캐이블로 충전과, OTG기능을 같이 폰에 지원해보려고 했거든요.

    Sony Xperia Ray의 경우는 충전과 OTG가 같이 됩니다. (위의 설명대로라면 스팩을 어긴 것 같습니다)

    Sony Xperia P의 경우는 충전은 안되고, OTG기능만 됩니다...

    답글삭제
  7. http://m.clien.net/cs3/board?bo_table=cm_andro&bo_style=view&wr_id=65694&page=89&spt=-10393

    을 보면 되는 기종이 따로 있는걸까요...

    넥서스7인데 갤노트만 되는거면 정말 부럽네요 ㅠㅠ

    답글삭제
    답글
    1. 무지를 일깨워 주셔서 감사 합니다. USB 표준 스펙에 USB 포트 하나로 충전과 동시에 디바이스를 연결 할 수 있는 추가적인 장치(Accessory Charger Adapter)에 관한 내용이 있어서 위의 글에 첨부 하였습니다. 삼성의 기기에 대한 링크만 언듯 찾아 보았기 때문에 다른 기기의 상황은 어떠한지 모르겠으나 삼성의 리눅스 커널에는 ACA를 활성화 하는 기능이 있었던 것으로 사료 됩니다. 그 이외에 구체적인 것들은 아직 파악할 수 없네요. 아무튼 고맙습니다.

      삭제
  8. 포스팅 잘 보았습니다.
    갤럭시S3 에 외장하드를 연결, 사용을 시도중이었는데요. 도움이 많이 되었습니다.
    갤 노트는 가능다하는 글들이 있어 삼성전자서비스센터에 문의해보았더니
    갤S3 는 USB ACA 기능을 지원하지 않는다고 하네요.

    답글삭제
    답글
    1. 이것도 참고해 보세요 http://hoyoung2.blogspot.com/2013/07/micro-usb-otg.html

      삭제
  9. 포스팅 잘 보았습니다.
    USB Host로 개발된 제품(Embedded Linux System)을 USB Device모드로 변경해서 PC와 연동하려고 합니다. 이 부분이 가능한지요?
    커널은 디바이스모드로 변경해서 포팅했지만 확인이 안됩니다. ACA모드를 설정해 주면 되는지요?
    회신 주시면 감사하겠습니다.

    답글삭제
    답글
    1. 개발된 제품의 MCU의 데이터 시트를 확인해 보시기 바랍니다. 하드웨어적으로 USB Host 만 지원된다면 커널을 아무리 변경해도 아무 소용 없습니다. 그리고 ACA와는 관련 없는 사항입니다.

      삭제