본문 바로가기
Embedded System/전자회로 (PCB)

USB to UART 회로

by MachineJW 2024. 6. 12.

1. USB to UART는 어디에 사용하는가?

  • MCU (마이크로컨트롤러, 요새는 프로그래밍이 가능한 SoC를 포함하기도 한다)를 활용하는 임베디드 개발자는 MCU에 동작 펌웨어를 빌드하는 과정이 필요하기 마련이다.
  • 또한 간단한 시리얼 통신으로 현재 MCU 작동 상태를 모니터링하는 디버깅 수단이 필요할 수 도 있겠다.
  • PC와 MCU를 연결하여 이러한 과정을 수행할 수 있는데, 그 수단중 하나가 USB (PC 인터페이스)와 UART (MCU 인터페이스) 이다.
  • 즉 위에 상기된 과정을 수행하기위한 USB to UART 회로 (USB신호를 UART 신호로 변경하거나, 혹은 그 반대의 경우)가 사용된다.

2. USB와 연결할 타겟 시스템 MCU의 데이터시트를 확인하자

  • 펌웨어 다운로드 모드로 진입하는 조건과 UART의 사양은 당연하게도 연결할 MCU의 데이터시트를 확인해야한다
  • 데이터 시트를 확인하고 조건을 알게 되었으면 USB UART 회로를 설계할 수 있다.

3. ESP32 USB <-> UART 회로 설계 (EasyEDA 사용)

  • CP2102 칩을 선택하여 설계하였다.
  • R3와 R2 22옴 저항기의 경우 반사파를 억제하기 위한 수단의 저항기이다. (DP, DN 신호)
  • VBUS는 USB 인터페이스로 부터 얻게되는 5V 인데. CP2102 데이터시트를 참고해보면 USB 연결을 검출하는 용도 정도로 생각된다.
  • USB의 VBUS, DP, DN 신호의 ESD(정전기)을 막기 위한 TVS 다이오드를 추가(TVS4~TVS6) 하였다.

  • CP2102의 데이터시트를 확인해보면 해당 IC의 전체적인 다이어그램을 확인해 볼수 있었다.
  • USB와 UART쪽의 아키텍처를 확인해볼 수 있다.

  • CP2102의 데이터시트를 살펴보면 IC에 자체적인 3V3 레귤레이터가 있는 것으로 확인된다.
  • 데이터시트 상에는 레귤레이터의 사용에 따라 3가지의 옵션을 제공하고 있는데 본인이 설계할 회로에 적합한 옵션을 사용하면 될 것 같다.
  • 여기에서는 USB 전원은 CP2102 칩의 인식용으로 사용하고, IC자체의 레귤레이터를 사용하지 않는 방향으로 전원공급을 정하였다.

  • 자체 레귤레이터를 사용하지 않는 이유는 간단한데, 최대 공급 전류량이 100mA로 너무 부족하다. 저전력 회로와 연결되면 모를까 MCU와 주변회로를 동작시키기에는 부족한 공급 전류량이다.

  • 실제적으로 회로도를 바탕으로 PCB에 설계된 모습이다.