강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

바다님의 프로필 이미지
바다

작성한 질문수

PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트

UART to TTL Converter schematic 설계하기

핀 연결 질문입니다.

작성

·

13

0

안녕하세요!

강의 내용 중에 헷갈리는 점이 있어 질문드립니다.

CH340C 칩에서, RTS# 핀을 연결하실 때 글로벌 핀 네임에 CH340_RST 라고 하셧는데, 심볼의 이름과 다른 이름을 쓰신 것(RTS를 RST로)을 확인했습니다.

영어판 데이터 시트에서, RST라는 이름이 들어가는 핀은 CH340B 칩의 경우에만 있어 CH340C 칩에는 존재하지 않고, RTS라는 이름의 핀은 pin type이 output 으로 나와있어서 라벨의 방향을 다르게 하신 것 같아 질문드립니다.

제가 확인한 데이터 시트 링크는 다음과 같습니다.

https://www.mpja.com/download/35227cpdata.pdf

답변 2

1

안녕하세요, 답변 남겨드립니다.

말씀하신 부분은 “핀 이름을 잘못 본 것”이라기보다 “넷(net) 이름을 기능 기준으로 붙인 것”에 가깝습니다. 즉, 심볼의 핀 이름은 CH340C의 RTS#(MODEM 제어 출력)인데, 그 신호를 보드에서 “리셋 용도로 쓰겠다”는 의도를 넷 이름을 CH340_RST처럼 붙여 표현한 케이스로 이해하시면 됩니다. 넷 라벨은 데이터시트의 핀명과 1:1로 동일해야 하는 규칙은 없고, 실무에서는 오히려 최종 기능(Reset, Boot, Enable 등) 기준으로 이름을 붙이는 경우가 많습니다.

다만 사용자께서 지적하신 것처럼 CH340C 자체에 “RST#”라는 외부 리셋 핀이 있는 것은 아닙니다. CH340B에만 외부 리셋 입력(RST#)이 있고, CH340C 쪽은 해당 위치가 NC로 취급됩니다. 그래서 회로도에서 “CH340_RST”라는 이름이 “CH340 칩의 RST# 핀을 쓴다”는 뜻으로 읽히면 오해 소지가 있고, 그 점에서 질문하신 방향이 정확합니다.

RTS#가 output으로 표기된 것도 맞습니다. CH340 계열에서 RTS#는 MODEM liaison output(Active Low)이고, PC(드라이버/응용프로그램)가 시리얼 포트를 열거나 제어할 때 토글될 수 있는 제어선입니다. 이 RTS#를 MCU의 NRST(리셋)로 연결해두면, “USB-UART 연결만 했는데도 자동 리셋이 걸리는” 동작을 만들 수 있고, 펌웨어 다운로드(부트로더 진입) 자동화에 자주 활용됩니다. 예를 들어 STM32 시리얼 부트로더를 자동 진입시키려면 BOOT0를 1로 만든 뒤 NRST를 Low로 한번 당겼다가 놓는 시퀀스가 필요하고, 이때 RTS#/DTR# 두 개를 트랜지스터 두 개로 써서 BOOT0과 NRST를 각각 제어하는 회로가 현업에서 흔합니다(ESP 계열에서 RTS/DTR로 EN/IO0 제어하는 것과 같은 방식입니다).

라벨 “방향”에 대한 부분은 사용하시는 EDA 객체 종류에 따라 의미가 달라집니다. 단순 Net Label/Global Label은 방향이 전기적으로 의미 없고, Hierarchical Port처럼 “입력/출력 타입”을 선언하는 객체는 ERC를 위해 방향을 맞춰주는 편이 좋습니다. 즉 RTS#는 소스가 CH340이므로 “출력 포트”로, MCU NRST 쪽은 “입력(또는 오픈드레인에 의한 풀다운 입력)” 성격으로 두면 ERC 경고를 줄일 수 있습니다. 이름을 RST로 바꿨기 때문에 방향을 바꿨다기보다는, “이 신호가 리셋 역할”이라는 기능 관점 표현을 하고 싶어서 그랬을 가능성이 큽니다.

