摘要:DS1340串行接口实时时钟(RTC)提供软件时钟校准功能,为系统提供晶振与温度变化补偿。本应用笔记主要描述了如何利用这个功能改善计时精度。
表1. 寄存器映射表
输出控制(OUT):当FT位设置为零时该位用于控制FT/OUT引脚的输出电平。FT = 0时,如果OUT = 1,FT/OUT引脚的逻辑电平为1;如果OUT = 0,FT/OUT引脚的逻辑电平为0。
频率测试(FT):该位为1时,FT/OUT引脚以512Hz的频率翻转;FT为零时,OUT位控制FT/OUT引脚的状态。
校准符号位(S):该位是逻辑1时,表明对RTC进行正校准;逻辑0表明对时钟进行负校准。关于这些控制位的详细介绍可参考晶振校准部分。
校准位(CAL4至CAL0):这些位设置为0到31二进制格式的任意值。关于这些控制位的详细介绍可参考晶振校准部分。
图1. 标准音叉晶体特性
利用0到31的二进制格式,可以将校准位设置为任意值。控制寄存器(S)的位5是符号位。S位的值是1表示正校准,而值是0表示负校准。每125,829,120实际32,768Hz振荡器周期(64分钟)中,每个校准步幅增加512、或减少256个振荡器周期。这相当于每个校准步幅的调整为+4.068ppm或-2.034ppm。如果振荡器正好在32,768Hz下工作,每增加31个校准位会表现出每月+10.7或-5.35秒(每月+5.5或-2.75分钟)。表2给出了校准寄存器中每个值的调整情况。
表2. 校准调整值
例如,如果使用FT,读数512.01024Hz表示振荡器的频率误差为+20ppm,需要在S位与校准位载入-10 (00 1010)值。向控制寄存器写入数据会清空预定标器,并即刻产生512Hz输出频率(FT/OUT引脚频率降低)。设置或改变校准位不会对FT/OUT输出引脚的频率产生影响。
寄存器映射
DS1340的控制寄存器(地址07h)用来控制FT/OUT引脚的工作,并对所希望的时钟校准进行编程。下面给出了详细的DS1340寄存器映射表。表1. 寄存器映射表
Address | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | Function | Range |
00H | active-low EOSC | 10 Seconds | Seconds | Seconds | 00-59 | |||||
01H | R/W | 10 Minutes | Minutes | Minutes | 00-59 | |||||
02H | CEB | CB | 10 Hours | Hours | Century/ Hours |
0-1; 00-23 | ||||
03H | R/W | R/W | R/W | R/W | R/W | Day | Day | 01-07 | ||
04H | R/W | R/W | 10 Date | Date | Date | 00-31 | ||||
05H | R/W | R/W | R/W | 10 Month | Month | Month | 01-12 | |||
06H | 10 Year | Year | Year | 00-99 | ||||||
07H | OUT | FT | S | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | Control | |
08H | TCS3 | TCS2 | TCS1 | TCS0 | DS1 | DS0 | ROUT1 | ROUT0 | Trickle Charger |
|
09H | OSF | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Flag |
输出控制(OUT):当FT位设置为零时该位用于控制FT/OUT引脚的输出电平。FT = 0时,如果OUT = 1,FT/OUT引脚的逻辑电平为1;如果OUT = 0,FT/OUT引脚的逻辑电平为0。
频率测试(FT):该位为1时,FT/OUT引脚以512Hz的频率翻转;FT为零时,OUT位控制FT/OUT引脚的状态。
校准符号位(S):该位是逻辑1时,表明对RTC进行正校准;逻辑0表明对时钟进行负校准。关于这些控制位的详细介绍可参考晶振校准部分。
校准位(CAL4至CAL0):这些位设置为0到31二进制格式的任意值。关于这些控制位的详细介绍可参考晶振校准部分。
典型晶振特性
晶体振荡器是提供固定频率输出最精确的电路之一。RTC的精度主要取决于晶振精度。调谐音叉晶振频率随温度的变曲线呈抛物线形,如图1所示。图1. 标准音叉晶体特性
晶振校准
校准电路的目的是在选定的温度下,通过调整该曲线的位置,以达到零ppm精度的量级。这是通过增加或减少振荡器分频链的计数值实现的。屏蔽(负校准中减去)或插入(正校准中加上)脉冲的数量由5位值来设置,该值是载入在控制寄存器的校准位里(CAL4:CAL0)。增加数量会加快时钟(曲线上移),减少数量会减慢时钟(曲线下移)。下图给出了正、负校准时的时钟调整图。利用0到31的二进制格式,可以将校准位设置为任意值。控制寄存器(S)的位5是符号位。S位的值是1表示正校准,而值是0表示负校准。每125,829,120实际32,768Hz振荡器周期(64分钟)中,每个校准步幅增加512、或减少256个振荡器周期。这相当于每个校准步幅的调整为+4.068ppm或-2.034ppm。如果振荡器正好在32,768Hz下工作,每增加31个校准位会表现出每月+10.7或-5.35秒(每月+5.5或-2.75分钟)。表2给出了校准寄存器中每个值的调整情况。
表2. 校准调整值
Sign | Calibration | Adjustment | Sign | Calibration | Adjustment | ||
Accuracy (ppm) | Time (sec/month) | Accuracy (ppm) | Time (sec/month) | ||||
0 | 00000 | 0 | 0 | 1 | 00000 | 0 | 0 |
0 | 00001 | -2 | -5 | 1 | 00001 | 4 | 11 |
0 | 00010 | -4 | -11 | 1 | 00010 | 8 | 21 |
0 | 00011 | -6 | -16 | 1 | 00011 | 12 | 32 |
0 | 00100 | -8 | -21 | 1 | 00100 | 16 | 43 |
0 | 00101 | -10 | -27 | 1 | 00101 | 20 | 54 |
0 | 00110 | -12 | -32 | 1 | 00110 | 24 | 64 |
0 | 00111 | -14 | -37 | 1 | 00111 | 28 | 75 |
0 | 01000 | -16 | -43 | 1 | 01000 | 33 | 86 |
0 | 01001 | -18 | -48 | 1 | 01001 | 37 | 96 |
0 | 01010 | -20 | -54 | 1 | 01010 | 41 | 107 |
0 | 01011 | -22 | -59 | 1 | 01011 | 45 | 118 |
0 | 01100 | -24 | -64 | 1 | 01100 | 49 | 128 |
0 | 01101 | -26 | -70 | 1 | 01101 | 53 | 139 |
0 | 01110 | -28 | -75 | 1 | 01110 | 57 | 150 |
0 | 01111 | -31 | -80 | 1 | 01111 | 61 | 161 |
0 | 10000 | -33 | -86 | 1 | 10000 | 65 | 171 |
0 | 10001 | -35 | -91 | 1 | 10001 | 69 | 182 |
0 | 10010 | -37 | -96 | 1 | 10010 | 73 | 193 |
0 | 10011 | -39 | -102 | 1 | 10011 | 77 | 203 |
0 | 10100 | -41 | -107 | 1 | 10100 | 81 | 214 |
0 | 10101 | -43 | -112 | 1 | 10101 | 85 | 225 |
0 | 10110 | -45 | -118 | 1 | 10110 | 89 | 235 |
0 | 10111 | -47 | -123 | 1 | 10111 | 94 | 246 |
0 | 11000 | -49 | -128 | 1 | 11000 | 98 | 257 |
0 | 11001 | -51 | -134 | 1 | 11001 | 102 | 268 |
0 | 11010 | -53 | -139 | 1 | 11010 | 106 | 278 |
0 | 11011 | -55 | -144 | 1 | 11011 | 110 | 289 |
0 | 11100 | -57 | -150 | 1 | 11100 | 114 | 300 |
0 | 11101 | -59 | -155 | 1 | 11101 | 118 | 310 |
0 | 11110 | -61 | -161 | 1 | 11110 | 122 | 321 |
0 | 11111 | -63 | -166 | 1 | 11111 | 126 | 332 |
决定时钟误差
在设置校准值前,必须先决定需要校准的数量。当设置控制寄存器的FT位(位6)时,FT/OUT引脚(引脚7)会产生未校准的512Hz时钟。该频率决定了晶振振荡器的频率误差。例如,如果使用FT,读数512.01024Hz表示振荡器的频率误差为+20ppm,需要在S位与校准位载入-10 (00 1010)值。向控制寄存器写入数据会清空预定标器,并即刻产生512Hz输出频率(FT/OUT引脚频率降低)。设置或改变校准位不会对FT/OUT输出引脚的频率产生影响。
评论
查看更多