利用DS1340的校准功能

利用DS1340的校准功能,第1张

摘要:DS1340串行接口实时时钟(RTC)提供软件时钟校准功能,为系统提供晶振与温度变化补偿。本应用笔记主要描述了如何利用这个功能改善计时精度。

寄存器映射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所示。

利用DS1340的校准功能,图1. 标准音叉晶体特性,第2张
图1. 标准音叉晶体特性 晶振校准校准电路的目的是在选定的温度下,通过调整该曲线的位置,以达到零ppm精度的量级。这是通过增加或减少振荡器分频链的计数值实现的。屏蔽(负校准中减去)或插入(正校准中加上)脉冲的数量由5位值来设置,该值是载入在控制寄存器的校准位里(CAL4:CAL0)。增加数量会加快时钟(曲线上移),减少数量会减慢时钟(曲线下移)。下图给出了正、负校准时的时钟调整图。

利用DS1340的校准功能,第3张

利用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输出引脚的频率产生影响。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2520241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存