STM32F103C8T6ボード(Blue Pill)でLチカするまで
エミュレータはHiLetgo ST-Link V2(ST-Link V2のクローン)を使用します。1台1000円未満で売っています。
STM32F103C8T6ボードは多くの販売元から出ているBlue Pillを使用します。私は1枚当たり400円程度のものを買いました。
ドライバーの導入
ST-Link V2のドライバーを導入します。
STMicroのWEBサイトからダウンロードします。
STSW-LINK009 ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 USB driver signed for Windows7, Windows8, Windows10
登録したE-mailアドレス宛にダウンロードURLが届きます。
.zipファイルを解凍してdpinst_amd64.exeを実行します。(64bit OSの場合)
ST-Link V2のアップデート
ST-Link V2のファームウェアのアップデートを行うためにSTM32 ST-LINK utilityを導入します。
STSW-LINK004 STM32 ST-LINK utility
未確認ですが、後継のSTM32CubeProg(NRND)ではST-Link V2クローンが使用できないとの情報あり。
また、ST-LINK utilityは新しい品番の製品(STM32L5やSTM32WBなど)はサポートしていません。
同梱されているデバイスドライバーも古いようです。
setup.exeを実行してインストールします。
インストール後は、なぜかショートカットがスタートメニューに追加されないので、
C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\STM32 ST-LINK Utility.exe
を実行します。
ST-Link->Firmware updateをクリックします。
ST-Link V2をUSBに接続します。
Device ConnectボタンをクリックしてCurrent Versionに現在のファームウェアの情報が表示されるとYes>>>>ボタンがクリック可能になります。
クリックしてしばらく待つとUppgrade is successful.と表示されます。
ST-Link V2クローンの改造
STM32duino-bootloaderの導入
- ST-LINK Utilityを起動します。
- ST-Link V2とSTM32F103C8T6ボードを接続します。SWO(SWDIO)とSWCLK、3.3V、GNDを結線します。STM32F103C8T6ボードにUSBから給電する場合は、3.3Vを結線しないでください。
- STM32F103C8T6ボードのBOOT 0ジャンパーを1にセットします。(ISP boot mode)
- Target->Program & Verify...をクリックします。
- STM32duino-bootloaderをダウンロードします。ブートローダーは複数ありますが、\binaries\generic_boot20_pc13.binを使用します。
- Startボタンをクリックしてしばらく待ちます。Verification...OKとメッセージが出たら完了です。
- 未給電状態でSTM32F103C8T6ボードのBOOT 0ジャンパーを0にセットします。(Flash boot mode)
- 電源を入れなおすかとブートローダーによりLEDが点滅します。
Arduino IDEからボードを使えるようにする(Arduino_STM32)
Arduino IDEにARM用のツールチェインと書き込み環境、ボード設定などを導入します。Arduino IDE ver2.2.1で確認しました。
ツール->ボード->ボードマネージャーをクリック
GCCを導入するため、Arduino SAM Boards (32-bits ARM Cortex-M3)をインストールします。(上部の検索欄にSAMと入力すると出てきます。)
このままではまだボード設定を選択することができないため、Arduino_STM32をダウンロードします。
ドキュメント\Arduino\hardware\Arduino_STM32に展開した中身を移動します。
Arduino IDEを再起動します。
ボード情報を選択できるようになりましたので、
- ボード:STM32F1 Boards(Arduino_STM32) ->Generic STM32F103C series
- CPU Speed(MHz):72MHz (Normal)
- Variant:STM32F103C8 (20k RAM. 64k Flash)
- Upload method:STM32duino bootloader
後述のUSB対策を行った場合のみ使用できます。
ブートローダーを使用しない場合は、ST-Linkを選択します。
BOOT0をあらかじめ1にセットすることを忘れないでください。
Blue PillのUSB対策
参考
STM32F103C8T6 をArduinoIDEで使用する
STM32F103C8T6 でLチカ
STM32duinoについて
arduino IDE 1.6.4 で ARM STM32F103C8T6を使ってみる
ST-Link V2 CloneにReset追加
Arduino_Core_STM32 をセットアップ
STM32 Cube ProgrammerではST-Link V2クローンを使用した書き込みができないとの情報あり。
リセット配線を改修して試してみたい。