PCアプリケーション STM32CubeProgrammer の説明
マスコット   PCアプリケーション STM32CubeProgrammer は、
 .binファイルを STM32 CPU の Flash Memory に
 書き込むためのアプリケーションです。

  STMicroelectronics社が提供しています。


  PCアプリケーション STM32CubeProgrammer を使用して、
 USB経由で .binファイルを STM32 CPU の Flash Memory に書き込むためには
 STM32 CPU に DFU(Download Firmware Update)のファームウェアが
 書き込まれている必要があります。

  この説明では、STM32F4xxxx 用 DFU のサンプルプログラム、
 F4xxxx_DFU_0x08010000 を使用することを前提に説明しています。

  F4xxxx は、
  F405RG, F405VG, F446RE のいずれかです。

  それぞれの種類に応じて、F4xxxx の部分を読み代えてください。
  プログラムの内容は共通です。



  STM32CubeProgrammerの動作を確認するために
 えがおのでんし製の評価用基板 Base-F4xxxx を使用しています。



目次

えがおのでんし製の評価用基板 Base-F4xxxx の説明
 1. Base-F405RG基板 の説明
 2. Base-F405VG基板 の説明
 3. Base-F446RE基板 の説明

サンプルプログラム F4xxxx_DFU_0x08010000

 既存のプロジェクトを開く

PC と 基板 との接続

起動画面

ST-LINK接続でDFUを書き込む

USB接続でFirmwareを書き込む
 1) F4xxxx_LED_USW_10K_Release.binのダウンロード
 2) PCとUSBの接続
 3) USB接続の選択
 4) USB接続

  バージョンによる動作の違い

 5) Erasing & programmingボタンのクリック
 6) binファイルの選択

ST-LINK接続でバイナリFontを書き込む




えがおのでんし製の評価用基板 Base-F4xxxx の説明
  このサンプルプログラムは、
  えがおのでんし製の評価用基板 Base-F4xxxx を使用して動作を確認しています。


 1. Base-F405RG基板 の説明
Base_F405RG_Dim

  Base-F405RG基板については、
 Base-F405RG基板 の説明 をご覧ください。


 2. Base-F405VG基板 の説明
Base_F405VG_Dim

  Base-F405VG基板については、
 Base-F405VG基板 の説明 をご覧ください。


 3. Base-F446RE基板 の説明
Base_F446RE_Dim

  Base-F446RE基板については、
 Base-F446RE基板 の説明 をご覧ください。


サンプルプログラム F4xxxx_DFU_0x08010000
  USBを介して、バイナリファイル .bin をCPUのFlashメモリに書き込むサンプルプログラムです。

 サンプルプログラム F4xxxx_DFU_0x08010000 の説明 をご覧ください。



既存のプロジェクトを開く
  サンプルプログラムのプロジェクトを任意のフォルダに配置した場合に、
 STM32CubeIDEにより、そのプロジェクトを開く方法については
既存のプロジェクトを開く方法 をご覧ください。



PC と 基板 との接続
  USBコネクタには Mini-B を使用します。

  1. Base-F405RG基板の場合
   PC と Base-F405RG の USB-1 とを、USBケーブル(A - Mini B)で接続します。

  2. Base-F405VG基板の場合
   PC と Base-F405VG に搭載されている tri-S CPU基板の P3 とを、
  USBケーブル(A - Mini B)で接続します。

  3. Base-F446RE基板の場合
   PC と Base-F446RE の USB-1 とを、USBケーブル(A - Mini B)で接続します。

  PC と 基板 とを接続しておかないと、STM32CubeProgrammer を起動しても
 ST-LINK接続 または USB接続 とも認識されません。




起動画面
  STM32CubeProgrammerの起動画面を以下に示します。

STM32CubeProg_Scrn_First

  ここで、最大化ボタンをクリックすると、以下のように全体が表示されます。

STM32CubeProg_Scrn_Full



