你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H563 RTC无法进行时间赋值

[复制链接]
Bug_Mkaer 提问时间:2025-8-5 11:02 / 未解决

在本次问题的设计中,使用到了RTC模块作为计时使用。外部使用了纽扣电池进行供电,时钟源使用了如下图所示的外部晶振电路。

时钟电路.jpg

生产中的板子有概率板子出现无发进行初始化时间配置问题。如下图可见,首次初始化会使用BACP UP RAM中的寄存器记录初始化标志位,即避免每次上下电反复初始化带来的计时误差。经过排查进仿真状态可见,RTC时间寄存器时间值不再变化刷新,RTC_ICSR寄存器中的RSF位未能置位。由于有纽扣电池供电,上下电板子也无法恢复。

通过将纽扣电池抠出,再安装后上电后,RTC模块再次初始化后可正常工作。

20250805-104934.jpg

20250805-104925.jpg

问题:

1、什么情况下会导致上述情况?

2、需要如何进行该工况的识别?是否可通过对特定寄存器数据的识别判定进入异常状态,进行再次初始化动作进行恢复?

收藏 评论3 发布时间:2025-8-5 11:02

举报

3个回答
butterflyspring 回答时间:昨天 14:50
从RTC 和 VBAT 的外设功能上看,晶振引起的可能性大一点。


如果晶振启动困难(偶尔震荡不起来)可能会引起这种现象。
如果有条件的话,采用LSI 作为RTC的时钟源试试看。

电池应该是新的,不大可能是低电压引起的。当然电池夹子应该是可靠的。
发生问题时VDD已经没电了,所以软件应该是无能为力了。

果宝 回答时间:昨天 16:36

  ES0565  STM32H562xx/563xx/573xx device errata  (version 6.0, size 2 MB)

1。检查一下LSE的驱动能力

2.看一下备份域是不是乱了,用这个代码恢复下

__HAL_RCC_PWR_CLK_ENABLE();

HAL_PWR_EnableBkUpAccess();

__HAL_RCC_BACKUPRESET_FORCE();

__HAL_RCC_BACKUPRESET_RELEASE();

image.png
image.png
果宝 回答时间:昨天 16:38

The LSE oscillator may not start or may stop in low drive mode (LSEDRV = 00). Using this mode is forbidden.

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版