RX8010SJ,由于使用简单、标准SOP8封装和高性价比等特点,已经被广泛的应用于各种电子产品的设计中。虽然RX8010SJ内置出厂时经过校准的32.768KHz的晶体单元,能够很大程度上保证了其精度,但是内部晶体单元的校准是在25℃条件下的校准(每月1分钟的偏差)。而RX8010SJ允许的工作温度范围是-40℃至85℃,并且RX8010SJ内部没有温度补偿,因此在高温或低温环境下,其精度会出现偏差。本文介绍使用RX8010SJ的内部软件校准的方法,可一定程度上提供其在高温或低温环境的精度。
计算频率偏差
进行软件校准之前,先要了解清楚RX8010SJ内部晶体的频率温度特性,如下图1为RX8010SJ的频率温度特性曲线图,其近似的曲线函数为:∆fT = α(θT-θX)2。
∆fT:全温范围的频率偏差
α[1/℃2]:温度系数(-0.035±0.005) * 10-6/℃2
θT[℃]:校准温度(+25±5℃)
θX[℃]:任何温度
图1:RX8010频率温度曲线图
根据曲线函数可以计算出任何温度时的频率偏差,但为了得到完整的频率偏差,还需要加上频率精度和电压特性。因此完整的频率偏差公式为:∆f/f = ∆f/fo + ∆fT + ∆fV。
∆f/f:全温全压范围的频率偏差
∆f/fo:频率精度
∆fT:全温范围的频率偏差
∆fV:全压范围的频率偏差
日期的误差计算公式为:Data Difference = ∆f/f * 86400(秒)。例如:∆f/f = 11.574*10-6表示一天接近1秒钟的误差。
数字补偿寄存器
计算出了频率偏差,接下来看如何根据频率偏差来设置寄存器进行校准。RX8010SJ具有一个数字补偿寄存器(Digital offset register)可以用来对时钟精度进行向前或向后调整,寄存器地址是0x30,如下表1。通过寄存器可设置的最小分辨率是3.05 *10-6,可调整的范围是+195.3*10-6到-195.3* 10-6。当通过频率精度或时钟精度计算补偿值时,请验证寄存器初始化后的精度。
表1
当禁止数字补偿时,设置DTE = 0,L7~L1的值会是一个任意值。
当DTE = 1时,数字补偿功能被使能。此时,数字补偿寄存器会根据被设置的值来补偿计时器,它是每隔10秒钟改变一秒的计时数来进行补偿的。在时钟补偿过程中,32.768KHz的输出频率FOUT是不会改变的,因为内置的振荡器频率没有改变。下面表2表示了L7~ L1位与数字补偿值的关系。其中L7位表示补偿情况,0表示正补偿,1表示负补偿。
表2
计算补偿值
当进行正补偿时,公式为L[7 ~ 1] = [Offset Value]/ 3.05 * 10-6,结果中小数被舍去。例如,补偿值是+192 *10-6,L[7 ~ 1] = 192.26 / 3.05 = 63 (dec) = 0111111(bin)。
当进行负补偿时,公式为L[7 ~ 1] = 128 - [Offset Value] / 3.05 * 10-6,结果中小数被舍去。例如,补偿值是-158 *10-6,L[7 ~ 1] = 128 - ( 158 / 3.05 ) = 76(dec) = 1001100(bin)。
从时钟精度上进行计算,如30天需要补偿30秒钟。30秒 / 2592000秒(30天) = 11.57 * 10-6,正补偿计算: L[7 ~ 1] = 11.57 / 3.05 = 4 (dec) = 0000100(bin),负补偿计算:L[7 ~ 1] = 128 - ( 11.57 / 3.05 ) = 124 (dec) = 1111100(bin)。
需要注意的是,使用数字补偿功能会对RX8010SJ的其他功能造成影响,因为这个功能调整的是内部时钟,这将影响内部固定周期定时器中断功能和FOUT功能。
1)FOUT功能:
设置成1Hz:每10秒钟,有1Hz周期波动。
设置成1024Hz:每10秒钟,有1024Hz周期波动。
设置成32.768KHz时,无影响。
2)固定周期定时器中断功能
设置成64Hz或1Hz时钟源:每10秒钟,一个周期波动。当向下计数的值被设置很大,波动看起来相对较小。
设置成4kHz时钟源时,无影响。
以上便是RX8010SJ实时时钟模块通过内部软件校准的计算及校准的全过程。如果您的设计需要在恶劣温度环境下工作,希望以上内容可以对您有帮助。
世强元件电商版权所有,转载请注明来源及链接。