ST-LINK接続でDFUを書き込む
  ST-LINK接続を選択して、STM32F4xxxxのFlash Memory 0x08000000番地に
 F4xxxx_DFU_0x08010000_Release.binを書き込みます。

  F4xxxx_DFU_0x08010000_Release.binは、USBを介して .binファイルを、
 STM32F4xxxxのFlash Memoryに書き込むためのFirmwareです。

  F4xxxx_DFU_0x08010000_Release.binは、サンプルプログラム F4xxxx_DFU_0x08010000 を
 Rleaseモードでビルドして作成した F4xxxx_DFU_0x08010000.bin ファイルを
 リネームしたものです。

  サンプルプログラムを見たい方は
 サンプルプログラム F4xxxx_DFU_0x08010000 の説明 をご覧ください。


  F4xxxx_DFU_0x08010000_Release.binをSTM32F4xxxxのFlash Memoryに書き込む方法を
 以下に説明します。

 1) F4xxxx_DFU_0x08010000_Release.binのダウンロード


a) F405RG の場合

 ここから F405RG_DFU_0x08010000_Release_bin.zip をダウンロードしてください。

 解凍すると F405RG_DFU_0x08010000_Release.bin になります。


b) F405VG の場合

 ここから F405VG_DFU_0x08010000_Release_bin.zip をダウンロードしてください。

 解凍すると F405VG_DFU_0x08010000_Release.bin になります。


c) F446RE の場合

 ここから F446RE_DFU_0x08010000_Release_bin.zip をダウンロードしてください。

 解凍すると F446RE_DFU_0x08010000_Release.bin になります。



 2) PCとST-LINKの接続
  PCとBase-F405VG基板とを ST-LINK/V2 で接続する方法については
 以下をご覧ください。

 Base-F405VG のデバッグ

  Base-F405RG と Base-F446RE の場合も同様に、ST-LINK/V2 のコネクタを DB-1 に接続してください。

 3) ST-LINK接続の選択
  以下のように、接続選択部でST-LINKを選択します。

STM32CubeProg_Sel_ST-LINK

 4) ST-LINK接続

STM32CubeProg_Connect

  [Connect]ボタンをクリックすると以下のように接続画面になります。

STM32CubeProg_ST-LINK_Connected

 4) Erasing & programmingボタンのクリック

STM32CubeProg_Er_prog_button

  左側の[Erasing & programming]のアイコンをクリックすると以下のような画面になります。

STM32CubeProg_Er_prog_Scrn

 5) .binファイルの選択
  [Browse]ボタンをクリックして、ダウンロードしたF4xxxx_DFU_0x08010000_Release.binを選択します。

STM32CubeProg_Browse

  Start addr... の設定は 0x08000000 にします。

STM32CubeProg_Browse_Selected

  [Start Programm...]ボタンをクリックして、Firmwareを書き込みます。

STM32CubeProg_Start_op_ach_suc

  Firmwareが書き込まれて、"Start operation achieved successfully" と
 メッセージが表示されます。

  [OK]ボタンをクリックすると、次のメッセージ

STM32CubeProg_Download_veri_suc

  "Download verified successfully" が表示され
  ここで、また [OK]ボタンをクリックすると、次のメッセージ

STM32CubeProg_File_dl_cpl

  "File download complete" が表示されます。
  もう一度、[OK]ボタンをクリックして終了です。

STM32CubeProg_Prog_Done

  [Disconnect]ボタンをクリックすると、
STM32CubeProg_Disconnected

  ST-LINKの接続が切断されて、この画面になります。

  右上の [ X ] ボタンをクリックして、STM32CubeProgrammer を閉じてください。