실무적으로 더 안전하고 덜 헷갈리는 방법은 “핀명 보존 + 기능명 병기”입니다. 예를 들어 CH340 핀에서 나가는 넷은 CH340_RTSn(또는 USB_UART_RTSn)로 유지하고, 트랜지스터/RC 네트워크를 거친 뒤 MCU에 들어가는 넷은 TARGET_NRST로 이름을 바꾸는 식입니다. 이렇게 하면 데이터시트를 보면서도 핀 매칭이 즉시 되고, 동시에 시스템 기능도 명확해집니다. 라이브러리 검증 시에는 “핀 번호가 데이터시트와 일치하는지”를 최우선으로 보시면 됩니다.

리셋 회로 예시를 하나 정량적으로 들어보겠습니다. RTS#(Active Low)로 NRST를 직접 구동하면, NRST 라인에 달린 풀업(예: 10 kΩ to 3.3 V)과 CH340 출력 드라이브가 정면으로 맞물릴 수 있어서, 보드 전원 시퀀스나 USB만 꽂힌 상태에서 예기치 않은 백파워링/래치업 리스크가 생길 수 있습니다. 그래서 현업에서는 RTS#로 NPN(오픈컬렉터)이나 NMOS를 구동해서 NRST를 “Low로만 당기는” 구조를 많이 씁니다. 예를 들어 NPN을 쓴다면, NRST 풀업 10 kΩ, 베이스 저항 10 kΩ 정도로 시작하면 무난합니다. 베이스 전류를 대략 0.2 mA로 잡으면 Rb는 (3.3 V - 0.7 V) / 0.2 mA = 13 kΩ 수준이라 10 kΩ가 충분히 포화 구동에 가깝게 동작합니다. 이때 NRST에 100 nF를 붙여 전원 노이즈 필터 겸 리셋 펄스 성형을 하고 싶으면 시정수는 tau = R C = 10 kΩ 100 nF = 1 ms 정도라서, 대부분 MCU 리셋 최소 펄스폭 요구(대개 us 단위)를 넉넉히 만족시키는 설계 여유가 생깁니다. 반대로 “포트 열 때마다 자동 리셋되는 현상”이 싫으면 C를 줄이거나, 아예 RTS#/DTR#를 점퍼로 끊어둘 수 있게 하는 편이 디버깅 생산성이 좋아집니다.

마지막으로, USB to TTL 컨버터를 정말 “3선(TX/RX/GND)만” 쓰는 용도라면 RTS# 같은 MODEM 라인은 연결하지 않아도 됩니다. 즉 RXD, TXD, GND만 연결하고 나머지 신호는 사용하지 않으면 떠 있게 두는 쪽이 일반적입니다. 그래서 강의 회로가 RTS#를 굳이 어디엔가 연결했다면, 그건 “CH340C 동작 필수”라기보다 “보드의 리셋/부트 자동화나 디버그 편의 기능”을 의도했을 가능성이 큽니다.

정리하면 CH340C에는 RST# 핀이 없고 RTS#는 output이 맞으며, CH340_RST라는 넷 이름은 칩의 핀명이 아니라 “그 신호를 리셋 기능으로 재사용한다”는 회로도 작성자 의도로 보시는 게 가장 합리적입니다. 다만 협업/리뷰 관점에서는 CH340_RTSn 같은 원 핀명과 TARGET_NRST 같은 기능명을 분리해서 쓰는 편이 오해 비용을 크게 줄여주니, 가능하면 그렇게 네이밍을 정리하시는 것을 권장드립니다.

바다님의 프로필 이미지
바다
질문자

그렇다면 RTS# 핀에 RST라는 이름을 사용하고 input으로 놓으신 것은,

MCU로부터 reset입력이 들어온다고 해석하면 되는걸까요??

