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

  STMicroelectronics社が提供しています。


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

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

  STM32F446RE 用のサンプルプログラム F446RE_DFU_10K を使用する場合には
 F405VG の部分を F446RE に読み替えて、利用してください。

  サンプルプログラムは A+-2C(ええ加減にC) のページに掲載しています。

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

  えがおのでんし製の評価用基板 Base-F405VG には、STM32F405VGを実装した
 えがおのでんし製の評価用CPU基板 tri-S が搭載されています。

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



目次

PC と 基板 との接続

起動画面

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

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

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

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

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




PC と 基板 との接続
  まず、ST-LINK/V2 と Base-F405VG とを接続して、
 tri-S基板の P3 と PC 間も USBケープル(A - Mini B)で接続します。

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




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

STM32CubeProg_Scrn_First

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

STM32CubeProg_Scrn_Full



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

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

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

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


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

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

  F405VG_DFU_10K_Release_bin.zipを解凍すると、F405VG_DFU_10K_Release.binになります。

  F446RE_DFU_10K_Release.bin も、おいておきます。
  F446RE_DFU_10K_Release_bin.zip

  F446RE_DFU_10K_Release_bin.zipを解凍すると、F446RE_DFU_10K_Release.binになります。


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

 Base-F405VG のデバッグ

 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]ボタンをクリックして、ダウンロードしたF405VG_DFU_10K_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接続を選択して、STM32F405VGのFlash Memory 0x08010000番地に
 ファームウェア の binファイル F405VG_MSP2807_TP_ASCII_10K_Release.binを書き込む例を紹介します。

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

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


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

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

  F405VG_MSP2807_TP_ASCII_10K_Release_bin.zipを解凍すると、F405VG_MSP2807_TP_ASCII_10K_Release.binになります。

 2) PCとUSBの接続
  PCとtri-S基板のP3とを、USBケーブル(A - Mini B)で接続してください。

  動作確認に、えがおのでんし製の試験用基板 Base-F405VG基板 を使用しています。

Base_F405VG_Dim

  USBコネクタ部の回路を以下に示します。

tri-S_USB_SCH

 3) USB接続の選択
  まず、tri-S基板の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 は 以下のように操作すると USB接続が行えます。
  (en.stm32cubeprg-win64-v2-17-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


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


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

STM32CubeProg_USB_Er_prog_button

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

STM32CubeProg_USB_Er_prog_Scrn

 6) .binファイルの選択
  [Browse]ボタンをクリックして、ダウンロードした F405VG_MSP2807_TP_ASCII_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ファイル が正常に書き込まれると、
 LCD MSP2807 には、以下の画面が表示されます。

MSP2807_Startup_Screen_TP_ASCII




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

Warning_Connection_to_USB_device_is_lost

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




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

  バイナリFontファイルを使用して、日本語表示を行う、
 サンプルプログラム F446RE_MSP2807_JIS_X_0208_B を実行する場合、
 STM32F405VGのFlash Memory に、バイナリFontファイルの Font_16x16_JIS_X_0208_B.bin を
 書き込む必要があります。

  ファームウェア F446RE_MSP2807_JIS_X_0208_Bは、タッチパネル付き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_B については
 サンプルプログラム F446RE_MSP2807_JIS_X_0208_B の紹介 をご覧ください。

sector 0 : 0x08000000 - 0x08003FFF : 16Kbytes : F446RE_MSP2807_JIS_X_0208_B を配置
sector 1 : 0x08004000 - 0x08007FFF : 16Kbytes : F446RE_MSP2807_JIS_X_0208_B を配置
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_16x16_JIS_X_0208_B.binのダウンロード
 ここから Font_16x16_JIS_X_0208_B_bin.zip をダウンロードしてください。

  Font_16x16_JIS_X_0208_B_bin.zipを解凍すると、Font_16x16_JIS_X_0208_B.binになります。

 2) PCとST-LINKの接続
  PCとNUCLEO-F446REのCN1とを、USBケーブル(A - Mini B)で接続してください。

 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_16x16_JIS_X_0208_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

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

STM32CubeProg_Browse_Font_16x16_JIS_X_0208_B

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

STM32CubeProg_Start_addr_0x08040000

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

STM32CubeProg_Start_op_ach_suc

  Font_16x16_JIS_X_0208_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

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

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