USB接続でFirmwareを書き込む
  USB接続を選択して、STM32F4xxxxのFlash Memory 0x08010000番地に
 ファームウェア の binファイル F4xxxx_LED_USW_10K_Release.binを書き込む例を紹介します。

  ファームウェア F4xxxx_LED_USW_10K_Release.binは、
 LED点滅とUSERスイッチ押下検出のサンプルプログラムです。

  サンプルプログラム F4xxxx_LED_USW_10K については
 サンプルプログラム F4xxxx_LED_USW_10K の説明 をご覧ください。


  F4xxxx_LED_USW_10K_Release.binをSTM32F4xxxxのFlash Memoryに書き込む方法を
 以下に説明します。

 1) F4xxxx_LED_USW_10K_Release.binのダウンロード

  a) F405RG の場合
   ここから F405RG_LED_USW_10K_Release_bin.zip をダウンロードしてください。

   F405RG_LED_USW_10K_Release_bin.zipを解凍すると、F405RG_LED_USW_10K_Release.binになります。

  b) F405VG の場合
   ここから F405VG_LED_USW_10K_Release_bin.zip をダウンロードしてください。

   F405VG_LED_USW_10K_Release_bin.zipを解凍すると、F405VG_LED_USW_10K_Release.binになります。

  c) F446RE の場合
   ここから F446RE_LED_USW_10K_Release_bin.zip をダウンロードしてください。

   F446RE_LED_USW_10K_Release_bin.zipを解凍すると、F446RE_LED_USW_10K_Release.binになります。

 2) PCとUSBの接続
  PCとBase-F4xxxx基板のUSBコネクタとを、USBケーブル(A - Mini B)で接続してください。

  a) Base-F405RG基板の場合
   PC と Base-F405RG の USB-1 とを、USBケーブル(A - Mini B)で接続します。

  b) Base-F405VG基板の場合
   PC と Base-F405VG に搭載されている tri-S CPU基板の P3 とを、
  USBケーブル(A - Mini B)で接続します。

  c) Base-F446RE基板の場合
   PC と Base-F446RE の USB-1 とを、USBケーブル(A - Mini B)で接続します。

 3) USB接続の選択
  まず、Base-F4xxxx基板のUSERスイッチを押しながら、Resetスイッチを押して離します。
  Flash Memoeyの 0x08000000 番地に書き込まれている、DFUプログラムが実行されて、
 USBがイネーブルになります。

  デバイスマネージャーを見てみると、以下のように STM32 Download Firmware Update が
 検出されています。

STM32CubeProg_DevM_Det_DFU

  この状態で、STM32CubeProgrammerを起動しないと、DFUを検出できないようです。

  STM32CubeProgrammerを起動してください。



  準備が整ったら、以下のように、接続選択部でUSBを選択します。

STM32CubeProg_Sel_USB

STM32CubeProg_USB_Selected

 4) USB接続
  以下の説明は、バージョン V2.15.0 までの動作です。

STM32CubeProg_USB_Connect

  [Connect]ボタンをクリックすると以下のように接続画面になります。

STM32CubeProg_USB_Connected


  バージョンによる動作の違い

  バージョン V2.15.0 までは正常に動作します。
  (en.stm32cubeprg-win64-v2-15-0.zip)

  バージョン V2.16.0 は USB接続ができないようです。
  (en.stm32cubeprg-win64-v2-16-0.zip)

  バージョン V2.17.0 と バージョン V2.18.0 は 以下のように操作すると USB接続が行えます。
  (en.stm32cubeprg-win64-v2-17-0.zip)
  (en.stm32cubeprg-win64-v2-18-0.zip)

  a) STM32CubeProgrammer V2.17.0 の起動画面
    アプリケーションを起動すると以下の画面が開きます。
STM32CubeProg_V2_17_0_Open

  b) USB選択
    右上のインターフェース選択が UART になっているので、USBを選択します。
STM32CubeProg_V2_17_0_Select_USB

  c) Address選択
    左上の Address の部分をクリックして、0x08000000 を選択します。
STM32CubeProg_V2_17_0_Address

  d) USB接続
    左上の Address を 0x08000000 にすると、以下のように
   USB が接続されて Connected になります。
STM32CubeProg_V2_17_0_Connected


    STM32CubeProgrammer V2.18.0 も同様の操作になります。

    通常通り DFU の操作が行えます。


 5) Erasing & programmingボタンのクリック

STM32CubeProg_USB_Er_prog_button

  左側の[Erasing & programming]のアイコンをクリックすると以下のような画面になります。

STM32CubeProg_USB_Er_prog_Scrn

 6) .binファイルの選択
  [Browse]ボタンをクリックして、ダウンロードした F4xxxx_LED_USW_10K_Release.bin を選択します。

