개인공간 :: 'stm32' 태그의 글 목록

2019. 5. 2. 00:33

[STM32duino] 02. Arduino IDE 설치 및 부트로더 올리기

Arduino IDE를 정식 홈페이지에서 다운로드한다. 최신버전을 다운받아 설치했는데 문제는 없는 것 같다.

https://www.arduino.cc/en/Main/Software

 

Arduino - Software

By downloading the software from this page, you agree to the specified terms. THE ARDUINO SOFTWARE IS PROVIDED TO YOU "AS IS" AND WE MAKE NO EXPRESS OR IMPLIED WARRANTIES WHATSOEVER WITH RESPECT TO ITS FUNCTIONALITY, OPERABILITY, OR USE, INCLUDING, WITHOUT

www.arduino.cc

Arduino IDE 1.8.9(19년5월2일 기준. 최신버전) Download 한다.
JUST Download 클릭. (여유가 된다면 기부를 하고 Download를 해도 된다.)

 

다운받은 Arduino IDE를 설치 후, Cortex M3용 컴파일러 툴체인을 설치한다.

 

툴 > 보드 > 보드 매니저를 선택한다.
Arduino SAM 보드를 선택 후 설치한다.

 

정상적으로 설치가 완료되면 아래 내용을 확인할 수 있다.

 

Arduino SAM Boards INSTALLED
추가된 Arduino ARM (32bit) 보드

 

STM32duino 라이브러리를 다운로드 한다.

 

https://github.com/rogerclarkmelbourne/Arduino_STM32

Arduino STM32 gitbub zip 파일을 다운로드한다.

 

Arduino_STM32-master.zip 파일의 압축을 푼 후, 폴더 명을 Arduino_STM32로 변경하여, Arduino 설치 폴더의 hardware 폴더에 복사한다.

 

압축 푼 폴더명을 Arduino_STM32로 변경한다.
해당 폴더에 복사한다.

 

Arduino IDE를 재 실행하게 되면 STM32duino 관련 보드들이 표시 된다.

 

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

1,980원이다.

 

USB to TTL 과 Blue Pill 연결도

 

부트로더를 라이팅할 때 사용할 USB to TTL 모듈의 COM 포트 번호를 확인한다.

 

COM5 포트로 할당되어 있다.

'generic_boot20_pc13.bin' 부트로더 파일과 'Bluepill_boot.bat' 파일을 다운로드한 후, stm32flash.exe가 있는 Arduino/hardware/Arduino_STM32/tools/win 디렉토리에 복사한다.

 

generic_boot20_pc13.bin
0.01MB
Bluepill_boot.bat
0.00MB

 

'Bluepill_boot.bat을 열어서 COM Port를 장치 관리자에서 확인한 Port로 변경하여 저장한다.

 

메모장으로 Bluepill_boot.bat 파일을 열어 COM 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' 파일을 클릭한다.

 

install_drivers.bat 파일을 클릭한다.

명령어 창이 열리면서 드라이버 인스톨 확인을 허용할 것인지 묻게 되는데 '예'를 클릭하면 먼저 maple DFU Driver를 설치한 후 또 다른 명령어 창이 열리면서 'maple serial driver'를 설치하게 된다.

 

maple DFU Driver를 설치한다.

설치가 모두 끝나면 아무키나 눌러 설치를 완료 시킨다.

 

두 개의 Driver가 정상적으로 설치되었다.

두 개의 드라이버 설치가 완료되었으면 Board에 USB 케이블을 연결하여 장치 관리자에 설치된 시리얼 포트를 확인해 보면 처음에는 libusb Maple DFU 장치로만 인식하게 되는데, 아두이노 IDE를 실행 후 메뉴의 툴에서 Generic STM32F103C를 선택한 다음 업로드 메뉴에서 'stm32duino bootloader'를 선택하고 예제 메뉴에서 examples/Digital/Blink를 불러와서 LED 출력 포트를 PC13으로 변경하여 업로드를 완료하면, 그 이후부터는 메뉴에서 Maple 시리얼 장치를 사용할 수 있게 된다. 시리얼 포트 번호는 장치관리자에서 변경할 수가 있다.

 

libusb Maple DFU 장치로 인식하고 있다.

 

Generic STM32F103C series를 선택한다.
Blink 예제를 선택한다.
LED 출력 Port를 PC13으로 변경 후 업로드를 선택한다.

 

COM Port를 설정한다.

 

Maple Serial 포트가 인식되었다. 

 

프로그램 업로드 후 Board의 LED가 1초 간격으로 점멸된다면 정상적으로 동작하는 것이다.

'아두이노 > Blue Pill' 카테고리의 다른 글

[STM32duino] 01. Blue Pill 그리고 Blue Pill Clone  (0) 2019.05.01

2019. 5. 1. 00:08

[STM32duino] 01. Blue Pill 그리고 Blue Pill Clone

아두이노 IDE로 다룰 수 있는 ARM 보드 중 하나이며, STM32F103C8을 사용한다.

Pin out 및 회로도는 아래와 같다.

 

Blue Pill (STM32F103) Pinout Diagram
The-Generic-STM32F103-Pinout-Diagram.pdf
4.59MB
Blue Pill schematic
Vcc-gnd.com-STM32F103C8-schematic.pdf
0.14MB

 

ebay 혹은 aliexpress 등에서 저렴한 가격으로 구매가 가능하나, 배송에 시간이 필요하다.

 

ebay Blue Pill 제품

링크 : https://www.ebay.com/itm/STM32F103C8T6-Minimum-System-Developmen-Board-Module-Core-Learning-For-Arduino/323633385054?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

 

 

실제 구매하여 수령까지는 약 한달 정도가 소요되었으며, 동작에는 문제가 없다.. 다만 STM32F103C8이 아닌 Clone MCU가 실장되어 있어서 당황스러웠다. 다시 한번 언급하지만 동작에는 문제가 없다.

아래는 실제 수령한 Clone Blue Pill 제품의 사진이다.

 

Clone Blue Pill 제품
Clone Blue Pill MCU (CKS32F103C8T6)

Blue Pill과 MCU를 제외한 모든 부분이 동일하다고 보면 된다. Clone MCU지만 해당 MCU만의 데이터시트도 존재한다.

하지만 데이터 시트는 중문만을 지원하고 있다. 

CKS32F103x8_datasheet.pdf
2.95MB

Clone MCU이니깐 정품 Blue Pill의 MCU인 STM32F103x8의 데이터시트를 참고하더라도 무리가 없을 것이다.

STM32F103x8_datasheet.pdf
1.19MB

기능구현에 있어서 Clone 제품으로도 충분히 성능을 만족할 것이라는 판단이 들어, 일단 정품 Blue Pill을 구매하는 것은 보류한다.