定制热线: 400-666-3615
2020-05-02 点击量:1447次
本人在调试STM32RTC时,使用的是内部的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一切正常了,断电再无问题了!
声明: 本网站所发布文章,均来自于互联网,不代表本站观点,如有侵权,请联系删除(QQ:378886361)
钜大特种锂离子电池工程研究中心是由东莞钜大电子有限公司兴建,并与中南大学、华南理工大学和东莞理工学院相关科研团队联合运营的特种锂离子电池产业化研发中心,研究中心秉持"以特殊环境、特殊用途和特殊性能的需求为导向,以产学研深度融合为创新驱动"的办院方针,力求满足用户独特的需要,从而为用户创造独特的价值。