この広告は、90日以上更新していないブログに表示しています。
STM32F103C8 ボード上での Arduino IDE の利用
<STM32F103C8ボードの概要>
購入したSTM32F103C8のチップを搭載したものは次のもので、前にも
Arduinoでの対応状況を調べたのですが、状況が変わっている様なので
再度調べて見ました。なお、今回のArduinoのIDEでは書き込みツール
として数種類が用意されていましたので、その中で手持ちのUNOの流用
が可能はシリアル形式と、メモリの消費が2KB以下の「HID bootloader」
を取り上げました。その時の状況は次の様なものでした。
[STM32F103C8ボード]
1.CPU : STM32F103C8T6, 32bits, ARM Cortex-M3
(この青い基板のものは Blue pill と呼ばれている様です。)
2.ROM 64Kバイト/RAM 20Kバイト
3.最大動作周波数 : 72MHz
4.CPU電源電圧 : 2.0-3.3V
[Arduino IDEのインターフェイス対応状況]
1.STM32CubeProgrammer(SWD) --- ST-Link (動作は確認)
2.STM32CubeProgrammer(Serial) --- 今回の調査対象
3.HID Bootloader --- 今回の調査対象
4.Maple Bootloader (動作は確認)
[調査内容のビデオ]
<関連資料>
1.回路図
URL : https://github.com/dhylands/stm32-test/blob/master/board-STM32F103-Mini/STM32F103C8T6-Schematic.pdf
<調査内容>
今回の導入状況の検討目標は次のものとしました。
1.コードの作成から書き込みへの操作が連続して行えるかを確認
2.コード書き込みに関しては、特別な追加デバイス不要な手段が
有るかどうかを確認
3.作成したコードがボード上で問題無く動作する事を確認
結果としては、以前のものよりかなり使い易くなっていると思い
ました。なお、作成したコードの書き込みに関しては、最も便利
なのがST-Linkによるものでしたが、シリアル(USB to TTL-UART)
による方法でも、新しいコードをコンパイルする前にボートの
リセットを行うだけで良く、配線が多少複雑になるだけで、
ST-Linkと同様に便利な方法だと思いました。ブートローダによる
方法に関しては、HIDではターゲットのプログラムを書き込んで
実行すると、USBの接続が切れ、BOOTピンの操作とリセット
スイッチの操作のみで再度ブートプログラムを起動しても、
USBの接続が切れたままでPC側のドライバーが再インストール
されませんでした。その為、BOOTピンの操作の後、一旦ボードの
電源をオフ/オンして再起動する必要が有り、操作が多少不便でした。
(USB端子も壊れそう)そこで、CPUをリセットするとUSB端子で
プルアップされている部分をGNDに落とす回路を付けて、ボードの
リセットのみでもUSBが再接続される様にしました。ブートローダの
方式として他にMapleが有りましたが、こちらでは同じ問題は
有りませんでしたが、その代わりにIDEが書き込みを始める直前に
ボートのリセットを行う必要が有りました。またフラッシュメモリの
消費がMapleでは7%程度大きくなっていた為、そこで検討は
止めました。いずれにしても、以前に比べて、ArduinoのIDEが利用
しやすくなっている事が良く判りました。UNOの代わりにこの
ボードを利用する時には重宝するかと 思いました。
[Arduino IDE の拡張]
1.環境設定に「stm32duino」のボードマネージャーのURLの追加
URL : https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json
2.ボードマネージャーに「STM32 Cores」のライブラリをインストール
3.ボードパラメータの設定
<Serial>
<Bootloader>
[書き込みツールのインストール]
Serialの書き込みツールとしては、IDE指定の「STM32CubeProg」を
インストールして利用します。
[モードピンの設定]
コード開発中はピンの接続を次の様にします。
Serial flash : BOOT0=1, BOOT1=0
HID boot :
1.ブートローダ起動
BOOT0=0, BOOT1=1 then CPU Reset
2.ブート起動後元に戻す
BOOT0=0, BOOT1=0
[書き込みツールの接続]
Serialの書き込みの時はUNOの「USB to TTL-UART」の部分を利用して
次の接続を行います。
[ブートローダのダウンロード]
HIDのブートローダとSerialでの書き込みツール(stm32flash)の入手は
以下から行います。
[ブートローダの書き込み]
ブートローダの書き込みはSerialの書き込みで、「stm32flash」を
利用して行います。
[ボードの改造]
ブートローダを利用する場合、ボードのリセットのみでUSBの
再接続を行うには次の改造がボードに必要です。