0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用单片机做一个高精度的时间钟的具体方案与实现方法

Q4MP_gh_c472c21 来源:嵌入式ARM 作者:嵌入式ARM 2021-04-08 10:48 次阅读

理论上

只要是用晶振作为时基的单片机时间钟,在常温下做到日差1秒之内,甚至更精准是应该极易达成的。

只是许多人并不知道如何达成这个目标的方案。

而且市面很多带单片机的产品中,时间都做不准,这绝对是设计问题。例如:笔者车子上的时钟日差有10秒多。

一般大多数人所设计的定时器时常,是根据晶振标出的数据(如12M)计算而成的,固定不变,设计呆板。但普通晶振的实际振荡频率是不可能与标出的数据完全相同的,例如:12.00043M,11.99985……,这个误差必然积累,所以时钟就不准了。另外绝大多数设计也没有考虑微调方案,对于日差几秒无法控制。

日差1秒要求的精准是:1秒/(24小时*60分*60秒),对应12M晶振;当频率是12.000014M或11.999986M,日差就有1.2秒。可见用普通晶振做的时间钟,如果不采取修正措施,会因精度不够,时钟日差10多秒是很普遍的。

在笔者设计的有单片机时间产品中,随机取10个,同时上电,3天后再看时钟,它们之间的最大时间误差,一般都不会超出1秒(普通晶振,不联网)。许多产品月差在1秒之内。

1、实现方法:

1)将时间的定时中断时常数做成可修正的,且加入微调常数,定时时常数与微调时常数在FLASH中取得。微调时常数用于修正时常数的小数点之后的部分。

2)程序可以对某端口输入的秒脉冲再进行计算,并据之修正定时器的时常数,以及微调常数,并存入FLASH中。达成利用外部精准脉冲源对时钟进行校准的目的,说白了,就是用外校消除普通晶振的个体差异。同时程序也可以输出自己的秒脉冲,这样就可以达成产品之间的互校。

3)选择一个产品,对其时钟进行精确校准(这需要外部精准的时钟源。如果手中没有,可以多花点时间,用手机、电视、广播上的报时进行校准),这样就可以将它做成一个自己的【标准秒脉冲时钟源】。

4)产品出货前,用自己的【标准秒脉冲时钟源】校一下(将输出的标准秒脉冲送入其它产品的校准端口,让其它产品自动完成定时器时常数及微调常数的修正。)

如此处理,时间钟的精度就取决于晶振的稳定度,而不是精度。而晶振的稳定度普遍可以达到PPM级,当环境温度变化不大时,极易保证《11.57PPM,这就达成了日差小于1秒的目的。

2、产品相关时间基准的程序:

(只提方案,不提程序代码

1)将端口输入的秒脉冲与本体的晶振频率进行比对,计算出定时器的时常数与微调时常数(只做一次即可,计算结果保存到FLASH了,其最初值是按晶振的标称值计算确定的)。

2)时间微调补偿。

3)秒脉冲输出(用于互校,可以放弃不写)。

要点:定时器的时常数不是程序直接赋值,而是从FLASH中调取的。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44525

    浏览量

    633335
  • 晶振
    +关注

    关注

    34

    文章

    2836

    浏览量

    67921

