Blue Pill(STM32F103ボード) を mbed 開発環境でLチカしてみる


Blue Pill + mbed

格安のSTM32F103ボードである Blue Pill。

Arduino 開発環境で作るのがカンタンだけど、mbed 環境でも開発できる。

mbed 開発環境に Blue Pill は勿論登録されていないけれども、ほぼ同じチップを使った Nucreo F103RBを使うことができる。

Nucreo F103RB はマイコンチップとしてSTM32F103RB を使っている。
Blue Pill はマイコンチップとしてSTM32F103C8T6を使っている。
違いはこんなところ。

MCU GPIO package Flash ADC
STM32F103RB LQFP64,TFBGA64 51 128KB 15~16
STM32F103C8T6 LQFP48,UFQFPN48 37 64KB 10

主にFlashが128KBと64KBの違いだけれど、実はBluePillのチップはFlashが128KB入っていたりする。

mbedでLチカ

まず、サンプルプログラム Nucreo_blink_ledを呼び出す。
ここでは、Nucreo_blink_led_BluePillと名前をつけました。

NucreoのLEDは、PA_5につながっているらしいです。BluePillではPC_13なのでそれを書き換えます。

「コンパイル」ボタンを押すとバイナリがダウンロードされます。

書込

ここで、Nucleo の場合はPCにボードを繋ぐと出現するUSBストレージにバイナリファイルをコピペします。

しかしながらBluePillにはそういった機能は無いので、ST-LinkやUSBシリアルアダプタを使って書き込むことになります。

ここではUSBシリアルを使ってみます。

配線

今回はBluePillのバリエーションの、RobotDynのボードと秋月電子の「FT232RQ USBシリアル変換キット」 を使いました。

本家BluePillの場合はこちらを参照
https://qiita.com/nanbuwks/items/ba37f049f45378da0e2b

stm32flash

書込ソフトとして、stm32flashツールを使います。ここでは、Arduino_STM32をインストールした時にインストールしたものを使いました。


$ cd Arduino
$ cd hardware/Arduino_STM32-master/tools/linux64/stm32flash/

$ ./stm32flash -w ~/Downloads/Nucleo_blink_led_BluePill_NUCLEO_F103RB.bin -v -
g 0x0 /dev/ttyUSB0
stm32flash Arduino_STM32_0.9

http://github.com/rogerclarkmelbourne/arduino_stm32

Using Parser : Raw BINARY
Interface serial_posix: 57600 8E1
Version      : 0x22
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (sector size: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote and verified address 0x08004d40 (100.00%) Done.

Starting execution at address 0x08000000... done.

$

コレで書けました。

注意点

上記のプログラムを実行してみたら、LEDの1と0が逆になっているみたいでした。