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

STM32L431 RTC时间混乱问题

[复制链接]
uagood 提问时间:2022-12-8 10:06 / 未解决
我现在在用STM32L431做门锁,5号电池供电(有纽扣电池),五百台门锁生产时写入读出正常(2022年),从工厂运回公司,抽检发现某台门锁的RTC时间混乱了,变成了2073年,断电重启后还是2073年。这可能是哪方面的原因,如何解决?
void Get_RTC_Calendar(struct tm *Gettime)
{
  Gettime->tm_hour = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_TIME_GetHour(RTC));
  Gettime->tm_min  = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_TIME_GetMinute(RTC));
  Gettime->tm_sec  = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_TIME_GetSecond(RTC));
  Gettime->tm_year = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_DATE_GetYear(RTC));
  Gettime->tm_mon  = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_DATE_GetMonth(RTC));
  Gettime->tm_mday = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_DATE_GetDay(RTC));
  Gettime->tm_wday = __LL_RTC_CONVERT_BCD2BIN(LL_RTC_DATE_GetWeekDay(RTC));
}

收藏 评论6 发布时间:2022-12-8 10:06

举报

6个回答
xmshao 回答时间:2022-12-8 11:08:53
首先确认下,是否发生过中途 完全断电的情况,即VDD和VBAT都掉电的情况。


再就是检查代码,这个不难验证。在供电稳定情况下,多做些测试,反复复位,看看RTC数据是否会混乱。
butterflyspring 回答时间:2022-12-8 17:10:05
推测有可能一下两点:1、 生产写入时可能没有写对 (通常机率比较小)。 2、 RTC寄存器是通过Vbat 引脚供电,也就是电池。在手册上看到有最低电压1.55V。 那么如果电池电压偏低,有可能使得寄存器值不准。

七七baba 回答时间:2022-12-9 13:22:02
我最近也在用L431,你这个RTC肯定要连WIFI每天定时校准一下吧
uagood 回答时间:2022-12-12 10:37:23
xmshao 发表于 2022-12-8 11:08
首先确认下,是否发生过中途 完全断电的情况,即VDD和VBAT都掉电的情况。

都是包装好后从工厂通过物流回公司,然后抽检直接打开,除了运输搬运过程中的振动,没有别的操作
uagood 回答时间:2022-12-12 10:41:51
butterflyspring 发表于 2022-12-8 17:10
推测有可能一下两点:1、 生产写入时可能没有写对 (通常机率比较小)。 2、 RTC寄存器是通过Vbat 引脚供电 ...

工厂写入后读出来都是核对通过的,生产验收合格然后包装运回公司,除了搬运震动,没有别的操作。如果是电池完全脱离接触,时间应该都是回到原点,这个我扣掉电池,装好,重试过很多次。是否电池在连接断开的临界区,导致电压短时间的不稳定会导致这个问题?
butterflyspring 回答时间:2022-12-13 11:14:42
这个Vbat 是没有掉电复位的,所以保持数据的电压相应会比较低,存在临界区的可能性会比较大。

所属标签

相似问题

官网相关资源

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