Closed2

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の導入

  1. ST-LINK Utilityを起動します。
  2. ST-Link V2とSTM32F103C8T6ボードを接続します。SWO(SWDIO)とSWCLK、3.3V、GNDを結線します。STM32F103C8T6ボードにUSBから給電する場合は、3.3Vを結線しないでください。
  3. STM32F103C8T6ボードのBOOT 0ジャンパーを1にセットします。(ISP boot mode)
  4. Target->Program & Verify...をクリックします。
  5. STM32duino-bootloaderをダウンロードします。ブートローダーは複数ありますが、\binaries\generic_boot20_pc13.binを使用します。
  6. Startボタンをクリックしてしばらく待ちます。Verification...OKとメッセージが出たら完了です。
  7. 未給電状態でSTM32F103C8T6ボードのBOOT 0ジャンパーを0にセットします。(Flash boot mode)
  8. 電源を入れなおすかとブートローダーにより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クローンを使用した書き込みができないとの情報あり。
リセット配線を改修して試してみたい。

このスクラップは2023/09/10にクローズされました