Arduino IDE를 정식 홈페이지에서 다운로드한다. 최신버전을 다운받아 설치했는데 문제는 없는 것 같다.
https://www.arduino.cc/en/Main/Software
다운받은 Arduino IDE를 설치 후, Cortex M3용 컴파일러 툴체인을 설치한다.
정상적으로 설치가 완료되면 아래 내용을 확인할 수 있다.
STM32duino 라이브러리를 다운로드 한다.
https://github.com/rogerclarkmelbourne/Arduino_STM32
Arduino_STM32-master.zip 파일의 압축을 푼 후, 폴더 명을 Arduino_STM32로 변경하여, Arduino 설치 폴더의 hardware 폴더에 복사한다.
Arduino IDE를 재 실행하게 되면 STM32duino 관련 보드들이 표시 된다.
STM32duino의 부트로더는 LeafLabs 가 개발한 Maple 부트로더를 기반으로 한다. GPIO 중 PA12(USB D+)를 제어하여 USB 버스를 재 설정 할 수 있도록 수정한 것이다. Blue Pill 보드의 경우 LED가 PC13에 있으며, 'generic_boot20_pc13.bin' 파일을 사용해야 한다.(LED 위치에 따라 버전이 상이하다.)
일단 부트로더를 올리기 위해서는 USB to TTL 모듈이 필요하며, 아래와 같이 결선해야 한다.
보드의 Boot0 점퍼는 High로 변경해야 한다.
USB to TTL 모듈은 기호에 맞게 구매하면된다. 보유한 모듈에 대한 정보는 아래와 같다.
http://www.devicemart.co.kr/goods/view?no=1324910
부트로더를 라이팅할 때 사용할 USB to TTL 모듈의 COM 포트 번호를 확인한다.
'generic_boot20_pc13.bin' 부트로더 파일과 'Bluepill_boot.bat' 파일을 다운로드한 후, stm32flash.exe가 있는 Arduino/hardware/Arduino_STM32/tools/win 디렉토리에 복사한다.
'Bluepill_boot.bat을 열어서 COM Port를 장치 관리자에서 확인한 Port로 변경하여 저장한다.
Bluepill_boot.bat을 실행하면 명령어 창이 열리면서 라이팅을 시작한다.
부트로더 라이팅이 완료되면 명령어 창을 닫고 USB to TTL 모듈을 제거하고 Boot0의 점퍼를 Low로 다시 변경한 다음 USB 케이블을 PC와 연결하게 되면 Board에 전원이 인가되면서 PC13 Port에 연결된 LED가 빠르게 몇 회 깜박인 후, 느린 속도로 깜박이는 것을 확인 할 수 있다.
윈도우에서 제공하는 직렬 USB 드라이버와 DFU(업로드) 드라이버를 maple serial 및 DFU 장치의 USB ID와 연결해 주기 위해 Arduino_STM32/driver/win 디렉토리로 이동 후 'install_drivers.bat' 파일을 클릭한다.
명령어 창이 열리면서 드라이버 인스톨 확인을 허용할 것인지 묻게 되는데 '예'를 클릭하면 먼저 maple DFU Driver를 설치한 후 또 다른 명령어 창이 열리면서 'maple serial driver'를 설치하게 된다.
설치가 모두 끝나면 아무키나 눌러 설치를 완료 시킨다.
두 개의 드라이버 설치가 완료되었으면 Board에 USB 케이블을 연결하여 장치 관리자에 설치된 시리얼 포트를 확인해 보면 처음에는 libusb Maple DFU 장치로만 인식하게 되는데, 아두이노 IDE를 실행 후 메뉴의 툴에서 Generic STM32F103C를 선택한 다음 업로드 메뉴에서 'stm32duino bootloader'를 선택하고 예제 메뉴에서 examples/Digital/Blink를 불러와서 LED 출력 포트를 PC13으로 변경하여 업로드를 완료하면, 그 이후부터는 메뉴에서 Maple 시리얼 장치를 사용할 수 있게 된다. 시리얼 포트 번호는 장치관리자에서 변경할 수가 있다.
프로그램 업로드 후 Board의 LED가 1초 간격으로 점멸된다면 정상적으로 동작하는 것이다.
'소소한 취미 > Blue Pill' 카테고리의 다른 글
[STM32duino] 01. Blue Pill 그리고 Blue Pill Clone (0) | 2019.05.01 |
---|