펌웨어를 디버깅하는 방법은 여러가지가 있을 수 있지만, STLINK와 같은 in-circuit debugger를 사용하면 보다 간편하게 디버깅을 할 수 있다. STLINK/V2는 in-circuit debugger로 SWIM 방식의 인터페이스와 JTAG/Serial wire debugging(SWD) 인터페이스를 갖추고 있으며 각각 STM8과 STM32 디버깅을 지원한다.
기기를 사용하기 위하여 SWD 인터페이스를 설계해보기로 하자. SWD 인터페이스는 3 개의 입력(SWCLK, SWDIO, NRST)과 1 개의 전원선, 1 개의 그라운드 선이 필요하다. SWCLK 신호선은 최대 60MHz의 클럭 신호를 출력하고, SWDIO 선에서는 클럭신호에 맞추어 보드와 디버깅 장치 사이의 데이터 교환이 이루어진다. SWO 신호선의 경우 일반적으로 디버그 문자열을 송신하는 역할을 하지만, 프로젝트에서는 사용되지 않는다.
SWD 방식으로 펌웨어를 디버깅하는 방법에 대해서는 다른 글에서 다루기로 하고, 일단은 회로설계에 집중해보자. 01x05 헤더핀을 이용할 것이고 다음과 같이 배치하기로 한다.(일반적인 배치 방법이다.)
PA14, PA13 핀은 일반적으로 입출력이 가능한 핀들이다. 해당 핀들을 플로팅된 상태로 두는 것은 그렇게 바람직하지는 않다. STM32F103RBT6의 경우 alternate function으로 핀을 사용할 경우 SWDIO, SWCLK 핀에 각각 풀업 저항, 풀다운 저항이 부착되어 있어서 굳이 저항을 추가할 필요는 없다. 프로젝트에서는 그와 별개로 10KΩ 저항을 부착해 주었다. 또한 신호선에 대해 최소한의 보호를 위해 33Ω 직렬 저항을 부착해주었다. 빠른 통신 속도가 디버깅에 유리하므로 저항값을 너무 높게 설정해서는 안된다.
최종 회로 구성은 다음과 같다. 헤더핀은 HC-PZ254-11.5L-1x5PZ(C27985190) 소자를 사용하였다.
이 것으로 기본적인 MCU 주변 회로들은 다룬 것 같다. 다음 글부터는 사용자의 편의성을 위한 주변회로에 대해서 다루겠다.
'뭐라도 만들어보자!!( 프로젝트 ) > MCU 보드 제작기' 카테고리의 다른 글
9. MCU 보드 제작기 - UART 인터페이스 (0) | 2025.02.27 |
---|---|
8. MCU 보드 제작기 - LED, 스위치 (0) | 2025.02.25 |
6. MCU 보드 제작기 - 외부 발진 회로 (0) | 2025.02.24 |
5. MCU 보드 제작기 - 마이크로 컨트롤러 주변 회로 구성 (0) | 2025.02.22 |
4. MCU 보드 제작기 - 저항과 커패시터 (0) | 2025.02.22 |