상세 컨텐츠

본문 제목

USB3이 포함된 보드 개발 시 유의할 점

개발이야기/Embedded, Firmware, HW

by mycatdid0 2022. 8. 19. 12:46

본문

반응형

(포스팅 2022.08.19)

 

 

- 목차
USB port의 선택
USB port 선택 이슈
- 부트로더에서 지원하는 USB Port 확인
- PC에 연결하는 USB port는 HOST로 사용할 수 없음
USB port 사용 예
USB3 port가 PC와 잘 연결되지 않을 경우
마치며

 

퀄컴AP를 사용하여 안드로이드 장비를 개발하고 있습니다.

 

sdm660를 사용하고 있습니다. 해당 보드 개발시 USB3.0 이슈가 있었으므로 여기서 공유하겠습니다. (아래 이미지는 참고용입니다)

https://www.penguinsolutions.com/edge/products/single-board-computers-sbc/qualcomm-snapdragon-660-inforce-6560-sbc/

 


 USB port의 선택 

 

 

USB port를 고민해야 하는 근본적인 이유는 전송속도의 차이 때문입니다.

요즘에는 USB3.0이어야 제대로 속도를 낼 수 있는 디바이스가 많습니다. Giga-Ethernet을 포함하여 SSD도 있고 LTE-Modem 도 있습니다. 이런 디바이스들은 USB2.0에도 연결이 가능하긴 합니다만, 최대 전송속도가 중요한 장비의 경우엔 USB3.0을 선택할 수 밖에 없을 것입니다.

 

 


 USB port 선택 이슈 

 

AP에서 USB2.0과 USB3.0을 지원한다고 하더라도, 아래의 이슈를 충분히 고민해야 합니다.

 

  • USB3.0 컨트롤러는 연결된 기기 중 USB2.0용이 하나라도 있으면 USB2모드로 동작한다.
  • 각각의 USB 컨트롤러는 HOST/OTG 모드로 동작할 수 있다.
    usb-hub를 연결한 상태에서 OTG 동작을 하면, usb-hub가 정상 동작하지 않는다.
    즉 OTG동작을 하는 USB port에는 hub를 연결할 수 없다.
  • AP 제조사에서 제공하는 소스코드가 각 USB 컨트롤러를 모두 지원하는지 확인해야 한다.

 

부트로더에서 지원하는 USB Port 확인

 

HW 컨셉을 잡기 전에, 바이너리를 다운로드할 USB port를 결정해야 합니다. 예상외로 부트로더에서 USB port 1개 만을 컨트롤할 수 있는 경우가 있습니다. 

 

만일 부트로더에서 USB3.0 port 만 컨트롤할 수 있다면, 아래와 같이 USB port를 결정할 수밖에 없습니다.

 

USB3을 PC와 연결하는 설계

USB3.0을 효율적으로 사용하려면 설계가 아래와 같이 되어야 합니다.

 

USB2를 PC와 연결하는 설계

 

PC에 연결하는 USB port는 HOST로 사용할 수 없음

 

각각의 USB 컨트롤러는 아래의 두 가지 모드 중 하나로만 동작합니다.

 

  • HOST 모드 : 상대방이 PC 역할
  • OTG 모드 : 스스로가 PC 역할

 

두 가지 모드의 동작이 완전히 다르기 때문에, 하나의 USB 컨트롤러는 둘 중 하나로만 동작할 수 있습니다. 전원이 들어와 있는 상태에서 모드 전환은 가능합니다.

 

하나의 컨트롤러를 Host mode와 OTG mode로 동시에 동작시킬 수 없음

 


 USB port 사용 예 

 

제가 생각하는 이상적인 USB Port 선택은 아래와 같습니다. 요점은 PC에 연결하여 바이너리를 받기 위한 USB port는 그 용도로만 사용해야 한다는 것입니다.

경험상 이상적인 USB port 배치

 


USB3 port가 PC와 잘 연결되지 않을 경우

 

USB3.0 port는 동작속도가 고속인 만큼 노이즈에 취약합니다. 초기 HW 보드의 USB3.0 port는 PC와 잘 연결되지 않을 수 있습니다. USB3.0 Controller를 SW적으로 USB2.0으로 동작하도록 하려면 노력과 시일이 소요되므로, 임시로 USB2.0 hub를 연결하여 강제로 USB2.0 연결을 하시면 PC가 원활하게 인식할 수 있습니다.

 

 

 


 마치며 

 

여기까지 'USB3.0 Port를 포함하는 보드 설계 시 유의할 점'을 공유하였습니다.

 

궁금하신 점은 댓글로 문의주세요.

 

 

언제나 감사드립니다.

반응형

관련글 더보기

댓글 영역