原文标题:如何用单片机做一个高精度的时间钟方案?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现51单片机与PC的串行通信

    的详细步骤和方法。 硬件连接 首先,我们需要将51单片机与PC的串行接口连接起来。通常,我们使用RS-232接口进行连接。RS-232接口是种常用的串行通信接口,它使用9
    的头像 发表于 10-21 11:35 445次阅读

    蓝牙模块如何实现单片机和手机端数据互传

    蓝牙模块实现单片机和手机端数据互传的过程可以分为以下几个步骤: 硬件准备 : 确保你有支持蓝牙通信的单片机开发板,如Arduino、Ra
    的头像 发表于 07-24 17:59 2180次阅读
    蓝牙模块如何<b class='flag-5'>实现</b><b class='flag-5'>单片机</b>和手机端数据互传

    暑假如何学习单片机

    暑假是学习和掌握单片机基础知识的良好时机。以下是关于如何在暑假期间学习单片机的建议计划
    的头像 发表于 07-03 09:19 488次阅读
    <b class='flag-5'>一</b><b class='flag-5'>个</b>暑假如何学习<b class='flag-5'>单片机</b>

    京准电钟:基于GPS与北斗高精度实时时钟的时间同步方法

    京准电子分享:基于GPS与北斗卫星高精度实时时钟的时间同步方法
    的头像 发表于 06-18 14:35 644次阅读
    京准电钟:基于GPS与北斗<b class='flag-5'>高精度</b>实时时钟的<b class='flag-5'>时间</b>同步<b class='flag-5'>方法</b>

    单片机电子时钟走时更精确的方法

    采用同步修正方案后,电子时钟的精度虽然提高了很多,但是由于晶振频率的偏差和些其他未知因素的影响(同块电路板、同样的程序换了
    发表于 04-08 07:19

    如何系统、科学地自学单片机

    的自学单片机呢?自学单片机需要定的计划和方法,以下是具体的步骤和建议。如何系统、科学地自学单片机
    的头像 发表于 03-28 08:03 1013次阅读
    如何系统、科学地自学<b class='flag-5'>单片机</b>?

    实现高精度、快速建立的大电流好方法

    了如何利用复合放大器拓扑进行改进,以实现高精度、快速建立的±500mA电流源。增强型Howland电流源图1所示为传统的Howland电流源(HCS)电路,而公式1
    的头像 发表于 03-05 08:23 578次阅读
    <b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>实现</b><b class='flag-5'>高精度</b>、快速建立的大电流好<b class='flag-5'>方法</b>

    Aigtek:如何设计高精度电压源

    在现代电子系统中,高精度电压源是许多应用的基础,如精密仪器、测试测量设备、通信系统等。设计高精度电压源需要深入了解电源电路的原理和各种影响电压稳定性的因素,同时结合高性能的元器件和
    的头像 发表于 02-27 11:40 634次阅读
    Aigtek:如何设计<b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>高精度</b>电压源

    做一个TC23X单片机的Bootloader程序需要准备哪些方面的知识?

    各位,问下,上位用现成的,做一个TC23X单片机的Bootloader程序需要准备哪些方面的知识?需要看数据手册的哪些章节?还有能否给
    发表于 02-18 08:33

    如何实现高精度的同步测量?如何做好同步数据采集的时间校准?

    如何实现高精度的同步测量?如何做好同步数据采集的时间校准? 实现高精度的同步测量是科研和工程领域中的
    的头像 发表于 01-16 15:10 1392次阅读

    何用小安派-Eyes-S1做一个电子木鱼?

    2024年的第篇教程来了,本篇学习如何添加LVGL事件,并制作完成电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安派-Eyes-S
    的头像 发表于 01-13 15:18 976次阅读
    如<b class='flag-5'>何用</b>小安派-Eyes-S1<b class='flag-5'>做一个</b>电子木鱼?

    充气泵方案中的高精度SOC芯片

    。今天我们就来聊下关于使用高精度SOC芯片设计开发充气泵方案的过程和技术要点。 在做一个方案设计开发时,核心功能
    的头像 发表于 12-26 16:09 421次阅读

    激光扫描装配间隙尺寸高精度检测系统的设计与实现

    鉴于传统测量方法效率低下,无法满足工件装配间隙尺寸自动测量的高精度、高速度要求,探讨了种激光扫描装配间隙尺寸高精度检测系统的设计与实现,设
    的头像 发表于 12-20 14:37 973次阅读
    激光扫描装配间隙尺寸<b class='flag-5'>高精度</b>检测系统的设计与<b class='flag-5'>实现</b>

    基于单片机的低功耗具体设计

    今天我们来说下基于单片机的低功耗具体设计;
    的头像 发表于 12-11 17:40 1390次阅读
    基于<b class='flag-5'>单片机</b>的低功耗<b class='flag-5'>具体</b>设计

    何用BUCK电路简单实现可靠的负电源?

    何用BUCK电路简单实现可靠的负电源?
    的头像 发表于 12-05 15:12 764次阅读
    如<b class='flag-5'>何用</b>BUCK电路简单<b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b>可靠的负电源?