STM32CubeProgrammer 다운로드 및 사용법 (ST-LINK·UART·USB DFU)

한국어 사용법 패키지 · 프로그램 파일은 게시글의 별도 첨부 또는 공식 링크에서 받으세요.

STM32CubeProgrammer는 STM32의 메모리를 읽고 펌웨어를 기록·검증하는 STMicroelectronics 공식 도구입니다. 이 글은 STM32 MCU의 ST-LINK(SWD), UART 부트로더, USB DFU 연결을 처음 사용하는 분을 위한 안내입니다.

프로그램은 아래 ST 공식 페이지에서 다운로드하세요. 첨부한 STM32CubeProgrammer-guide-ko.zip에는 한국어 사용법, 기록 전 확인표, 공식 자료 링크가 들어 있습니다. 프로그램 설치파일이나 특정 보드의 펌웨어는 포함하지 않습니다.

1. 공식 다운로드 및 설치

  1. STM32CubeProgrammer 공식 다운로드 페이지를 엽니다.
  2. 소프트웨어 다운로드 영역에서 운영체제에 맞는 패키지를 선택합니다. 일반적인 64비트 Windows PC는 Windows 64비트용을 선택합니다.
  3. 페이지에 표시되는 라이선스 동의와 계정 로그인·다운로드 절차를 진행합니다.
  4. 받은 패키지를 풀고 설치 프로그램을 실행합니다. ST-LINK 또는 USB DFU를 사용할 경우 해당 드라이버도 설치합니다.
  5. STM32CubeProgrammer를 실행하고 사용할 연결 인터페이스를 선택합니다.

버전과 지원 장치는 공식 페이지와 설치된 버전의 매뉴얼을 기준으로 확인하세요. Windows에서 ST-LINK는 잡히지만 대상 MCU가 연결되지 않는 경우에는 USB 드라이버 문제와 보드 배선 문제를 구분해야 합니다.

2. ST-LINK로 연결

  1. 보드와 디버거의 핀맵을 확인하고 SWDIO, SWCLK, GND를 연결합니다. 보드 전원과 디버거의 기준 전압 연결도 확인합니다.
  2. NRST를 사용하는 리셋 연결이 필요하면 해당 핀도 연결합니다. 전압 감지 핀과 전원 공급 핀은 역할이 다를 수 있으므로 디버거 설명서를 따릅니다.
  3. 보드에 전원을 공급하고 ST-LINK를 PC에 연결합니다.
  4. 프로그램에서 ST-LINK를 선택하고 목록을 새로 고칩니다. 여러 디버거가 있으면 일련번호로 대상 디버거를 선택합니다.
  5. Port를 SWD로 설정하고 Connect를 누릅니다.
  6. 연결 로그와 표시된 Device ID·메모리 정보가 사용 중인 MCU와 일치하는지 확인합니다.

NUCLEO 등 ST-LINK가 내장된 보드는 우선 보드의 ST-LINK USB 커넥터를 사용합니다. 연결 오류가 나면 SWD 속도를 낮춰 볼 수 있습니다. 실행 중인 펌웨어가 연결을 방해하는 경우에는 NRST 배선을 확인한 뒤 Under Reset 연결 모드를 검토합니다.

3. 펌웨어 파일 기록 및 검증

펌웨어 기록은 기존 프로그램과 데이터를 바꿀 수 있습니다. 대상 MCU, 펌웨어 파일, 기록 주소와 지워지는 영역을 먼저 확인하고 필요한 기존 데이터는 백업하세요.

  1. 연결 상태에서 파일 열기 또는 Erasing & Programming 화면을 엽니다.
  2. 해당 보드용 HEX, ELF 또는 BIN 파일을 선택합니다.
  3. HEX·ELF는 파일에 포함된 주소를 확인합니다. BIN은 주소 정보가 없으므로 프로젝트가 지정한 시작 주소를 직접 입력합니다.
  4. 설정된 기록 범위와 지우기 옵션을 확인하고, 기록 후 검증하는 Verify 옵션을 사용합니다.
  5. 프로그래밍을 시작하고 완료·검증 성공 메시지를 확인합니다. 중간에 전원이나 USB를 분리하지 않습니다.
  6. 연결을 종료하고 정상 부팅 설정으로 되돌린 뒤 리셋하여 프로그램 동작을 확인합니다.

0x08000000은 여러 STM32 MCU에서 내부 Flash 시작 주소로 사용되지만 모든 프로젝트의 정답은 아닙니다. 부트로더 뒤에 앱이 배치되거나 메모리 구성이 다르면 링커 스크립트와 배포 문서에 지정된 주소를 사용해야 합니다.

일반적인 펌웨어 기록을 위해 Option Bytes의 보호·보안 설정을 임의로 바꾸지 마세요. RDP 변경은 데이터 소거를 일으킬 수 있고 일부 보안 설정은 되돌릴 수 없습니다.

4. UART 부트로더로 연결

사용 MCU의 시스템 부트로더가 UART를 지원해야 하며, 해당 부트로더가 사용하는 UART 핀을 연결해야 합니다. 일반 콘솔 UART와 같다고 가정하지 마세요.

  1. MCU 품번을 확인하고 AN2606 시스템 부트로더 문서에서 지원 인터페이스·핀·부트 진입 조건을 확인합니다.
  2. 전압이 맞는 USB-UART 변환기를 사용해 TX ↔ RX, RX ↔ TX, GND ↔ GND를 연결합니다. RS-232 전압을 MCU 핀에 직접 연결하지 않습니다.
  3. 문서에 따른 BOOT 핀·옵션 설정으로 시스템 부트로더에 진입하고 리셋합니다. BOOT0 하나만으로 진입하는지는 MCU별로 다릅니다.
  4. Tera Term 등 COM 포트를 사용하는 다른 프로그램을 닫습니다.
  5. STM32CubeProgrammer에서 UART, 해당 COM 포트와 부트로더의 통신 조건을 선택한 뒤 Connect를 누릅니다.
  6. 대상이 인식되면 올바른 파일·주소로 기록하고 검증합니다. 완료 후 정상 부팅 설정으로 복원하고 리셋합니다.

CP210x 변환기를 사용하는 경우 자료실의 CP210x 드라이버 안내도 참고할 수 있습니다.

5. USB DFU로 연결

  1. MCU가 시스템 부트로더의 USB DFU를 지원하고, 보드에 해당 USB 신호가 연결되어 있는지 확인합니다.
  2. 보드 설명서와 AN2606의 조건에 따라 시스템 부트로더로 진입합니다.
  3. 데이터 통신이 가능한 USB 케이블로 대상 MCU의 USB 커넥터를 PC에 연결합니다. ST-LINK용 USB 커넥터와 다를 수 있습니다.
  4. 프로그램에서 USB를 선택하고 목록을 새로 고친 뒤 인식된 DFU 장치를 선택합니다.
  5. Connect 후 대상 정보를 확인하고, 파일 기록·Verify를 진행합니다.
  6. 기록이 끝나면 부트 설정을 정상으로 돌리고 리셋합니다.

DFU 장치가 보이지 않으면 USB 커넥터·케이블, 부트 진입 상태, Windows 장치 관리자와 DFU 드라이버를 순서대로 확인합니다.

6. 오류 확인 및 공식 자료

세부 화면과 연결·프로그래밍 절차는 UM2237 공식 사용 설명서, 부트로더 핀과 진입 조건은 AN2606을 확인하세요.

자료 확인일: 2026년 9월 12일. 본 안내는 MCU 개발·시험용이며 MCU별 보안 설정과 양산 프로그래밍 절차는 해당 문서를 따릅니다.