STM32マイコンの多くはVBAT端子があり、RTC機能をマイコンに内蔵しています。VBAT端子にリチウム電池等を接続することで時刻を保持することができます。
STM32マイコンのRTCの特徴として、マイコンのファームを書き換えた際にも時刻が保持されます。また、時刻の他にバックアップレジスタがあり、ちょっとしたデータを保持することが可能です。
マイコンのファームを書き換えた際にも時刻が保持されるため、開発側としては非常に便利ですが、ごく稀に不具合が発生することがあったので現象と対処方法を紹介します。
前提:
VBAT端子にリチウム電池を接続し、時刻を保持した状態でファームを書き換える
不具合:
ごく稀にUARTのボーレートが異常な値となり、マイコン自体は動いているものの、UART通信ができなくなる
対処方法:
マイコンのメイン電源を切り、VBAT端子にリチウム電池を外して数秒放置させる
上記の事象が発生した場合、ファームをフルイレースしても現象は直りません。VBAT端子の供給を遮断し、RTC関連をリセットする必要があります。RTC関連をリセットすれば時刻情報は消えますが、再度、ファーム書き換え直す必要もなく、UARTは正常に戻ります。
もし、STM32 RTCを使用していてUARTに不具合が発生した場合はVBAT端子の電池を外してみてください。