STM32F407VE/G ボードでの Arduino IDE の利用
<STM32F407VE/G ボードの概要>
購入したSTM32F407VE/Gのチップを搭載したものは次の2種類で、
ArduinoのIDEでの開発にも対応している様なので調べて見ました。
その時の状況は次の様なものでした。
[STM32F407VEボード]
1.搭載されているCPUはSTM32F407VET6 (512kB Flash, 192+4kB SRAM)
2.ボードに付加されているもの
ミニUSBポート、SDカードスロット、NRF2401ソケット、
フラッシュメモリ、電池ケース
3.使用電源電圧1.8V~3.6V
4.ボードサイズ 73mmx85mm
[STM32F407VGボード]
1.搭載されているCPUはSTM32F407VGT6 (1MB Flash, 192+4kB SRAM)
2.ボードに付加されているもの
マイクロUSBポート
3.使用電源電圧1.8V~3.6V
4.ボードサイズ 46mmx58mm
[対応状況]
<関連資料>
1.STM32F407VEボード
URL : https://github.com/mcauser/BLACK_F407VE/blob/master/docs/STM32F407VET6_schematics.pdf
https://os.mbed.com/users/hudakz/code/STM32F407VET6_Hello/shortlog/
2.STM32F407VGボード
URL : http://dubstylee.net/v/diy-more-stm32f407vgt6/
<対応内容>
STM32F407VE/GボードへArduinoのIDEを導入する時の検討目標は
次のものとしました。
1.コードの作成から書き込みへの操作が連続して行えるかを確認
2.コード書き込みに関しては、特別な追加デバイス不要な手段が
有るかどうかを確認
3.作成したコードがボード上で問題無く動作する事を確認
結果としては、Arduinoの他の種類のボートの場合と同じ様にコードの
開発ができるのを確認しました。なお、当初はST-Linkを利用して
検討を進めていましたが、今回インストールした書き込みソフトの
「STM32CubeProg」にはUSBポートからのDFUモードを利用した
書き込みもサポートされており、それを利用する事により、ST-Linkも
不要となる事が判りました。ただし、コード書き込み時にはDFUモード
への設定が必要でブートモードの端子処理をした後、STM32F407VG
ボードでは単にボード上のリセットスイッチの操作のみで対応できる
のに対して、STM32F407VEボードでは、USBポートの切/入の再接続が
必要な事が判りました。これは、USBポートの端子処理の違いから
来るものかと思いました。 (STM32F407VGではUSB端子直結で、
保護抵抗もプルアップの抵抗も無し) いずれにしても、これにより
他のSTM32のIDEの様に面倒なCPUチップの初期設定や、また、他の
Arduinoのボードの様にメモリ容量も気にする事無く動作部分のコードの
開発ができるのがとても良いと思いました。、
[Arduino IDE の拡張]
1.環境設定に「stm32duino」のボードマネージャーのURLの追加
URL : https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json
2.ボードマネージャーに「STM32 Cores」のライブラリをインストール
[書き込みツールのインストール]
書き込みツールとしては、IDE指定の「STM32CubeProg」を
インストールして利用します。
[DFUモードの設定]
コード開発中はピンの接続をDFUモードにして、開発が終了したら
元に戻して利用します。
また、ブートピンをDFUモードしても、コード書き込み終了後に
解除されるので、コードの更新の時にはDFUモードに再設定する
必要が有ります。再設定には次の方法が有効です。
STM32F407VEボード --- USBポートの切/入の再接続
STM32F407VGボード --- ボード上のリセットスイッチのON/OFF
[ドライバとツールの設定]
DFU用のPCのドライバを更新して、書き込みツールを「USB」
に変更します。
1.DFUドライバの更新
2.「STM32CubeProg」の設定
[IDEの設定]
1.ボードは「Generic STM32F4 series」を選択
2.Board pat number は F407VE / F407VG を選択
3.Upload method は 「STM32CubeProgrammer(DFU)」を選択
[コード作成サンプル]
サンプルとして、blinkをロードしてボード上のLEDのポートを指定して
利用しました。
1.STM32F407VEボード(LEDポートはPA6とPA7)
LEDのポートを切り替えた時には、再コンパイルしたコードを
再書き込みする為にUSBポートの切/入の再接続を行って、
DFUモードへの再設定が必要となります。
2.STM32F407VGボード(LEDポートはPE0)