对于STM32L051的LSI RC(内部RTC晶振)不准,如何保证输出一个比较可靠的时间?
做一个终端,上报数据到平台,平台会下发时间数据下来可以进行校正终端MCU的时间,但是当终端没上报数据到平台比方说12小时没数据到平台,12小时后再上报数据,那么这一包数据就跟平台的时间差了比较多,会有1个小时的误差,这样是不允许的,有没什么办法能让输出的时间比较准确一些呢?目前硬件已定,不能采用外部晶振了,还有哪些办法可以让输出的时间准确一些呢?
我记得RTC有一个校准寄存器的(不知道我有没有记错),让其输出一个脉冲信号,然后根据脉冲长度和实际时间做对比,把校准值写入校准寄存器。
另外,可以自己手动校准,同上,出厂时设置校准值,然后隔一小段时间,把校准值参考如RTC中。
可以参考这个官方文档:
http://www.st.com/content/ccc/resource/technical/document/application_note/7a/9c/de/da/84/e7/47/8a/DM00025071.pdf/files/DM00025071.pdf/jcr:content/translations/zh.DM00025071.pdf
内部时钟就是不准的。
如果任务不重的话,可以开一个定时器替代
12小時誤差約1小時差不多(內部RC Oscillator約10%誤差)
如果只是時間計時問題,強烈建議直接使用RTC就可
以上
如果你要精准的时间,
一般都是外接时钟芯片的。