趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

STM32F407VE/G ボードでの Arduino IDE の利用

 <STM32F407VE/G ボードの概要>

     購入したSTM32F407VE/Gのチップを搭載したものは次の2種類で、
     ArduinoIDEでの開発にも対応している様なので調べて見ました。
     その時の状況は次の様なものでした。

        f:id:I_Satoh:20200114163035p:plain

   [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ボードへArduinoIDEを導入する時の検討目標は
       次のものとしました。

          1.コードの作成から書き込みへの操作が連続して行えるかを確認
          2.コード書き込みに関しては、特別な追加デバイス不要な手段が
                 有るかどうかを確認
          3.作成したコードがボード上で問題無く動作する事を確認

        結果としては、Arduinoの他の種類のボートの場合と同じ様にコードの
        開発ができるのを確認しました。なお、当初はST-Linkを利用して
        検討を進めていましたが、今回インストールした書き込みソフトの
      「STM32CubeProg」にはUSBポートからのDFUモードを利用した
        書き込みもサポートされており、それを利用する事により、ST-Linkも
        不要となる事が判りました。ただし、コード書き込み時にはDFUモード
        への設定が必要でブートモードの端子処理をした後、STM32F407VG
        ボードでは単にボード上のリセットスイッチの操作のみで対応できる
        のに対して、STM32F407VEボードでは、USBポートの切/入の再接続が
        必要な事が判りました。これは、USBポートの端子処理の違いから
        来るものかと思いました。 (STM32F407VGではUSB端子直結で、
        保護抵抗もプルアップの抵抗も無し) いずれにしても、これにより
        他のSTM32のIDEの様に面倒なCPUチップの初期設定や、また、他の
        Arduinoのボードの様にメモリ容量も気にする事無く動作部分のコードの
        開発ができるのがとても良いと思いました。、

  [Arduino IDE の拡張]

        ArduinoIDEに対しては次の拡張を行います。

          1.環境設定に「stm32duino」のボードマネージャーのURLの追加

                  f:id:I_Satoh:20200114201142p:plain

                   URL : https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json

          2.ボードマネージャーに「STM32 Cores」のライブラリをインストール

                  f:id:I_Satoh:20200114201536p:plain

 [書き込みツールのインストール]

       書き込みツールとしては、IDE指定の「STM32CubeProg」を
       インストールして利用します。
        f:id:I_Satoh:20200114201752p:plain

 [DFUモードの設定]

      コード開発中はピンの接続をDFUモードにして、開発が終了したら
       元に戻して利用します。

        f:id:I_Satoh:20200114202004p:plain

        f:id:I_Satoh:20200114202124p:plain

        また、ブートピンをDFUモードしても、コード書き込み終了後に
       解除されるので、コードの更新の時にはDFUモードに再設定する
       必要が有ります。再設定には次の方法が有効です。

          STM32F407VEボード --- USBポートの切/入の再接続
          STM32F407VGボード --- ボード上のリセットスイッチのON/OFF

 [ドライバとツールの設定]

      DFU用のPCのドライバを更新して、書き込みツールを「USB」
      に変更します。

         1.DFUドライバの更新     

              f:id:I_Satoh:20200114202744p:plain

         2.「STM32CubeProg」の設定

              f:id:I_Satoh:20200114203023p:plain

 

 [IDEの設定]

       Arduino IDEのボードの設定は次の様に行います。

        f:id:I_Satoh:20200115085759p:plain

        1.ボードは「Generic STM32F4 series」を選択
        2.Board pat number は F407VE / F407VG を選択
        3.Upload method は 「STM32CubeProgrammer(DFU)」を選択

 [コード作成サンプル]   

       サンプルとして、blinkをロードしてボード上のLEDのポートを指定して
        利用しました。

          1.STM32F407VEボード(LEDポートはPA6とPA7)

                f:id:I_Satoh:20200114203317p:plain

                 LEDのポートを切り替えた時には、再コンパイルしたコードを
                 再書き込みする為にUSBポートの切/入の再接続を行って、
                 DFUモードへの再設定が必要となります。

          2.STM32F407VGボード(LEDポートはPE0)

                  f:id:I_Satoh:20200114203552p:plain