2022年9月25日日曜日

stm32でLowPowerライブラリを使った際の書き込み不具合はmbedモードにすれば直る


STM32とはST社が販売しているマイコンの1種です。
STM32L552ZEが実装されたnucleoというシリーズの開発ボードでSTM32LowPowerという低消費電力で動作するための休止管理ライブラリのサンプルコード(TimedWakeup)を書き込んでUSBを抜き差ししたら、下記のエラーが発生してPlatformIOで書き込めなくなりました。
Error: init mode failed (unable to connect to the target)
Error: No Valid JTAG Interface Configured.
*** [upload] Error 255

試行錯誤したところ、binファイルを配置するかmbedモードなら書き込みに成功すると分かりました。
platformio.iniのupload_protocolで変更できます。
platformio.ini
upload_protocol = mbed

ビルド後に生成される [プロジェクトのディレクトリ].pio/build/[マイコン名]/firmware.bin をファイルシステムとして認識されるNODE_L552ZEに書き込めば(コピーすれば)、mbedモードと同じ書き込み処理をできます。
しかしながら、手動でするよりmbedモードにする方が、手間が減って楽だと思います。

標準のstlink書き込みモードでは低消費電力モードのマイコンにかけないのが不便ですが、mbedモードに変更したら解決すると分かって良かったです。


なお、後日mbedモートではなくstlinkモードで書き込み可能な条件を把握しました。
良ければこちらもご覧ください。

stm32マイコンでLowPowerライブラリ利用時にstlink経由で書き込む場合はリセット可能なstlinkと接続時のリセット設定が必要


参考:
Uploading - ST Nucleo L552ZE-Q - PlatformIO
STM32LowPower

0 件のコメント :