MC9S08MG64实时时钟的校准和补偿
公式1用来计算引入误差后的晶体振荡周期,它可以由晶体的误差定义CrystalError = Δf/f推导得出。晶体误差一般用ppm表示,注意量纲的换算。
在实际的应用中,我们可以根据需要的补偿精度来选择补偿间隔和补偿值。最大补偿间隔可以根据实际情况确定。例如如果每分钟都要高精度输出,那么补偿间隔可以设置为60。
下图为根据上述方法选取一些温度点做补偿的实验结果。Fdev为补偿之前的频率偏差, Fcalib为补偿之后的频率偏差。从实验数据可见,使用正确的补偿间隔和补偿值,MC9S08MG64的iRTC的精度完全可以控制在2ppm以内。
3 实时时钟的温度补偿
上面讨论了在一个固定的温度下如何做时钟的补偿及其原理,现在我们讨论在温度变化的情况下如何做时钟的自动补偿。如前所述,晶体的频率偏差可以用抛物线方程来描述,如果我们确定出抛物线,那么就可以通过温度(温度的测量可以用集成温度传感器或NTC电阻来完成)来确定出频率偏差从而对其进行补偿。比较常用的一种方法就是测出一些点然后用最小二乘法拟合。简要描述如下:
由一些已知点拟合抛物线方程:
已知点:(X1,Y1), (X2,Y2), (X3,Y3) … (Xn,Yn)。
确定抛物线方程y=ax2 + bx + c 的系数。
最小二乘法:
至少需要三个点来确定此抛物线。
晶振典型温漂曲线形式如下:
y = a(x-t)2 + k = ax2 - 2atx + at2 + k
对于同一个型号的晶体,假定抛物线二次系数不变,可由公式(2)(3)求得b c,然后得出t, k。从而实现两点校正。由于抛物线越远离顶点变化率越大,所以在抛物线的两端进行校正可以得到更好的补偿精度。
t = -b/2a
k = c - b2/4a
如果晶体的一致性比较好,系数a和t偏差不大,可以只对系数k进行标定。即单点校正。
4 使用FTM 模块产生秒脉冲
在一些应用中,实时时钟输出的秒脉冲需要用光耦隔离。过窄的时钟脉冲难以通过低速光耦。在这一节中,将讨论一种使用FTM 模块来校正实时时钟iRTC输出的秒脉冲的方法。校正后的秒脉冲将具有:
更高的精度(每个秒脉冲)
50% 的占空比
4.1 以RTCCLKOUT做时钟源产生秒脉冲
在上述讨论的实时时钟(iRTC)的校准方法中,RTCCLKOUT时钟在长的时间内精度得到了保证。在图2-1中可以看到,由于补偿间隔是M(M》1)秒,补偿间隔内的第一秒长度和其它秒长度是不一样的,因为第一秒包含了补偿时间。如果我们能把此补偿时间平均分配到补偿间隔内的每一秒钟,使每一秒的长度相等(每一秒都得到补偿),那么我们将得到均匀的高精度秒脉冲输出。
单片机中的程序计算补偿间隔内每一秒的补偿时间并对每一秒进行补偿。如果补偿间隔是M,补偿值是N,那么每一秒钟的补偿值就是N/(32768 ×M)秒。N/(32768×M)可能是一个很小的值,因此我们需要一个高精度的时钟来得到高分辨率(精度)。
在此方案中我们使用总线时钟(bus clock),该总线时钟由外部的32768Hz 晶体(XOSC1)组成的振荡器产生参考频率,然后经由片内倍频电路锁频环(FLL)倍频获得。锁频环(FLL) 和实时时钟(iRTC)共用同一外部振荡源。锁频环(FLL)的倍频系数设置为512,所以总线频率最大为16.78MHz(512×32768)。每一秒的补偿时间为(512×N)/M 总线时钟周期,它消除掉了温度和晶体老化的影响。
从图2-1(补偿后的实时时钟秒脉冲输出)中我们可以看出,当前补偿周期的最后一个时钟沿就是下一个补偿周期的第一个时钟沿。用第一个时钟沿做对齐,实时时钟的补偿精度得到继承(上升沿和下降沿都可以用来做对齐;由软件来设定)。
MC9S08GW64 的FTM模块的每个通道可以单独工作在输入捕捉或者输出比较模式。我们可以使用一个FTM模块的两个通道,其中的一个通道来捕捉iRTC输出的窄脉冲,另一个通道输出50%占空比的秒脉冲。
当 FTM模块的通道1捕捉IRTCCLKOUT的上升沿(或下降沿)时使用总线时钟,在FTMCH1中断触发后保存FTM计数器的捕获值到FTMCH1V。在FTMCH1中断程序中,FTMCH0被设置为输出比较模式,输出比较值设置为FTMCH1V加一个偏移Ф。Ф为一个常量加每一个脉冲周期的调整值。表3列出了IRTCCLKOUT和FTM输出边沿的上升时刻,以及两者的脉冲宽度。
表3 IRTCCLKOUT 和FTM 输出时序
TAVG = V ÷ M(晶体振荡周期)
= 512 × V ÷ M(总线时钟周期)
从表3可以看出,RTCCLKOUT先右移了σ。每一个秒脉冲用平均的补偿值进行补偿。
图4-1和图4-2对这种补偿方法做了详细地
MC9S08MG64 实时时钟 相关文章:
- MC9S08MG64实时时钟的校准和补偿(二)(10-15)
- Maxim DS3231实时时钟应用笔记、使用指南、FAQ全集(02-14)
- 半导体行业中十款主流实时时钟(06-29)
- 实时时钟电路设计(05-20)
- 基于实时时钟芯片及单片机的红外遥控LED电子钟设计(01-01)
- 实时时钟芯片DS12887的应用设计(04-23)