趣味のマイコンいじり

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

STM32F030F4 ボード上での Arduino IDE の利用

<STM32F030F4P6ボードの概要>

     購入したSTM32F030F4のチップを搭載したものは次のもので、
     ArduinoIDEでの開発にも対応している様なので調べて見ました。
    その時の状況は次の様なものでした。
   f:id:I_Satoh:20200126103851p:plain

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

            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 の拡張]

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

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

               f:id:I_Satoh:20200126105159p:plain

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

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

                f:id:I_Satoh:20200126105344p:plain

         3.ボードマパラメータの設定

                 f:id:I_Satoh:20200126110617p:plain

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

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

           f:id:I_Satoh:20200126105625p:plain


 [ブートモードの設定]

       コード開発中はピンの接続をブートモードにして書き込みを行い、
       書き込み終了後に元に戻して動作の確認を行います。

          f:id:I_Satoh:20200126105826p:plain

 [書き込みツールの接続]

      コード開発中は次の接続を行います。

         f:id:I_Satoh:20200126110015p:plain

      コード開発中のArduinoIDEとの連携は次の様に行います。

        1.ボードをブートモードに設定
        2.ボードをリセット
        3.IDEコンパイル開始(マイコンボードに書き込む)
        4.書き込み終了後にボードのブートモードを元に戻す
        5.ボードをリセット
        6.コードの動作を確認

 [メモリプロテクトの解除]

      メモリのプロテクトが掛かっていて、新しいコードが書き込めない時は
       次の様にします。

       f:id:I_Satoh:20200126110316p:plain

       1.stm32flashをインストール
       2.ボードをブートモードにセット
       3.ボードのCPUをリセット
       4.stm32flashのファイルが有るホルダで次のコマンドを実行
              stm32flash -k COMx
                    x : 書き込みツールのシリアルポートの番号