STM32CubeProgrammerがバージョンアップしていました。
以前 シリアル通信を使ったブートローダーの記事 を書きました。
その時にはブートローダー専用のアプリを紹介したのですが、その機能がSTM32CubeProgrammerでも使えるようになったようなので動作確認してみました。
PCのアプリがかわっただけなので、たいしたお話ではありません。
( Flasher-STM32 から STM32CubeProgrammer へ )
とはいえ今後のサポートは STM32CubeProgrammer が対象のようですから、ブートローダーの機能を使われる方はこちらで動作確認しておいた方が良いでしょう。
書き込み用のツール(いわゆるライターと呼ばれるもの)がなくてもシリアルポートを使ってファームウェアのアップデートを行うことができます。
そうは言っても書き込み用のPCとシリアル通信環境(RS-232CとかUSBシリアルのI/F)は必要になります。
投稿時の開発環境を記しておきます。
PC:Windows10 OS
IDE: STM32CubeIDE Version1.3.0
Board: STM32Nucleo-F401RE
今回必要なツール類は以下の通りです。
・USBシリアル変換モジュール
・PCソフト STM32CubeProgrammer
USBシリアル変換モジュール
FTDI社のFT234XDというデバイスを使ったモジュールです。
詳細については こちら を見てください。
PCソフト STM32CubeProgrammer
こちら のSTM32ubeProg という項目からダウンロードできます。
ブートローダーのアプリケーションノート
AN2606というノートが日本語版でもありました。
こちら からAN2606を入手してご一読ください。
冊数が多いのですが、必要なデバイスの部分だけを読めばよいわけですからさほどでもありません。
シリアルだけでなく他の通信環境を使ってブートローダーを起動することもできるので、それらについても書かれています。
接続のイメージ
以下のようにクロスで接続します。
ST-Linkを介して書き込んでみる
STM32CubeProgrammerを起動する
インストールし STM32CubeProgrammer を起動します。
赤枠の部分が ST-Link になっていることを確認します。
この状態で ST-Link を介した書き込みを行うことができます。
まずボードは CN1 のUSBケーブルだけを接続します。
そして赤枠の右側のうぐいす色の Connectボタンを押します。
Connected と表示されたら赤枠の Open file をクリックします。
選択用のウィンドウが出るので、書き込むファイルを選択します。
拡張子 bin のファイルを選択すればよいでしょう。
次に Downloadボタンを押します。
以下のウィンドウが出れば書き込み成功です。
ブートローダーを使って書き込んでみる
一度 CN1コネクタを抜きボードの電源を落とします。
端子設定と接続
下表のとおりに接続します。
AN2606より、Nucleo-F401REの場合はブートローダーを起動するためにパターン1のモードにする必要があります。
いろいろなデバイスがあって、いくつかのパターンがあるようです。
パターン1は
Boot0ピン=1, Boot1ピン=0です。
回路図から Boot1ピンは 0(GND)なので、そのままでOKです。
Boot0ピンは抵抗でプルダウンされているので、VDDと接続する必要があります。
回路図は こちら からダウンロードすることができますので確認してください。
上記の理由からCN7の5(VDD)と7(Boot0)を接続する必要がありますが、ここではまだ行いません。
ブートローダーを使った書き込みの準備を行う
今回はUSBシリアル通信を使って書き込みを行うので、UARTを選択します。
まずその下の Port で COMポートのリストを確認します。
こちらの環境では、COM1,3,4 が存在しています。
ブートローダー用のCOMポートを有効にする
ここで CN7の5(VDD)と7(Boot0)を接続します。
そして下図の赤枠部分を押しリフレッシュします。
COMポートのリストを再度確認します。
USBシリアルポートが認識されれば、COMポートが追加されています。
その追加されたCOMポートを選択します。
そして、その右側のうぐいす色の Connectボタンを押します。
以下のメッセージが出たら、黒いRESETボタン(B2)を押して、再度 Connectします。
Connected になれば成功です。
+をクリックし、Open file から書き込みファイル(拡張子 bin)を選択します。
選択後、Readボタンを押します。
うまく読めると Log のリストに Data read successfully と出てきます。
次に DownLoadボタンを押し書き込みます。
以下のメッセージが出れば成功です。
書き込み後リセットボタンを押すと書き込んだプログラムが動き始めます。
今回はLチカで書き込みの動作確認をしました。
いかがでしたか?皆さんはうまく書き込みができたでしょうか?
コメントを書く