今回はシリアル通信を使ったブートローダーについて書いてみました。
主な用途はファームウェアのアップデートになると思います。
書き込み用のツールがなくてもシリアルポートを使ってファームウェアのアップデートを行うことができます。
そうは言っても書き込み用のPCとシリアル通信環境(RS-232CとかUSBシリアルのI/F)は必要になります。
投稿時の開発環境を記しておきます。
PC:Windows10 OS
IDE: STM32CubeIDE Version1.3.0
Board: STM32Nucleo-F401RE
今回必要なツール類は以下の通りです。
・USBシリアル変換モジュール
・PCソフト Flasher-STM32
USBシリアル変換モジュール
FTDI社のFT234XDというデバイスを使ったモジュールです。
詳細については こちら を見てください。
PCソフト Flasher-STM32
PCソフトは作らないといけないのかなぁと思っていたのですが、STのサイトを眺めていたら、なんと存在しました。
Flash Loader Demo って書いてあるのですが何か制限でもあるのでしょうか・・・
こちら からダウンロードできます。
とにかく動かしてみましょう。
そのほうがが英文のマニュアルを読んでいるより速いかも知れません。。
ブートローダーのアプリケーションノート
AN2606というノートが日本語版でもありました。
こちら からAN2606を入手してご一読ください。
冊数が多いのですが、必要なデバイスの部分だけを読めばよいわけですからさほどでもありません。
シリアルだけでなく他の通信環境を使ってブートローダーを起動することもできるので、それらについても書かれています。
接続のイメージ
以下のようにクロスで接続します。
端子設定と接続
下表のとおりに接続します。
AN2606より、Nucleo-F401REの場合はブートローダーを起動するためにパターン1のモードにする必要があります。
いろいろなデバイスがあって、いくつかのパターンがあるようです。
パターン1は
Boot0ピン=1, Boot1ピン=0です。
回路図から Boot1ピンは 0(GND)なので、そのままでOKです。
Boot0ピンは抵抗でプルダウンされているので、VDDと接続する必要があります。
回路図は こちら からダウンロードすることができますので確認してください。
CN7の5(VDD)と7(Boot0)を接続しました。
この状態で、Nucleoボードの電源を切ってから入れなおします。
PCソフトを起動する
インストールし実行ファイルを起動します。
こちらの環境ではローダーソフトは以下のフォルダにインストールされました。
C:\Program Files (x86)\STMicroelectronics\Software\Flash Loader Demo
STMFlashLoader Demo.exe
Port NameをUSBシリアルモジュールのCOMポートに合わせて Nextボタンを押します。
それ以外はそのままでOKです。
準備ができていたらこの画面になるので Nextボタンを押します。
この画面にならない場合には接続や設定を見直してみてください。
Targetリストの選択肢はありませんでした。
そのまま Nextボタンを押します。
ここで Download to Device を選択し、書き込むファイルを選びます。
STM32CubeIDEを使っていれば拡張子binのファイルが作成されるので、それを選択すればよいでしょう。
書き込みを始めます。
書き込みが終わると黄緑色の帯が表示されます。
一度、ボードの電源を切り接続をはずして再起動すると書き込んだプログラムで動作しました。
この記事の内容は動作を保証するものではありません。
充分な検証をされた上、自己責任においてお使いください。
コメントを書く