西施猫 发表于 2017-10-25 14:32:20

STM32 RTC时间变0

本帖最后由 西施猫 于 2017-10-25 14:39 编辑

最近公司产品遇到个问题,客户使用几个月后产品的RTC时间会变成初始化的时间2000年1月1日0分0秒。主芯片STM32F407VGT6,STM32F429IGT6,STM32F407ZET6都遇到过,寄回来分析了很久都没法重现。RTC时间同步后正常。电池用的是松下原装进口CR2032,排除焊接问题(照过X-RAY没有虚焊)。静电实验、浪涌实验都做过,没有出现变0情况。请问有没有人遇到过类似的问题?根本原因是什么?
图片一是用IAR读BKP寄存器的值,20个寄存器的值都变0了。上电会检查RTC_BKP_DR0的值,如果标志位是写过的,则读取正常时间;如果标志位变0 ,则软件读出来2000年1月1日0分0秒。因此变0的原因是RTC_BKP_DR0寄存器值为0,只有一种情况RTC_BKP_DR0变0,那就是电池曾经掉过电。但回来的电池电压电量测试都正常。电池掉电的根本原因未找到。

图片二是RTC电路原理图。

奏奏奏 发表于 2017-10-25 21:41:10

本帖最后由 奏奏奏 于 2017-10-25 21:42 编辑

几个月电池没电了,然后客户或者售后自己换了一个新的电池没告诉你,所以到你手上就是这个情况。会不会是这样呢?
我觉得最好设计中 加一个电池充电芯片,用可充电纽扣电池,这样会不会能解决问题?

kylongmu 发表于 2017-10-26 00:15:42

先确认你的电池是焊死的,如果是可更换的,就不能排除手贱的人。

xmshao 发表于 2017-10-26 11:15:02

备份域复位可能有两种情形,权作提醒:

A backup domain reset is generated when one of the following events occurs:

1. Software reset triggered by setting the BDRST bit in the RCC Backup domain control
register (RCC_BDCR).

2. VDD or VBAT power on, if both supplies have previously been powered off.

西施猫 发表于 2017-10-31 14:35:29

本帖最后由 西施猫 于 2017-10-31 16:50 编辑

奏奏奏 发表于 2017-10-25 21:41
几个月电池没电了,然后客户或者售后自己换了一个新的电池没告诉你,所以到你手上就是这个情况。会不会是这 ...

西施猫 发表于 2017-10-31 14:35:52

奏奏奏 发表于 2017-10-25 21:41
几个月电池没电了,然后客户或者售后自己换了一个新的电池没告诉你,所以到你手上就是这个情况。会不会是这 ...

电池没有动过痕迹。

西施猫 发表于 2017-10-31 14:36:28

kylongmu 发表于 2017-10-26 00:15
先确认你的电池是焊死的,如果是可更换的,就不能排除手贱的人。

电池没有动过的痕迹,上表面有喷三防漆。

西施猫 发表于 2017-10-31 14:38:21

奏奏奏 发表于 2017-10-25 21:41
几个月电池没电了,然后客户或者售后自己换了一个新的电池没告诉你,所以到你手上就是这个情况。会不会是这 ...

电池电压测量都有3.0V,RTC功耗很低,我们测过不到10微安,按照计算我们的电池可以用10年。

西施猫 发表于 2017-10-31 14:44:25

xmshao 发表于 2017-10-26 11:15
备份域复位可能有两种情形,权作提醒:

A backup domain reset is generated when one of the following e ...

复位软件查过,没有设置相关操作。
第二条电源掉电到是有可能,ST手册里没有注明供电不稳多长时间会导致BKP变0,而且用示波器捕捉过电池电压情况,未发现突然供电不足情况。工业环境到是有可能造成电源不稳,但我们未能重现。

kylongmu 发表于 2017-10-31 17:09:43

西施猫 发表于 2017-10-31 14:36
电池没有动过的痕迹,上表面有喷三防漆。

建议你在备份电池上并联一个1uF的电容,以及双向齐纳二极管做保护,手贱有可能是人体静电或者外部强电磁场引起。
页: [1] 2
查看完整版本: STM32 RTC时间变0