사용환경

os: window 10

stm32CubeProgrammer: v2.8.0

사용 보드: [JK전자] Cortex-M4 STM32F407ZGT6 Multi Hit 개발보드

 

 

STM32CubeProgrammer가 나오기 전에는 STM의 시스템 부트로더를 통해 펌웨어 다운로드를 하기 위해 보통은 "Flash Loader Demonstrator" 툴을 사용 했을 것입니다.

Flash Loader Demonstrator

 

STM32CubeProgrammer가 나오면서 ST-Link는 물론, UART, USB를 통한 펌웨어 다운로드를 할 수 있게 되었습니다.

 

먼저 제가 가지고 있는 보드에 사용된 MCU는 STM32F407ZGT입니다.

데이트시트에 Boot modes를 보면 system memory에 위치한 bootloader가 지원하는 방식을 볼 수 있습니다.

STM32F407ZGT의 bootloader는 USART1, USART3, CAN2, USB를 지원한다.

 

먼저 System moemory영역으로 진입하기 위해서는 Boot0핀을 High로 Boot1핀을 Low로 설정해야합니다. 이에 대한 정보는 Reference manual에서 찾을 수 있습니다.

System memory영역에 진입하기 위해서는 BOOT1핀을 Low, BOOT0핀을 High로 설정해야한다.

 

이제 STM32CubeProgrammer를 켜고 아래 그림에 빨간영역을 UART로 설정합니다.

그러면 아래에 UART configuration이 나타나고 알맞는 Port를 설정합니다. 

여기서 Parity는 Even으로 설정합니다.

 

설정이 완료되었으면 보드에 전원을 넣고 프로그램의 Connect 버튼을 누릅니다. (연결이 잘 안되면 MCU 리셋한번 걸고 다시 시도해보시는 것을 추천드립니다)

UART로 잘 연결된 모습

 

연결이 잘 되었다면 왼쪽 2번째 메뉴버튼을 눌러 Erasing & Programming 페이지로 갑니다.

Erasing & Programming 페이지 화면

다운로드하고자 하는 File path를 설정해주고 Start Programm... 버튼을 눌러줍니다.

속도는 느리지만 다운로드가 잘 되는것을 볼 수 있습니다.

다운로드 완료 메세지

 

다운로드가 완료되면 위 그림과 같이 완료 메세지가 나타납니다.

이제 다운로드한 펌웨어를 구동시키기 위해서 앞에서 설정한 BOOT0와 BOOT1핀을 Main Flash Memory에 진입하기 위한 설정으로 바꿔줍니다.

Main Flash memory로 진입하기 위한 설정: Boot0핀을 Low로 바꾸면 됨.

 

Boot0핀을 Low로 바꾸고 MCU에 전원을 다시 인가하면 다운로드된 코드가 동작하게 됩니다.

 

반응형

+ Recent posts