STM32CubeProg_Browse_MSP2807

  Start addr... の設定は 0x08010000 にします。
  このアドレスを間違うと、異なる番地にFirmwareが書き込まれるので、よく注意してください。

STM32CubeProg_Browse_MSP2807_Selected

  [Start Programm...]ボタンをクリックして、Firmwareを書き込みます。

  あとは、上記 「ST-LINK接続での書き込み」と同様です。


  Start addr... の設定を 0x08000000 にして [Start Programm...]ボタンをクリックしまった場合
 DFUのファームウェア側で、0x08008000未満のアドレスには書き込まないようにプロテクトしていますが
 STM32CubeProgrammerがエラーメッセージを出力するまで、だいぶ時間がかかります。

  また、エラーメッセージが表示された後、うまく動作しなくなる場合が多いので、
 いったん、STM32CubeProgrammerを終了し、USBケーブル接続をはずして、
 USB接続からやり直してください。


  上記の操作で、Firmware の binファイル が正常に書き込まれると、
 LED ST-1が 1秒点灯/2秒消灯 で点滅します。

  USERスイッチを押すと、点滅間隔が変化します。




  このとき、USB接続が切れてしまうので、STM32CubeProgrammer では、
 以下のメッセージが表示されます。

Warning_Connection_to_USB_device_is_lost

  以上で、0x08010000 番地へのFirmwareの .bin ファイルの書き込みは終了です。
  メッセージを閉じて、STM32CubeProgrammer を終了してください。




ST-LINK接続でバイナリFontを書き込む
  Base-F446RE基板のプログラムの書き込みについて説明します。

  サンプルプログラム F446RE_MSP2807_JIS_X_0208 の
 動作パラメータ定義を記述している、
 MSP2807_JIS_X_0208_Ope/F446RE_MSP2807_JIS_X_0208_Config/Dev_Conf.h の
 以下の部分を、
//----------------------------------------------------------
// JIS X 0208 16x16 Font配列
// FONT_uint8_aJIS_X_0208_16x16_A[] を使用する場合は
//                                  コメントアウトする。
//----------------------------------------------------------
// JIS X 0208 16x16 Font Binary File
// Font_JIS_X_0208_16x16_B.bin を使用する場合、宣言する。
//----------------------------------------------------------
#define def_USE_Font_binary_File
//----------------------------------------------------------
 のようにして、Font Binary File を使用する設定にしてビルドした場合、
 マイクロコントローラ STM32F446RE の Flash Memory の 0x08040000 番地に配置する
 JIS X 0208 16x16 Font Binary File
 Font_JIS_X_0208_16x16_B.bin を使用するモードになります。

  この場合、STM32F446REのFlash Memory に、
 バイナリFontファイルの Font_JIS_X_0208_16x16_B.bin を
 書き込む必要があります。

  ファームウェア F446RE_MSP2807_JIS_X_0208は、タッチパネル付きLCD MSP2807の
 サンプルプログラムです。

  動作確認のために Firmwareのbinファイル、F446RE_MSP2807_JIS_X_0208_B_Release.bin を、
 置いておきます。

 ここから F446RE_MSP2807_JIS_X_0208_B_Release_bin.zip をダウンロードしてください。

  F446RE_MSP2807_JIS_X_0208_B は 0x08000000 に書き込みます。
  書き込み方法については前述の 「ST-LINK接続でDFUを書き込む」をご覧ください。

  サンプルプログラム F446RE_MSP2807_JIS_X_0208 については
 サンプルプログラム F446RE_MSP2807_JIS_X_0208 の説明 をご覧ください。

  STM32F446RE の Flash Memory の配置は以下のようになります。