아니요. MCU에서 CH340 쪽으로 “Reset 입력이 들어간다”로 해석하시면 안 됩니다.

핵심만 정리하면:

  • CH340C의 RTS#는 “출력(output)” 입니다.
    CH340(=PC 드라이버가 제어) → 보드 쪽(대상 MCU 등) 으로 신호가 나갑니다.

  • 회로도에서 넷 이름을 CH340_RST처럼 붙인 건, “이 신호를 보드에서 리셋 용도로 쓰겠다”는 기능적 별칭일 뿐이고,
    전기적 방향(출력/입력)을 바꾸는 의미는 아닙니다.

  • 그래서 RTS# 라인을 “input으로 놓았다”는 건 보통 두 경우 중 하나입니다.

    1. 그 라벨/포트 객체를 ‘입력’으로 선언해 ERC 경고를 피하려고 임의로 둔 것(그런데 이건 방향성이 실제와 반대라 혼동을 줍니다)

    2. 라벨이 붙은 지점이 CH340 핀이 아니라, 트랜지스터/RC 등을 거친 뒤 MCU NRST 쪽(입력 쪽) 이라서 그 지점 기준으로 input이 맞는 것

정상적인 의도라면 보통 이렇게 보는 게 안전합니다:

  • CH340 RTS#(output) → (트랜지스터로 “Low만 당기는” 구조 권장) → MCU NRST(input)

  • 이름도 혼동을 줄이려면

    • CH340 핀 근처: CH340_RTSn

    • MCU 리셋 쪽: TARGET_NRST
      처럼 핀명/기능명을 분리하는 게 좋습니다.

즉, 질문하신 문장으로 답하면:

“RTS# 핀에 RST라는 이름을 사용하고 input으로 놓으신 것” = “MCU로부터 reset 입력이 들어온다”?

그렇게 해석하면 안 되고, (의도가 있었다면) CH340의 RTS# 출력이 MCU 리셋을 걸기 위한 라인으로 쓰인다고 해석하시는 게 맞습니다.

바다님의 프로필 이미지
바다
질문자

답변 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

바다님, CH340C 칩에 관련된 질문에 감사드립니다. CH340C 칩의 핀 연결과 관련하여 RTS# 핀의 명명과 기능에 대해 헷갈리신 부분을 정리해드리겠습니다.

CH340C 칩의 RTS# 핀

  1. RTS# 핀의 기능과 명명:

    • CH340 시리즈 칩의 RTS# 핀은 “Request to Send”의 약자로, 일반적으로 UART 통신에서 플로우 제어용으로 사용됩니다.
    • 이 핀은 Output으로 설정되어 있으며, 데이터 시트에서 보셨듯이 CH340C 칩에서 데이터의 전송 준비 상태를 알려 줍니다.
  2. 핀 이름 오해:

    • 데이터 시트와 실사용 환경에서 간혹 다른 명명이 사용될 수 있지만, RTS가 일반적인 표준에 맞게 명명되어 있을 가능성이 큽니다.
    • CH340_RST라는 네이밍은 해당 강의나 프로젝트에서 특별히 구분 지어 사용된 것일 수 있으며, 같은 핀이나 회로의 다른 용도를 구분하기 위해 별도의 라벨을 붙였을 수 있습니다.
  3. 라벨 방향:

    • output 으로 명시된 경우, 해당 핀에서 신호를 외부로 출력한다는 의미입니다. 따라서 전기적 연결에서는 신호 흐름에 따라 라벨의 방향이 설정되어야 합니다.

주어진 데이터 시트 링크(https://www.mpja.com/download/35227cpdata.pdf)에서 정확한 핀 기능과 타입을 다시 한번 확인해 보시고, 강의에서 사용하는 실습 자료나 설계에서 사용된 네이밍은 프로젝트별로 달라질 수 있다는 점을 유념해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

바다님의 프로필 이미지
바다

작성한 질문수

질문하기