USB–직렬 변환기와 SWD 프로브의 역할을 구분합니다
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)는 직렬 송수신 주변장치입니다. 이 글에서는 USART의 비동기 통신 기능인 UART(Universal Asynchronous Receiver/Transmitter)를 사용합니다. TX(transmit)는 보내는 쪽, RX(receive)는 받는 쪽입니다. USB–UART 변환기는 컴퓨터의 USB 데이터를 목표 기판의 TX·RX 논리 신호로 옮깁니다. 변환기가 컴퓨터에 직렬 포트로 보이는 것만으로 STM32가 기록 명령을 받고 있다는 뜻은 아닙니다.
시스템 메모리 부트로더(system-memory bootloader)는 지원되는 STM32 제품에서 제조사가 넣어 둔 기록용 코드입니다. 사용 중인 정확한 칩의 부트 설정과 USART 핀을 맞추어 이 코드로 시작해야, 해당 경로에서 STM32CubeProgrammer가 연결될 수 있습니다. 제품마다 지원 인터페이스와 진입 조건이 다르므로 칩 형번을 확인하지 않은 채 특정 BOOT 핀 상태나 USART 번호를 공통 배선으로 정하면 안 됩니다. 펌웨어에 따로 넣은 사용자 부트로더를 사용하는 보드는 그 펌웨어의 진입 절차를 확인해야 합니다.
SWD(Serial Wire Debug)는 SWDIO 데이터선과 SWCLK 클록선을 사용해 외부 디버그 프로브가 칩에 접근하는 연결입니다. ST-LINK 같은 프로브를 사용할 수 있도록 별도 접점에 SWDIO, SWCLK, 접지(GND), 대상 신호 전압을 읽는 기준 단자(VTref)를 남깁니다. 제품과 복구 방식에 따라 리셋선(nRESET)도 필요하므로 접점 계획에 포함할지 확인합니다. VTref는 프로브가 신호 전압을 맞추기 위한 기준일 수 있으며, 프로브가 보드 전원을 공급한다는 뜻은 아닙니다.
두 접속 경로를 별도로 남기는 구성은 SWD와 UART를 한 케이블의 전용 접점에 함께 실어 보내는 구성과 다릅니다. 어느 방식이든 커넥터의 모양만 보고 표준 핀 배정이라고 가정하지 말고, 실제 케이블과 목표 기판의 연결을 회로도로 대조해야 합니다.
회로도에서 두 경로를 각각 따라갑니다
먼저 실장할 STM32의 정확한 형번을 정합니다. 해당 제품의 데이터시트와 시스템 메모리 부트 모드 자료에서 USART 기록 지원 여부, 사용할 RX·TX 핀, 부트 선택 방법, 리셋 조건을 적습니다. 사진이나 제품군 이름만으로 핀을 정하지 않습니다. 외부 회로가 부트 설정 핀을 리셋 순간에 반대 논리로 끌어당기지 않는지도 확인합니다.
USB–UART 변환기의 TX는 STM32의 선택한 USART RX로, 변환기의 RX는 STM32 TX로 연결합니다. 두 부품의 접지를 공유하고 양쪽의 논리 전압 및 전원 인가 순서를 확인합니다. USB–UART 논리 신호에 RS-232 전압을 직접 연결하지 않습니다. 변환기의 DTR·RTS를 리셋이나 부트 선택에 쓰려면 해당 제품의 회로와 신호 극성을 따로 설계하고, 사용하지 않는다면 소프트웨어가 그 선으로 자동 진입한다고 가정하지 않습니다.
SWD 접점에서 MCU의 SWDIO·SWCLK까지 이어지는 경로는 변환기 회로와 구분해 직접 추적합니다. 접점 방향, GND, VTref의 역할을 표시하고, 전원이 꺼진 상태에서 각 접점의 도통과 이웃 접점의 단락을 확인합니다. 외함을 닫거나 다른 부품을 조립한 뒤에도 프로브를 댈 수 있는지 확인합니다. 불량 펌웨어가 실행되는 상황에서 리셋 직후 접속해야 하는 제품이라면 nRESET 접점과 도구의 연결 방식을 함께 설계합니다. 다만 SWD 접점만 있으면 읽기 보호나 보안 설정과 관계없이 반드시 복구된다고 보장할 수는 없습니다.
조립을 마친 상태에서 프로브의 연결·분리를 확인합니다
기판에 접점이 있다는 사실과 현장에서 접근할 수 있다는 사실은 다릅니다. 케이블·타이·브래킷·나사·클립·커버를 장착한 시제품에서 정해 둔 서비스 순서대로 프로브를 연결하고 분리해 봅니다. 정상 케이블을 여러 개 빼거나 약한 클립을 손상시켜야 한다면 접점 위치·서비스 개구부·케이블 경로를 다시 검토합니다. 실제로 조립 시험을 수행했다는 기록이 아니라 설계 검토 방법입니다.
헤더와 스프링 핀 접점은 높이뿐 아니라 작업 시간과 고정 방법을 비교합니다. TC2030-IDC-NL Rev B의 첫 장에는 패드 사이 배선·비아 금지 구역, 패드의 솔더 페이스트 금지, 기판 아래에서 정렬 핀에 끼우는 임시 클립이 표시됩니다. 다리가 있는 TC2030-IDC Rev B는 양옆의 손가락 압착 공간과 뒷면 발의 여유를 요구합니다. 품번별 풋프린트를 혼합하지 않고 부품 높이·기판 두께·기구 간섭과 케이블 진입 방향을 CAD와 시제품에서 확인합니다.
접속 형태를 바꾸어도 핀 1, 케이블 방향, GND·VTref, SWDIO·SWCLK와 필요한 nRESET 확인은 남습니다. SEGGER의 20핀 J-Link 설명에서 VTref는 대상 전압을 감지하고 논리 레벨의 기준을 잡는 입력이며 별도 공급 핀과 같은 역할이 아닙니다. 대상의 전원 조건과 허용된 읽기·복구 범위를 정하고 보안 설정이 막는 접근은 별도로 다룹니다.
헤더가 있으면 곧바로 EMI 불합격이라는 일반 규칙은 만들지 않습니다. 실제 배선의 분기, 케이블, 에지 속도와 사용 조건을 살피고 필요한 측정을 해야 합니다. 원저자의 장비 사진과 제조사 도면은 복제하지 않았으며, 특정 제품의 복구 성공을 주장하지 않습니다.
English summary. Test service access on the assembled product, including retention and removal space. Match the exact probe footprint and electrical pinout. A physical contact is not a guarantee of access through device security restrictions.
첫 기판에서는 직렬 기록과 SWD 접속을 따로 시험합니다
- USB 경로를 확인합니다. 데이터 통신이 확인된 케이블로 연결해 운영체제에 직렬 포트가 새로 나타나는지 봅니다. 포트가 없다면 케이블·커넥터·변환기의 전원과 USB 회로부터 조사합니다. 이 단계에서 STM32 기록 가능 여부는 아직 판정하지 않습니다.
- 정확한 칩의 부트 절차로 진입합니다. 제품 문서가 정한 부트 설정과 리셋 순서를 적용합니다. 부트 설정 핀의 전압은 펌웨어가 실행된 뒤가 아니라 리셋 중에 확인합니다. STM32CubeProgrammer에서 UART 인터페이스와 방금 확인한 포트를 고르고 대상에 연결합니다. 일반적인 시스템 메모리 USART 부트로더 설정에서는 짝수 패리티, 8 데이터 비트, 1 정지 비트, 흐름 제어 끔을 사용하지만, 도구 버전과 정확한 대상의 문서를 우선합니다.
- 칩 식별과 기록 검증을 구분합니다. 연결에 성공하면 도구가 읽은 대상 정보를 예상 형번과 대조합니다. 기록 파일과 대상 메모리 영역을 확인한 다음 프로그램을 쓰고 도구의 검증 결과를 확인합니다. 보호 설정을 변경하거나 전체 지우기를 실행하기 전에는 데이터 보존 요구를 확인합니다. 기록 후에는 일반 부트 상태로 되돌려 리셋하고, 새 프로그램이 실제 전원 조건에서 시작하는지 시험합니다.
- 별도의 SWD 경로도 시험합니다. 전원과 기준 전압을 확인한 뒤 대응하는 프로브를 SWD 접점에 연결합니다. 장치 식별 또는 허용된 메모리 읽기처럼 변경을 수반하지 않는 동작으로 접점을 먼저 검증합니다. 직렬 경로가 실패할 때 사용할 계획이라면, 나중에 커넥터를 찾거나 배선 방향을 추측하지 않도록 프로브·케이블·핀 배정과 접속 결과를 기록합니다.
| 관찰 결과 | 다음에 확인할 지점 |
|---|---|
| USB를 꽂아도 직렬 포트가 나타나지 않습니다. | 데이터 케이블과 USB 커넥터, 변환기의 전원·클록 요구와 USB 신호 배선을 확인합니다. |
| 포트는 보이지만 STM32CubeProgrammer가 대상에 연결하지 못합니다. | 대상 전원, 접지, TX↔RX 교차, 논리 전압, 정확한 USART 핀과 부트 진입·리셋 순서를 확인합니다. 포트가 보인다고 해서 부트로더에 진입했다고 판단하지 않습니다. |
| 직렬 접속은 되지만 SWD 프로브가 대상을 찾지 못합니다. | SWD 접점 방향, SWDIO·SWCLK 도통, GND·VTref, 프로브 설정과 대상의 보호·리셋 상태를 분리해 확인합니다. |
| 두 경로 모두 실패합니다. | 전원과 리셋 상태, 칩 형번·보호 설정을 먼저 확인합니다. 한쪽 도구의 설정만 반복해서 바꾸지 않습니다. |
시험 기록에는 실제 MCU 형번, USB–UART 변환기 형번, USART 핀과 논리 전압, 부트 진입 상태, SWD 접점의 방향과 핀 배정, 각 경로의 대상 식별·기록 검증 결과를 함께 남깁니다. 그래야 다음 번 직렬 기록 실패가 USB 연결 문제인지, 부트 진입 문제인지, 목표 칩 문제인지 빠르게 구분할 수 있습니다.