sector 0 : 0x08000000 - 0x08003FFF : 16Kbytes : F446RE_MSP2807_JIS_X_0208 を配置
sector 1 : 0x08004000 - 0x08007FFF : 16Kbytes : F446RE_MSP2807_JIS_X_0208 を配置
sector 2 : 0x08008000 - 0x0800BFFF : 16Kbytes : 空き
sector 3 : 0x0800C000 - 0x0800FFFF : 16Kbytes : 空き
sector 4 : 0x08010000 - 0x0801FFFF : 64Kbytes : 空き
sector 5 : 0x08020000 - 0x0803FFFF : 128Kbytes : 空き
sector 6 : 0x08040000 - 0x0805FFFF : 128Kbytes : JIS X 0208バイナリFont を配置
sector 7 : 0x08060000 - 0x0807FFFF : 128Kbytes : JIS X 0208バイナリFont を配置

  以下に、ST-LINKを使用してバイナリFontを書き込む方法を説明します。

 1) Font_JIS_X_0208_16x16_B.binのダウンロード
 ここから Font_JIS_X_0208_16x16_B_bin.zip をダウンロードしてください。

  Font_JIS_X_0208_16x16_B_bin.zipを解凍すると、Font_JIS_X_0208_16x16_B.binになります。

 2) PCとST-LINKの接続
  Debug_CubeIDE_ST-LINK.html をご覧ください。

 3) ST-LINK接続の選択
  以下のように、接続選択部でST-LINKを選択します。

STM32CubeProg_Sel_ST-LINK

 4) ST-LINK接続

STM32CubeProg_Connect

  [Connect]ボタンをクリックすると以下のように接続画面になります。

STM32CubeProg_ST-LINK_Connected

 4) Erasing & programmingボタンのクリック

STM32CubeProg_Er_prog_button

  左側の[Erasing & programming]のアイコンをクリックすると以下のような画面になります。

STM32CubeProg_Er_prog_Scrn

 5) Erase selected sectors
  Font_JIS_X_0208_16x16_B.binを書き込むFlash MemoryのsectorをEraseします。

  画面左側の選択項目、Skip flash erase before programming にチェックをいれないと、
 Frash Memory全体がEraseされてしまいます。
  そうならないように、Skip flash erase before programming にチェックをいれます。

STM32CubeProg_Check_Skip_flash_erase

  チェックをいれた場合、書き込むsectorを自分でEraseしておく必要があります。

  下記のように、Indexの 6 と 7 にチェックを入れて、[Erase_selected_sectors]ボタンを
 クリックして、選択したSectorをEraseします。

STM32CubeProg_Erase_selected_sectors

  正常にEraseされると以下のメッセージが表示されます。

Stm32CubeProg_Dialog_erased_successfully

  Erase が正常に動作しない場合は、Skip flash erase before programming の
 チェックをはずして、先に 0x08040000 番地に Font_JIS_X_0208_16x16_B.bin を
 書き込んでから、0x08000000 番地に F446RE_MSP2807_JIS_X_0208_B_Release.bin を
 書き込むとよいでしょう。

 6) .binファイルの選択
  [Browse]ボタンをクリックして、ダウンロードしたFont_JIS_X_0208_16x16_B.binを選択します。

STM32CubeProg_Browse_Font_16x16_JIS_X_0208_B

  Start address の設定は 0x08040000 にします。

STM32CubeProg_Start_addr_0x08040000

  [Start Programming]ボタンをクリックして、Font_JIS_X_0208_16x16_B.binを書き込みます。

STM32CubeProg_Start_op_ach_suc

  Font_JIS_X_0208_16x16_B.binが書き込まれて、"Start operation achieved successfully" と
 メッセージが表示されます。

  [OK]ボタンをクリックすると、次のメッセージ

STM32CubeProg_Download_veri_suc

  "Download verified successfully" が表示され
  ここで、また [OK]ボタンをクリックすると、次のメッセージ

STM32CubeProg_File_dl_cpl

  "File download complete" が表示されます。
  もう一度、[OK]ボタンをクリックして終了です。

  書き込み終了後、Nucleo-64基板上の、RESETスイッチを押して、
 Firmwareを再起動してください。



A+-2C (ええ加減にC) のページに戻る




 メールアドレス: apm2c.sumi@gmail.com

 なんでも、気軽に ご相談ください。
 担当:おの

マスコット
  えがおのでんし 案内