硬汉嵌入式论坛

 找回密码
 立即注册
查看: 888|回复: 1
收起左侧

[功能实战] 历时456天,实测H7-TOOL的RTC不断电,不校准,快了44分钟

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115988
QQ
发表于 2024-12-26 07:22:10 | 显示全部楼层 |阅读模式
【测试条件】

1、这个TOOL已经连续运行656天未断电过,使用的STM32H7内置RTC。
2、RTC时间在2023年9月26号进行了校准,并开启测试。
3、运行期间,未做任何手动校准,软件校准和NTP, SNTP网络校准。

【测试结果】
1、第1次测试结果,从2023年9月26号到2024年4月5号,共计192天,

实测快了13分钟。



2、第2次测试结果,从2023年9月26号到2024年12月26号,共计456天

实测快了将近44分钟。

23456.png

【误差原因】
因为晶振对温度敏感,下面是典型的温度对晶振影响:

STM32支持LSI内部低速时钟或者LSE外置低速时钟,使用外部就要接32768Hz的晶体。

一个月的典型误差50秒左右。




【校准】

以外置RTC  DS3231为例,精度是:
Accuracy ±2ppm from 0°C to +40°C        ---- 每个月30天算的最大误差是2*10^-6 * 24 * 60 *60 * 30 = 5.184秒
Accuracy ±3.5ppm from -40°C to +85°C  ---- 每个月30天算的最大误差是3.5*10^-6 * 24 * 60 *60  * 30 = 9.072秒

使用STM32内部RTC不行,白天温度不稳定的话,当天的误差差不多就有1-2秒。主要是晶振不是温补的。

ST提供了一些方案,但是不实用:

方法1:Smooth digital calibration

这种方法使用比较麻烦,当前提供的案例需要用户使用超高精度的信号时钟,精确到几个ppm,发送这个信号给板子做校准。然后示波器测量实际的输出效果来确实是否采用这个校准值。



方法2: RTC时钟同步

官方提供的例子没什么参考价值,倒腾了高精度的HSE来实现。

方法3: 使用50Hz/60Hz高精度参考时钟辅助



这个实用性也有点差。

3、当前推荐方案

(1)使用外置温补晶振,但价格略高,10块钱左右:

(2)使用自带温补的RTC芯片。

(3)带网络的,可以使用NTP,  SNTP校准

【RTC校准软件包】

1、https://www.st.com/en/embedded-software/x-cube-rtc.html

2、开源Sensor Watch Pro智能手表,号称一年的误差不到1秒
https://www.armbbs.cn/forum.php?mod=viewthread&tid=126087






回复

使用道具 举报

0

主题

111

回帖

111

积分

初级会员

积分
111
发表于 2024-12-28 17:18:02 | 显示全部楼层
这个测试很有意义
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-1 13:34 , Processed in 0.265392 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表