首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTC时钟校准

RTC时钟校准
EN

Stack Overflow用户
提问于 2015-07-20 19:49:20
回答 1查看 329关注 0票数 2

我正在寻找一个成本x性能的方法,以校准微控制器RTC时钟基准(通常32.678kHz)。

我需要一种方法来找出参考时钟漂移,并通知它的微控制器,以便它可以计算和平稳的校正值。

我发现了阿特梅尔描述的这些有趣的方法。项目2.2.2使用1Hz参考信号间接测量似乎是迄今为止最合适的。不过,我仍然对其他方法持开放态度。

先谢谢大家。

EN

回答 1

Stack Overflow用户

发布于 2022-09-14 20:54:54

有几种选择:

一种低成本(但速度慢)的方法是两次连接一个单片机输入到一个GPIO输出的单板计算机(SBC),运行Linux并通过NTP同步它的时钟。在SBC上运行一个小程序,它切换GPIO输出,等待10**6秒(~ 11.574天),然后再次切换输出。您的MCU读取每个切换时间(以秒为单位)的RTC,并计算持续时间(d)之间的开始和停止。

校正偏移量(off,单位: ppm)然后:

代码语言:javascript
复制
off = (d / 10**6 - 1) * 10**6

成本: SBC的成本,如树莓皮。

一个更快,但也便宜的选择是连接一个DCF77接收器(或类似的短波时间同步服务接收器,视您的区域而定),并使用它来计算您的MCU的RTC时钟锁定针(即k.a)的滴答数。SQW引脚( RTCOUT)在几分钟内完成。您可以更快地配置时钟频率,您需要观察的时间跨度越短(以获得精确的校准偏移)。

例如,当时钟锁定为2**15赫兹时,20到50分钟的测量周期就足够了(以消除时间信号中的误差、中断抖动等)。

然后,您可以通过以下方法计算校准偏移量(off,单位ppm):

代码语言:javascript
复制
off = (measured / expected - 1) * 10**6
    where
        measured = counted ticks on the clockout pin
        expected = #DCF77_minutes * 60 * freq
        freq     = e.g. 2**15 Hz

成本: DCF77接收器(或类似的)可以获得不到10欧元(到2022年),你甚至可以清空一个旧闹钟的DCF77模块。

注:如果您的时钟锁定频率为2**15 Hz,则您的MCU需要支持32位宽的计时器寄存器--或两个16个定时器寄存器的链接(例如,另一个计时器计数第一个计时器的溢出量,从而包含最重要的一半计时器)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31525125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档