ブログトップ 記事一覧 ログイン 無料ブログ開設

JF1DIR業務日誌 このページをアンテナに追加 RSSフィード

電子工作・オーディオクラフト・アマチュア無線・コンテスト・BCL
プロフィールはこちら

2017-11-10 爆安Black Pillをmbedで動かしてみた

爆安Black Pillをmbedで動かしてみた

| 爆安Black Pillをmbedで動かしてみたを含むブックマーク 爆安Black Pillをmbedで動かしてみたのブックマークコメント

またまたマイコンネタですが・・・・世の中にARMの石であるSTM32F103C8T6のボードがありまして、これをArduinoにするという「STM32duino」プロジェクトがあるそうです。ここを見るとこの石の評価ボードにはいろいろ亜流があるらしく、Blue PillやらBlack Pillといわれる中華コピー版が100円台と超格安で売られているとのことで、Aliexpressで10枚くらい購入しましまた。で、忘れた頃に届きました。Arduinoではなくもちろんmbedで動かしてみたのですが、実に簡単です。これがおそらく最安値のmbedハードでしょう。Cortex-M3がこんな安く手に入り手軽に使えるなんてさすがARMでありSTであります。

f:id:WideR:20171110204020j:image

ピンのはんだ付け

ピンとジャンパスイッチが付いていないので自分ではんだ付けします。変な油が基板にべっとり付いていたので、アセトンを浸した綿棒でよく拭ってからはんだ付けしましょう。ピン名のシルク印刷が非常に不鮮明、基板の切断位置がズレたりして、さすがは中華クオリティです。

基板上のジャンパスイッチは、ISPモードにするか動作モードにするかのスイッチらしく、ISPモード起動はB0+/B1-のようです。

f:id:WideR:20171110204043j:image

mbedコンパイル

STM32F103C8T6はmbedに非対応ですが、これに似ているNUCLEO F103RBmbedのプラットフォームにしてしまえば、出来上がったプログラムはバイナリ互換です。しかmbed OS 5対応。オンラインコンパイラもしくはmbed CLIでLチカプログラムをコンパイルします。

#include "mbed.h"
DigitalOut myled(PB_12);
int main() {
    while(1) {
        myled = 1;
        wait(0.1);
        myled = 0;
        wait(0.1);
    }
}

UARTでプログラムを転送

USB-シリアル変換のTXをボードのRX(A10)、RXをボードのTX(A9)に接続し(なおピン配置はBlue Pillの基板であるがココを参考にしました)、stm32flashというツールダウンロードして入手します。なおLinux版のファイルは"stm32flash-0.5.tar.gz"です。以下Linuxでの操作を示します。

$tar xvfz stm32flash-0.5.tar.gz
$cd stm32flash
$sudo make install

USB-シリアル変換のUSBPCに挿して、dmsegコマンドで、シリアルポートを確認。

$dmseg | grep 'USB Serial'
[850126.770536] usb 2-1.7: FTDI USB Serial Device converter now attached to ttyUSB0

ここでは/dev/ttyUSB0がシリアルポートでした。Fチカのプログラムをそのポート転送します。

$sudo stm32flash -w F103test.bin -v -g 0x0 /dev/ttyUSB0
stm32flash 0.5

http://stm32flash.sourceforge.net/

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

Starting execution at address 0x08000000... done.

これで書き込みできました。プログラム起動するには、ジャンパをB0-/B1-にして電源を入れます。

f:id:WideR:20171110204115j:image

秋月のLPC11U35 QuickStart互換ボードも安いですが、Black Pillはmbed OS 5に対応しているSTM32F103なのでmbed CLIで開発するにはとてもFBで使いやすそうです。

【追記】Windows上でbinファイル転送

リクエストがありましたので、Windows上での方法を記してみます。ここにstm32flashのWindows版があるので、これをダウンロードして適当なフォルダに展開します。実行ファイルの"stm32flash.exe"はCLIプログラムなので、このフォルダパスを通すか、Windows PowerShellもしくはDOSプロンプトを実行しこのフォルダに移動します。さらにmbedコンパイラビルドしたBinファイルをこのフォルダへ移動しておきます。

次にデバイスマネージャーを開いて、「ポート(COMとLPT)」を開いてUSB Serial Portのポート番号を確認してます。例えば、COM9だとします。Black PillをISP起動モードにしてUSBをつなぎ直して、プロンプトから、

> .\stm32flash.exe  -w '.\F103test.bin' -v -g 0x0 COM9

とすると、Black Pillへ書き込まれます。エラーが出る場合は、ISP起動モードになっているか、COMポートが正しく指定されているか、Black Pillへの配線が正しいかUSBバスパワーが足りているか確認して下さい。