Inflearn brand logo image

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

Edened님의 프로필 이미지
Edened

작성한 질문수

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

STM32F103 schematic - Debugging pin 설계

STM32F103 schematic-Debugging pin 설계 강의 질문

해결된 질문

작성

·

77

0

안녕하세요 삼코치님, Debugging pin 설계 관련해서 질문드립니다.

 

F103은 현재 회로에서의 역할이 F407을 실시간 디버깅을 하는 것으로 알고 있습니다. 또한 강의를 참고했을 때, F103의 PIN(GPIO라고 생각하신걸로 추정)에서 F407의 JTAG PIN으로 Routing 한 걸로 이해했습니다. 이해한 거를 바탕으로 아래와 같은 의문이 생겼습니다.

1. F103에서는 PB14/12 왜 둘 다 TMS로 배치를 하는지? (DS의 Main function이 여러 개이며 JTAG 관련 Function 없음을 확인했습니다.)
2. F103에서 F407로 연결 되는 핀에는 TMS, TCLK,TRST는 있는데 TDI/TDO가 없는데 이런 경우는 데이터 통신이 안되는 거 같습니다.

긴 글 읽어주셔서 감사합니다.

답변 2

0

답변 남겨드립니다.
현재 회로에서 STM32F103은 외부 디버깅 장비 없이, 내부 MCU인 STM32F407의 디버깅을 직접 제어하는 역할을 수행하도록 설계되어 있습니다. 일반적으로 F407을 디버깅할 때는 ST-Link나 J-Link와 같은 외부 디버거가 필요하지만, 이 회로에서는 STM32F103이 직접 디버거의 역할을 대신하며, SWD 프로토콜 신호를 생성하고 F407에 전달하는 방식으로 작동합니다.

이러한 구조 하에서 첫 번째 질문이었던 "왜 F103에서 PB14와 PB12를 모두 TMS로 배치했는가?"에 대해 설명드리겠습니다. 회로도에서 TMS로 표기되어 있지만, 실질적으로는 TMS가 아니라 SWDIO 신호입니다. STM32F407은 JTAG뿐만 아니라 SWD(Single Wire Debug) 모드를 지원하며, 본 회로에서는 JTAG이 아니라 SWD 모드가 사용됩니다. SWD에서는 TMS 대신 SWDIO라는 양방향 데이터 통신 핀이 사용되며, 이 핀을 통해 디버깅 명령과 응답이 모두 전달됩니다. 따라서 PB14와 PB12는 동일한 SWDIO 신호선에 물리적으로 연결된 것입니다. 이 중 PB14는 STM32F103이 직접 디버깅 데이터를 송수신하는 주 제어용 핀이며, PB12는 같은 신호를 외부에서 로직 아날라이저 등으로 관측할 수 있도록 설계된 테스트 포인트용 핀입니다. 즉, PB14는 기능적으로 쓰이고 PB12는 파형 분석이나 디버깅 신호 검증을 위한 보조 라인으로, 두 핀이 역할이 다르기 때문에 중복 배치가 아닙니다.

두 번째 질문인 “F103에서 F407로 연결된 디버깅 라인에 TMS, TCK, TRST는 있는데 TDI/TDO는 없어서 데이터 통신이 안 되는 것 같다”는 부분은, 이 회로가 사용하는 디버깅 프로토콜이 JTAG이 아닌 SWD라는 점을 이해하시면 바로 해소됩니다. JTAG은 기본적으로 4~5개의 라인을 사용하는 반면, SWD는 ARM Cortex-M MCU를 위해 정의된 간소화된 디버깅 프로토콜로, 단 두 개의 신호만 사용합니다. 바로 SWDIO와 SWCLK입니다. SWDIO는 JTAG의 TMS, TDI, TDO 기능을 통합한 양방향 데이터 선이며, SWCLK은 JTAG의 TCK에 해당하는 클럭 신호입니다. 따라서 TDI와 TDO가 빠져 있는 것은 설계 오류나 누락이 아니라, SWD 방식에 정확히 부합하는 구조입니다. TRST는 JTAG TAP 컨트롤러의 초기화를 위해 사용되지만, 일부 STM32에서는 TRST 핀을 통해 JTAG 모드를 비활성화하고 SWD 모드로 진입하도록 제어할 수 있으므로 본 회로에서도 TRST는 SWD 진입 초기화를 위한 용도로 사용된 것입니다.

정리하자면, 이 회로는 JTAG 기반 디버깅이 아닌 SWD 기반 디버깅을 구현한 구조로, PB14는 SWDIO 제어용, PB12는 관측용으로 사용되며, TDI와 TDO가 없는 것은 의도적인 SWD 구조에 따른 것이므로 데이터 통신은 전혀 문제없이 이루어집니다. F103이 직접 SWDIO와 SWCLK 신호를 생성하여 F407을 디버깅하는 구조이며, 외부 디버깅 장비 없이 MCU 간 내부 디버깅 환경을 구성한, 고급 통합형 디버깅 설계입니다.

Edened님의 프로필 이미지
Edened
질문자

답변 감사합니다. 덕분에 설계 의도를 알 수 있었습니다 ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다.
Edened님, STM32F103의 디버깅 핀 설계에 대한 질문을 주셔서 감사합니다. 아래에서 질문하신 사항에 대해 하나씩 설명드리겠습니다.

1. F103에서 PB14/12 둘 다 TMS로 배치하는 이유

STM32F103의 특정 핀을 두 개의 TMS로 설정하는 이유는 일반적인 JTAG 연결 구성에 추가적인 신호 라인이 필요하지 않기 때문에 발생할 수 있습니다. 프로젝트나 설계상에서 이중 배치를 통해 redundancy(중복)을 강화하거나, 실리콘상의 평가를 위해 여러 신호 방식을 고려할 수 있습니다. 이런 경우에는 사용되는 소프트웨어나 디버거 설정에 따라 이중 신호를 사용할 수도 있습니다.

2. TDI/TDO 없이 TMS, TCLK, TRST 만으로 레이아웃 구성

JTAG 인터페이스의 기본 구성에서 TDI/TDO는 데이터 전송을 위해 필요하지만, 특정 설계에서는 SWD(Serial Wire Debug) 방식으로 간단해지는 경우가 있습니다. STM32 시리즈는 일반적으로 풀 JTAG와 SWD 모드를 구분하여 설계할 수 있기 때문에, 간단한 디버깅과 테스트를 위해 SWD 방식만 채택할 때, TDI/TDO를 생략할 수 있습니다. TMS(테스트 모드 선택)와 TCLK(테스트 클럭)만 사용하더라도, 기본적인 제어와 상태 확인은 가능합니다.

질문하신 내용은 주제에 따라 다소 복잡할 수 있으니, 추가적인 확인이나 세부적인 부분은 수강 전 문의 게시판 혹은 강의 내 질의응답 섹션을 통해 직접 확인하시면 더 구체적인 답을 얻으실 수 있습니다.

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

Edened님의 프로필 이미지
Edened

작성한 질문수

질문하기