MC9S08MG64实时时钟的校准和补偿(一)

2013-10-15 08:52:09来源: 互联网

MC9S08MG64是飞思卡尔半导体针对国网单相电表推出的一款半SoC芯片,它集成了片上液晶驱动器和实时时钟模块,以及多种通讯接口。用于智能电表设计时,配合外部电能计量芯片,即可完成性价比良好的单相电表设计。此单片机内部集成的实时时钟模块(iRTC) 具有时间保持和日历功能。对由晶体本身的频偏及温度漂移引起的误差,可以利用实时时钟本身的补偿功能进行修正。本文讨论如何对实时时钟进行校准和补偿,以达到国网要求的标准(误差小于5ppm)。

晶体的特性

1.1 负载电容的影响

一般说来晶体的振荡频率是很稳定的,但我们也知道晶体的振荡频率受负载电容和温度变化的影响。如下图所示的例子为一个负载电容为12.5pF的晶体,当负载电容变化时其振荡频率偏差的随动特性

振荡电路匹配电容的离散性和温度漂移,电路板的分布电容都会对振荡频率造成影响。对于MC9S08MG64,使用32.768kHz晶体时其振荡器可以有两种配置。当使用低功耗模式(RANG = 0, HGO = 0)时,负载电容、反馈电阻、和串行电阻已经集成在单片机内部了,外面只需加晶体即可。这种配置的功耗比较低,且可以抵消上述误差因素的影响。当使用高增益模式(RANG = 0,HGO = 1)时,外部要加负载电容、反馈和串行电阻。这种配置的抗干扰能力比较强,但外部元器件对振荡频率的精确性存在影响。对于负载电容引起的频率漂移,我们可以通过选用温漂系数小的电容(如COG电容)来减小其影响。

1.2 温漂

上图是音叉型的晶体振荡频率随温度变化的曲线,它可以用抛物线方程描述为:

Fdev = B (T - TQ)2 + K

其中:

由以上分析可见,对于一个晶体振荡电路,影响其振荡频率误差的因素有:

负载电容

晶体在转折温度点的频率偏差K

温漂Fdev

因此,要使iRTC精确计时,必须消除以上因素带来的误差。负载电容可以通过振荡电路元器件的选择来保证。而后两项则必须通过软件的办法来校准和补偿。


2 实时时钟的补偿原理

实时时钟使用外部的32768Hz 振荡时钟经由32768分频产生秒脉冲。寄存器IRTC_COMPEN用来对补偿进行配置;这包括补偿的时间间隔(compensation interval) 和补偿值(compensation value) 。补偿电路根据配置在固定的时间间隔内(compensation interval)增加或减少振荡周期。

补偿间隔和补偿值寄存器

补偿间隔(compensation interval)是无符号整数,取值范围是1-255 秒;补偿值(compensation value)的取值范围是-128 to 127。增加或减少一个振荡周期将会产生±30.5ppm(1/32768)的频率偏移,所以此补偿电路具有0.119ppm(interval = 255,value = 1)到3906ppm(interval = 1, value = -128)的补偿能力。如果补偿间隔(compensation interval)或补偿值(compensation value)之一设置为0将禁止补偿功能。

实时时钟模块在补偿周期的第一秒进行补偿。根据补偿寄存器设置对第一秒钟增加或减少相应的振荡周期(compensation value),其它的秒脉冲输出保持不变。从而导致秒脉冲之间的时长不同,但从长时间来看时间精度因得到补偿而大为提高。

MG64的实时时钟模块(iRTC)可以配置为在引脚RTCCLKOUT输出补偿后的秒脉冲。图2-1说明了引脚RTCCLKOUT 输出秒脉冲的情况。秒脉冲的高电平时长为一个时钟振荡周期(1/32768 秒)。

在没有启动补偿的情况下,每个秒脉冲的周期都是T(包含32768个时钟振荡)。如果启动补偿并设置补偿间隔为M,补偿值为V,那么在每个补偿周期(M秒内),第一个秒脉冲周期会增加或减少V个时钟振荡,变为32768 ±V个时钟振荡。第一个秒脉冲的长度与其它秒脉冲长度不同。

在图2-1中,补偿间隔为M,补偿值为V。

T= 32768 个振荡周期

Tcomp+/- =(32768 ± |V|)个振荡周期

由补偿值决定,第一秒钟(Tcomp)被减少或增加|V| 个振荡周期。其它的秒脉冲时长仍然是32768 个振荡周期。

补偿间隔和补偿值的选择可以根据晶体的误差和需要的补偿精度来决定。

表1中的例子说明如何根据补偿误差最小化来选择补偿间隔和补偿值。

表2列出了当晶体的误差为-2ppm ,不同补偿间隔的补偿值及补偿后的误差。根据公式2为不同的补偿间隔计算补偿值;根据公式3可以计算出各补偿间隔和补偿值组合补偿之后的误差。最佳补偿间隔(61)和补偿值(-4)是根据补偿后误差最小而选取的。

公式1用来计算引入误差后的晶体振荡周期,它可以由晶体的误差定义CrystalError = Δf/f推导得出。晶体误差一般用ppm表示,注意量纲的换算。

在实际的应用中,我们可以根据需要的补偿精度来选择补偿间隔和补偿值。最大补偿间隔可以根据实际情况确定。例如如果每分钟都要高精度输出,那么补偿间隔可以设置为60。

下图为根据上述方法选取一些温度点做补偿的实验结果。Fdev为补偿之前的频率偏差, Fcalib为补偿之后的频率偏差。从实验数据可见,使用正确的补偿间隔和补偿值,MC9S08MG64的iRTC的精度完全可以控制在2ppm以内。

关键字:MC9S08MG64  实时时钟

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2013/1015/article_20038.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MC9S08MG64
实时时钟

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved