STM32F401CCU6でSTM32duino

STM32F401CCU6でSTM32duino

STM32F401CCU6でSTM32duino

安かったのでいつか試してみようと思って買っておいたSTM32F401CCU6搭載ボード(以下WeActSTM32)にArduinoスケッチを書き込んで動作確認するまでのメモです。

今回は主に次の4サイトを利用させていただきました。

Program STM32 Black Pill (STM32F401 / F411) with Arduino IDE (Windows OS)(少し古いのですが分りやすいインストール手順でした)
https://www.sgbotic.com/index.php?dispatch=pages.view&page_id=49

STMicroelectronics STM32CubeProgrammer(Arduino IDEで書込器として使用するアプリ)
https://www.st.com/ja/development-tools/stm32cubeprog.html

WeAct STM32(今回使用したSTM32のリソース情報)

2023/9/5:リンク先修正
GitHub – WeActStudio/WeActStudio.MiniSTM32F4x1: MiniF4-STM32F401CEU6/STM32F411CEU6 Product Literature

https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1/archive/refs/heads/master.zip(ボードの回路図やピン配置などもこのファイルの中にある)

STM32duino(STM32duinoサイト)
https://github.com/stm32duino
https://github.com/stm32duino/wiki/wiki/Getting-Started(最新のボードマネージャーのURLはここから)

ArduinoIDEにSTM32ボードを追加するところからの手順です。

環境設定

追加のボードマネージャのURL: 右端の編集アイコンを押してURLを追加 https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

[ツール] → [ボード] → [ボードマネージャ]と進みSTM32で検索し、表示される”STM32 MCU based bords”をインストール

[ツール] → [ボード] → [STM32…] → [Generic STM32F4 series]を選択

[ツール] → [Board part number..] → [BlackPill F401CC]を選択

[ツール] → [USB support…]] → [CDC(generic’Serial’supersede U(S)ART)を選択

[ツール] → [Upload method:”STM32CubeProgrammer(SWD)] → [STM32CubeProgrammer(DFU)を選択

ボードの設定が終わりました

ボードの設定が終わったので書き込み器としているSTM32CubeProgrammerをインストールしました。

準備ができたのでWeActSTM32ボードとPCをUSBで接続しましたが、ArduinoIDEのツール[シリアルポート]にポートが現れません。ArduinoやESPとは様子が違い、デバイスマネージャを開いてもCOMポートに表示されていません。
STM32CubeProgrammerをUSB接続を選びポートの再読み込みボタンを押してもポートに何も表示されません。
WeAct のサイトからDLしたMiniSTM32F4x1-masterの中にあったWeAct Studio Download Toolの手順に従うと最後にISPモードにする方法が書かれていました。
「BOOT0キーとリセットキーを押してからリセットキーを離し、0.5秒後にBOOT0キーを離します。」
ESP32と同じイメージなので実行してみるとWindowsのデバイスマネージャに”不明なUSBデバイス”として登場。

ここで諦めずにBOOT0キーを離すタイミングを変えながら何度も繰り返すとWindowsのデバイスマネージャにユニバーサル シリアル バス デバイスとして”STM32 BOOTLOADER”が現れました。
(何回も試しましたが、BOOT0キーとリセットキーをほぼ同時に離すぐらいの方がBOOTLOADERの出現確立が高いように感じました)

デバイスマネージャにSTM32 BOOTLOADERが表示された時にはSTM32CubeProgrammerにも”USB1”というポートが表示されました。これでスケッチの書き込みができそうです。

ArduinoIDEのサンプルスケッチBlinkをそのまま書き込むと問題なく書き込みが完了しました。

ここでArduinoIDEのCOMモニターを開こうとしてもポートがありませんのでエラーになります。そこでスケッチにシリアル出力を追記してWeActSTM32ボードのどこのピンに出力されるのかオシロで調べるとA11,A12で、このピンはUSBインターフェースに接続されています。ふとWindowsのデバイスマネージャを見るとCOMポートが出現していました。


ArduinoIDEのCOMモニターを開いてみるとスケッチ通りに出力されていました。

まだ解らないことばかりですが、とりあえず動作の確認はできました。