STM32F030F4 ボード上での Arduino IDE の利用
<STM32F030F4P6ボードの概要>
購入したSTM32F030F4のチップを搭載したものは次のもので、
ArduinoのIDEでの開発にも対応している様なので調べて見ました。
その時の状況は次の様なものでした。
1.搭載されているCPUはSTM32F030F4P6 (16kB Flash, 4kB SRAM)
2.ボードに付加されているもの マイクロUSBポート
3.使用電源電圧 2.4V~3.6V
4.ボードサイズ 30mmx46mm
[調査状況]
<関連資料>
1.回路図
URL : http://www.haoyuelectronics.com/Attachment/STM32F030-Dev-Board/STM32F030F4P6.pdf
<調査内容>
STM32F030F4ボードへArduinoのIDEを導入する時の検討目標は次の
ものとしました。
1.コードの作成から書き込みへの操作が連続して行えるかを確認
2.コード書き込みに関しては、特別な追加デバイス不要な手段が
有るかどうかを確認
3.作成したコードがボード上で問題無く動作する事を確認
結果としては、Arduinoの他の種類のボートの場合と同じ様にコードの
開発ができるのを確認しました。なお、ST-Linkが利用できる事は確認
していましたが、今回はST-Linkを使わない方法としてブートモードでの
シリアル(TTL-UART)による方法を確認しました。その場合、
USB->TTL_UARTの変換用のデバイスが必要となりますが、これに
関しても手持ちのUNOのUSB->TTL_UARTの変換部分を利用する事で
対応できました。調査をする中で、最初は、購入したボードのメモリに
プロテクトが掛かっていて、テストコードが書き込めませんでした。
これに関しては、ST-Linkを繋いで「ST Visual Programmer」で
「Option Byte」を変更すれば問題が解決する事が判りました。その為、
シリアルでの書き込みは諦めかけましたが、前にWeMosD1のモータ
シールドを検討していた時に使ったコマンドライン形式の「stm32flash」
が利用できる事を思い出し、そちらでメモリプロテクトの解除ができる
のを確認しました。その為、シリアルでの方法のみでもコード開発が
できるのが確認できました。ただし、Arduinoのプラットホームでかなり
コード容量を消費する様で、単純なブリンクのテストでもコード容量の
半分近くを消費する様で、小さいプログラムでしか利用できない事も
確認しました。いずれにしても、Arduinoを利用すれば、面倒なCPUの
初期設定が不要となり、小さなプログラムをお気楽に作る時には重宝
するかと思いました。
[Arduino IDE の拡張]
1.環境設定に「stm32duino」のボードマネージャーのURLの追加
URL : https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json
2.ボードマネージャーに「STM32 Cores」のライブラリをインストール
3.ボードマパラメータの設定
[書き込みツールのインストール]
書き込みツールとしては、IDE指定の「STM32CubeProg」をインストール
して利用します。
[ブートモードの設定]
コード開発中はピンの接続をブートモードにして書き込みを行い、
書き込み終了後に元に戻して動作の確認を行います。
[書き込みツールの接続]
コード開発中は次の接続を行います。
コード開発中のArduinoのIDEとの連携は次の様に行います。
1.ボードをブートモードに設定
2.ボードをリセット
3.IDEのコンパイル開始(マイコンボードに書き込む)
4.書き込み終了後にボードのブートモードを元に戻す
5.ボードをリセット
6.コードの動作を確認
[メモリプロテクトの解除]
メモリのプロテクトが掛かっていて、新しいコードが書き込めない時は
次の様にします。
1.stm32flashをインストール
2.ボードをブートモードにセット
3.ボードのCPUをリセット
4.stm32flashのファイルが有るホルダで次のコマンドを実行
stm32flash -k COMx
x : 書き込みツールのシリアルポートの番号