单片机万年历误差修正方法探讨
昨天想到一个时钟误差修正的方法:一般单片机系统里,需要万年历时钟时,常常用外接32.768kHz晶振,一是计秒方便,还有精度好一些。但实际应用中,往往过一两周还是会差个几秒钟,这样一来,就需要校时。
手动按键修改,或者通讯线命令修改,直接用新时间替换掉旧时间,但再过两周又要再重复这些工作,这显然不合理。
我想到的办法是,在上一次校时的时候,把时间记录下来,在下一次校时前,把这期间的时钟偏差率计算出来,如 +a毫秒/秒,那么在以后的运行时,就在每秒都做这个修正,那么,以后这台设备,慢慢的,校时的需求就会越来越少了。 这种修正不精确的,因为晶振是温漂的,温度不同变化也不同,可能今天30度漂了 0.01秒,明天 26度漂0.02。 所以工业上一般使用 DS3231 因为内置了晶振,可以硬件自动修正温漂的。 或者使用GPS或WIFI校时。其他的方案基本没什么用 手工校正最实用。 一般是根据每天误差几秒,然后手工设定好。软件在每天的零点时分自动补偿这几秒。没有积累误差。:lol 本帖最后由 Jambalaya 于 2024-5-17 13:57 编辑
单纯这个事,最简洁的法子应该是用这个DS32kHz:
https://www.analog.com/cn/products/ds32khz.html
但是为啥老要自己做钟呢,做钟学学编程倒也罢了,还拿这钟来用,就很不理解了。 再有集成RTC的,DS3232:
https://www.analog.com/cn/products/ds3232.html 看到数码之家上别人用RX8025代替晶振,好象比较准了。
RX8025在不同电压下的频率测试值
https://www.mydigit.cn/forum.php?mod=viewthread&tid=128039&fromuid=1951294
(出处: 数码之家)
青松 发表于 2024-5-17 14:18
看到数码之家上别人用RX8025代替晶振,好象比较准了。
RX8025在不同电压下的频率测试值
我用RX8025t替换过小电子钟的晶振,精度显著提高,末尾有t的标识带温度补偿。 C76128 发表于 2024-5-17 14:25
我用RX8025t替换过小电子钟的晶振,精度显著提高,末尾有t的标识带温度补偿。
有说法是 8025T 的温补是对 1PPS 的,32768 那边是原始晶振输出没有温补 :D 你用 8025T 替换后精度提高,是你原来的晶振太烂 ;P
本帖最后由 jforu 于 2024-5-17 17:23 编辑
washu 发表于 2024-5-17 15:46
有说法是 8025T 的温补是对 1PPS 的,32768 那边是原始晶振输出没有温补你用 8025T 替换后精度提高, ...
8025t是从源头恒补的.
jforu 发表于 2024-5-17 17:17
8025t是从源头恒补的.
十几年前我说可以用 8025T 温补的,一大堆人怼我说 8025T 只是 1PPS/内部走时温补,32768 不补 :lol 当年我是在晶振电路并联或串电容让我电子表与中央广播电台同“滴”最后一响北京时间……:lol 单就晶振来说(并非单片机):采用软件编程可调恒温温补晶振 已经很不错了。
但这种办法最终还是有难以预测的误差,
并没有从根本上完全放心地解决问题。
单片机而言
在实时时间精度要求高的场合,例如阳光光学聚焦跟踪系(目前我承担的设计任务)
室外的已经实施使用卫星GPS 北极星直接获取时间,室内的阳光跟踪拟采用电波钟定期每天校对时钟。
页:
[1]
2