硬汉嵌入式论坛

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

[RTC] 有没有坛友不借助外部时钟同步的情况下,实现STM32内部RTC校准功能的

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2021-10-27 08:38:04 | 显示全部楼层 |阅读模式
以外置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提供了一些方案,但是不实用:

关于STM32的RTC时钟校准问题,ST提供的三种方案实用都不强
http://www.armbbs.cn/forum.php?mod=viewthread&tid=107992


因为晶振对温度敏感,下面是典型的温度对晶振影响:

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

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








回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2021-10-27 10:28:26 | 显示全部楼层
这个怕是不行,需要GPS,NTP之类的做同步才靠谱些
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
 楼主| 发表于 2021-10-27 10:33:30 | 显示全部楼层
missfox 发表于 2021-10-27 10:28
这个怕是不行,需要GPS,NTP之类的做同步才靠谱些

得想个办法,只要可以提高下稳定性
回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
发表于 2021-10-28 11:25:34 | 显示全部楼层
本帖最后由 caicaptain2 于 2021-10-28 11:30 编辑

不用这么考虑worsecase,一个月的温度变化不会是40度之多。 另外,如果误差和温度的趋势是相对固定的话,可以根据温度补偿,来弥补一些误差。有个思路,mcu还有个主晶振,可以用主晶振(程序计数器)来计数,定时和RTC的计数对比。同时MCU还可以记录温度,找出一个对应关系的表格,然后进行修正。
当然,主晶振可以选有源,温补的,自然就准确一些了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 06:32 , Processed in 0.252566 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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