STM32H7 NucleoでError: No STM32 target found!になる

※当記事の内容を実践して生じたいかなる損害に対しても補償はできません。かならず御自身で設計検討を行なってください。

タイトルのとおりです。
半導体不足の最中、昨年入手したSTM32H7A3 Nucleo-144で遊んでおりました。

○症状
これまで普通にProgramming、Debugができていたのに、突然タイトルのようなエラーが
出てSt-linkにつながらなくなった。Core Voltage等は読めており3.3V付近を指しているが、
MCUがロックアップしているのかEraseもできない状態。

○原因(推定)
不明だが、電源周りの設定が誤っていた可能性がある。
main.cの中のSystemClock_Configという関数に以下の記述がある。

HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY)


ただ、ボードのUsers Manual(UM2408)を読むと、デフォルトはSMPSからの供給となっており、
おそらく下記が正しい。

HAL_PWREx_ConfigSupply(PWR_DIRECT_SMPS_SUPPLY)

ちなみに、上記Manualには「設定を誤るとDeadlockする」とハッキリ書いてありました。
CubeMXの生成コードのままなので、どこかに設定項目があるのかもしれません。

○対処
とりあえずはロックアップを解消し、Eraseを実行しないといけません。
今回はCube MX Progをダウンロードし、Connect Under Resetの要領でなんとかMCUを認識
させることができました。
Connectさえできれば、あとはEraseして回復を確認するのみです。

根本原因に対する対策としては、上記原因箇所を変更すれば良いものと思われます。

○参考
2点紹介します。復旧の方は根本原因が違っても参考になると思います。

復旧方法:
community.st.com

原因推定:
ST Community