历史上的今天
今天是:2024年10月15日(星期二)
2018年10月15日 | STM32RTC安装电池后掉电不走时原因与处理
2018-10-15 来源:eefocus
本人在调试STM32 RTC时,使用的是内部的 LSI晶振作为RTC晶振来源,发现有两个问题:
第一:由于LSI晶振频率大约在40KHZ附近,实际上会在30~60KHZ之间波动,导致计时不准,基本上一个小时会有1分钟左右的偏差。
第二: 由于LSI内部晶振,在断电的时候,并不在后备供电区域范围内,而外接的3.3V电池连接到VBAT上,只给后备供电区域供电,导致系统断电后,电池只能维持后备RTC的计数,并没有给LSI晶振供电(见下图所示:),导致RTC总是保持在断电之前的时间。虽然重新上电后又可以继续运行。但是需要重新校准了
。
最后使用了外界的32.768KHZ的外部LSE晶振作为RTC晶振来源,调试过程中发现,反复修改,问题和之前使用LSI没有区别。后面仔细回想才发现了问题所在,因为调试过程中加了if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)的判断,由于电池一直接到MCU上,
虽然反复的刷程序,都没有改变备份数据寄存器的值。而RTC的晶振来源一经确定,中途是不能改变的,除非全部复位备份域。最后通过暂时取下电池(或暂时短路电池),复位备份域,才成功重新设置为外部LSE晶振。时间精度的问题和断电RTC依旧运行的问题得到了解决。
使用LSI掉电使用后备电池不能走时,处理方法:
1)必须改用LSE(低速外部晶振:32.768KHZ)
2) 全片擦除,擦掉已烧录的程序
3)系统完全断电:取掉电子,断开供电电源
4)上电,烧录新修改的程序
经过这四步骤后,你会发现,RTC一切正常了,断电再无问题了!
下一篇:如何从ST官网下载官方USB库
史海拾趣
|
电源装置是电力电子技术应用的一个重要领域,其中高频开关式直流稳压电源由于具有效率高、体积小、重量轻等突出优点,而得到了广泛应用。本文详细介绍一种电流控制型开关电源,以低成本的UC3842 PWM 控制芯片为核心构成的多路输出的开关电源设计电 ...… 查看全部问答> |
|
我原来有个摄像头,镜头为AVENIR 8.5-51MM的,有8根连接线分别是红、黄、蓝、绿、黑、白、棕、灰,从解码器接出来为黄(解码器)对红(镜头)、黑(解码器)对黑绿(镜头)、绿(解码器)对蓝(镜头),现在该摄像机换成了一体机了,但不知道怎么 ...… 查看全部问答> |
|
添加Display驱动,修改后编译没有错,最后也可以生成镜像,但是下到板子里去后没有显示,我做的移植是最小内核,加过一个测试进程,内核可以跑起来,看过一个高人{wogoyixikexie@gliet(注意转载请标明原创作者)}的移植笔记,在此引用下: 但是打 ...… 查看全部问答> |
|
刚刚开始学习VxWorks,看文档的时候有个问题一直有些迷惑。 文档上面说VxWorks既定义了VxWorks接口,你也可以使用VxWorks的POSIX扩展。 (You can also use POSIX real-time extensions with VxWorks.) 我搞不太懂,这是什么意思?比如说我要新 ...… 查看全部问答> |
|
在下纯属为了实验演示: 我建了一个project,里面包含两个c文建(fun.c和main.c)。这两个c文件都都需要引用自定义的头文件disp_tab.h里的数组元素。头文件disp_tab.h只是一个液晶的显示段码的数组的定义:const unsigned char disp_tab[]={.....} ...… 查看全部问答> |




