AN53313 赛普拉斯 nvSRAM 中的实时时钟校准 作者:Shivendra Singh 相关项目:无 相关器件系列:nvSRAM RTC 软件版本:无 相关应用笔记:无 AN53313 描述了赛普拉斯 nvSRAM 中的实时时钟(RTC)校准特性。该特性将补偿与晶振额定频率 32.768 kHz 相对的偏 差,从而保持精确的系统时间。该应用笔记还提供了用于校准调整的查找表。 简介 赛普拉斯 nvSRAM 中的实时时钟(RTC)由外部晶体振荡器 驱动,其额定频率为 32.768 kHz。大部分 32.768 kHz 晶振的 频率偏差在+25 °C 下为±20 百万分比(parts per million, ppm)。在长周期时间内,该频率偏差会导致时序错误。例如, 晶振额定频率的误差为 20 ppm 时,一个月内的时钟精度偏移 为 52 秒。您可以使用 nvSRAM RTC 中的校准特性来补偿偏 移。 影响晶振时钟精度的另一个晶振参数是抛物线曲率常数,k。 该参数随着温度的变化而改变晶振频率。通常,抛物线曲率常 2 数(k)为–0.036 ppm/°C 。如果工作温度已知,通过校准 RTC,可以补偿温度变化所引起的 RTC 时钟频率偏移。 曲率 k 是晶振固有的机械特性;不同的制造商会有不同的曲 率。晶振数据手册提供了曲率的典型规范。此外,通过测试 随着温度变化而变化的频率输出,可以根据经验确定该参数。 2 2 To 为 25 °C ± 5 °C,k 为–0.036 ppm/°C ± 0.006 ppm/°C 。 图1. 晶振的抛物线温度曲线 40 20 -45 -35 -25 -15 -80 2 公式 1 5 15 25 35 45 55 65 75 85 95 -60 即使晶体振荡器是最精确的振荡器电路之一,但是 RTC 的精 度主要取决于晶振的精度。类似于其他常见的电气组件(如电 阻器和电容器),晶振具有与其相关的一定偏差。额定频率在 25 °C 温 度 时 的 32.768 kHz 的 晶 振 , 实 际 上 可 能 偏 差 了 ±20 ppm。晶振频率也随着温度的变化而变化。图 1 显示的是 温度和晶振频率间的抛物线关系。晶振制造商使用转换温度 (To)和曲率常数(k)来确定曲线。频率变量是 T 和 k 的函 数,如以下公式所示: www.cypress.com -5 -20 -40 典型晶振行为 𝑓 − 𝑓𝑜 = 𝑘𝑓𝑜 𝑇 − 𝑇𝑜 Temperature in °C 0 Δf/f (ppm) -100 -120 -140 -160 -180 To = 25°C k = – 0.036 ppm/°C2 校准电路通过向上或向下调整曲线,在选中的温度下得到零、 +1 或-2 ppm 的精度。通过向振荡器分频器链增加或减少时 钟周期,实现此目的。 文档编号:001-92143 版本** 1 赛普拉斯nvSRAM中的实时时钟校准 校准方法 赛普拉斯 nvSRAM 中的 RTC 设计采用了周期计数器纠正。数 字校准电路对振荡器分频器电路增加或减去了时钟周期,如图 2 中所示。类似地,图 3 中显示的示例时钟框图描述了如何在 正向校准期间中增加额外时钟周期,使时钟速度加快,或在负 向校准期间中减少时钟周期,使其速度减慢。增加或减去的脉 冲数量由写入校准寄存器的 5 个低位(D4 至 D0)数据决定。 这些位可以表示 0 到 31 范围内的任何二进制值。D5 位是符号 位,其中“1”表示正校准,“0”表示负校准。 校准周期时间为 64 分钟。在周期的前 62 分钟,每分钟一次, 可能校准一秒时间。这一秒中的速度可能被加快(增加 256 个 时钟周期)或减慢(减去 128 个时钟周期)。如果将二进制 “ 1 ” 加 载 到 寄 存 器 内 , 只 能 在 64 分 钟 周 期 的 前 两分钟进行修改;如果加载了二进制“6”,则只能在前 12 分 钟内进行修改,如此类推。因此,在每个校准步骤中,将对每 125,829,120 个(64 分钟 × 60 秒/分钟 × 32,768 周期/秒)实 际 振 荡 器 周 期 加 上 512 个 周 期 或 减 去 256 个 周 期 。 每 125,829,120 个 周 期 增 加 512 个 周 期 相 当 于 4.068 ppm 6 ((512 周期/ 125,829,120 周期) x 10 ppm)。同样,每 125,829,120 个 周 期 减 去 256 个 周 期 相 当 于 -2.034 ppm 6 ((256 周期/ 125,829,120 周期) x 10 ppm)。 如果将‘0’值加载到校准寄存器的符号位(D5)内,表示 负向校准。对位 D4 至 D0 加载二进制‘1’、‘2’或 ‘3’,分别表示时钟的调整值为-2 ppm、-4 ppm 或-6 ppm,如此类推。最大二进制值‘31’表示对时钟调整值 为-63 ppm。 位 D5(符号位)中的‘0’值表示负向校准,并每百万周 期中被减去的周期数量 = 2.034 x < 校准位中的加载值 > ppm 公式 2 同样,符号位(D5)中的‘1’值表示正向校准 每百万周期中被增加的周期数量 = 4.068 x < 校准位中的加载值 > ppm 公式 3 所以,校准寄存器位(D4 至 D0)中加载的值‘1’将以 4 ppm 调整时钟;校准寄存器位(D4 至 D0)中加载的最大 值‘31’将以 126 ppm 调整时钟。 图 2. 振荡器分频器电路 X1 Low Power Oscillator 128 Hz Div by 64 Div by 4 Calibration Circuitry Clock Registers X2 512 Hz uncalibrated signal 32.768 kHz 晶 振 INT 1 Hz signal calibrated over a 64 min cycle From calibration register INT Controlled by CAL bit in flags register www.cypress.com 文档编号:001-92143 版本** 2 赛普拉斯nvSRAM中的实时时钟校准 图 3. 时钟分裂和时钟消隐 Δt 额定频率的振荡(0 ppm 误差) 频率低于额定值的振荡(负 值误差) 以正向校准或时钟分离方法 进行纠正 频率大于额定值的振荡(正值 误差) 以负向校准或时钟消隐方法 进行纠正 设置校准 计算时钟误差 校准/控制寄存器 设置校准值前,需要计算所需的校准量。当标志寄存器中的 CAL 位(位 2)被置位时,INT 引脚将输出源于 32.768 kHz 晶振的未校准 512 Hz 时钟(如第 2 页上的图 2 所示)。该时 钟输出使能了应用程序,用于计算晶振输出频率与 32.768 kHz 额定频率相对的误差。通过实际频率与 512 Hz 频 率相对的偏离,可以确定所需纠正的大小和方向。使用公式 4 来计算误差(单位为 ppm): 要想设置校准,请将合适值写入位于 RTC 寄存器映射表中的 校准/控制寄存器内(请参考相关器件数据手册中的 RTC 寄存 器映射表)。校准/控制寄存器的位 D7 是振荡器的使能位; 仅在该位被设为 0 时,振荡器才会运行。位 D6 未使用,并被 读取为 0。位 D5 是校准符号位。将校准符号位 D5 设置为 ‘1’,表示正向校准,并根据校准位[D4:D0]所指定的值向上 调整。将校准符号位 D5 设置为‘0’,则表示负向校准,并 根据校准位[D4:D0]所指定的值向下调整。位 D4 至 D0 中的二 进制值介于 0 至 31 范围,用于确定要实现的校准量(如第 2 页上的公式 2 和公式 3 所示)。 表 1. 校准/控制寄存器 D7 D6 D5 OSCEN 0 校准符号 www.cypress.com D4 D3 D2 校准值 D1 D0 𝐸𝑟𝑟𝑜𝑟 𝑖𝑛 𝑝𝑝𝑚 = (𝑀𝑒𝑎𝑠𝑢𝑟𝑒𝑑 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 – 512 )𝐻𝑧 512 𝐻𝑧 × 106 𝑝𝑝𝑚 公式 4 例如,如果设置标志寄存器中的 CAL 位后,INT 引脚输出的 频率为 512.01024 Hz,表示振荡器频率误差为 20 ppm。由 于所需的纠正为-20 ppm,需要将-10 (001010)值加载到校准 寄存器内。请注意,设置或改变校准寄存器位不会影响 INT 引脚输出的频率。第 4 页上的表 2 列出了每个校准寄存器值 的校准量。 文档编号:001-92143 版本** 3 赛普拉斯nvSRAM中的实时时钟校准 表 2.nvSRAM RTC 中的校准调整 时间 1 (秒/月 ) 符号 校准值 调整量 (ppm) 0 0 1 00000 0 0 -2 -5 1 00001 4 11 -4 -11 1 00010 8 21 00011 -6 -16 1 00011 12 32 00100 -8 -21 1 00100 16 42 0 00101 -10 -26 1 00101 20 53 0 00110 -12 -32 1 00110 24 63 0 00111 -14 -37 1 00111 28 74 0 01000 -16 -42 1 01000 33 87 0 01001 -18 -47 1 01001 37 97 0 01010 -20 -53 1 01010 41 108 0 01011 -22 -58 1 01011 45 118 0 01100 -24 -63 1 01100 49 129 0 01101 -26 -68 1 01101 53 139 0 01110 -28 -74 1 01110 57 150 0 01111 -31 -81 1 01111 61 160 0 10000 -33 -87 1 10000 65 171 0 10001 -35 -92 1 10001 69 181 0 10010 -37 -97 1 10010 73 192 0 10011 -39 -102 1 10011 77 202 0 10100 -41 -108 1 10100 81 213 0 10101 -43 -113 1 10101 85 223 0 10110 -45 -118 1 10110 89 234 0 10111 -47 -124 1 10111 94 247 0 11000 -49 -129 1 11000 98 258 0 11001 -51 -134 1 11001 102 268 0 11010 -53 -139 1 11010 106 279 0 11011 -55 -145 1 11011 110 289 0 11100 -57 -150 1 11100 114 300 0 11101 -59 -155 1 11101 118 310 0 11110 -61 -160 1 11110 122 321 0 11111 -63 -166 1 11111 126 331 符号 校准值 0 00000 0 00001 0 00010 0 0 调整量 (ppm) 时间 1 (秒/月 ) 注意 1:一个月 = 365/12 天 总结 赛普拉斯 nvSRAM RTC 器件提供的简单校准特性改善了计时精度。该方案并不提供补偿偏差(由于环境温度变化而动态变化导 致)的自动调整选项。但是,RTC 校准方法能够提高精度并补偿任何预测的温度漂移。 www.cypress.com 文档编号:001-92143 版本** 4 赛普拉斯nvSRAM中的实时时钟校准 文档修订记录 文档标题: AN53313 — 赛普拉斯 nvSRAM 中的实时时钟校准 文档编号:001-92143 修订版 ECN 变更者 提交日期 ** 4345936 WAHY 06/16/2014 www.cypress.com 变更说明 本文档版本号为 Rev**,译自英文版 001-53313 Rev*C。 文档编号:001-92143 版本** 5 赛普拉斯nvSRAM中的实时时钟校准 全球销售和设计支持 赛普拉斯公司拥有一个由办事处、解决方案中心、工厂代表和经销商组成的全球性网络。要找到离您最近的办事处,请访问赛普 拉斯所在地。 PSoC®解决方案 产品 汽车 cypress.com/go/automotive psoc.cypress.com/solutions 时钟与缓冲区 cypress.com/go/clocks PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP 接口 cypress.com/go/interface 赛普拉斯开发者社区 照明和电源控制 cypress.com/go/powerpsoc cypress.com/go/plc 存储器 cypress.com/go/memory PSoC cypress.com/go/psoc 触摸感应 cypress.com/go/touch USB 控制器 cypress.com/go/usb 无线/射频 cypress.com/go/wireless 社区 | 论坛| 博客 | 视频 | 培训 技术支持 cypress.com/go/support 此处引用的所有商标或注册商标归其各自所有者所有。 赛普拉斯半导体 198 Champion Court San Jose, CA 95134-1709 电话 传真 网站 :408-943-2600 :408-943-4730 :www.cypress.com ©赛普拉斯半导体公司,2009-2014。此处所包含的信息可能会随时更改,恕不另行通知。除赛普拉斯产品内嵌的电路外,赛普拉斯半导体公司不对任何 其他电路的使用承担任何责任。也不根据专利或其他权利以明示或暗示的方式授予任何许可。除非与赛普拉斯签订明确的书面协议,否则赛普拉斯产品不 保证能够用于或适用于医疗、生命支持、救生、关键控制或安全应用领域。此外,对于合理预计会发生运行异常和故障并对用户造成严重伤害的生命支持 系统,赛普拉斯将不批准将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统,则表示制造商将承担因此类使用而招致的所有风险, 并确保赛普拉斯免于因此而受到任何指控。 该源代码(软件和/或固件)均归赛普拉斯半导体公司(赛普拉斯)所有,并受全球专利法规(美国和美国以外的专利法规)、美国版权法以及国际条约 规定的保护和约束。赛普拉斯据此向获许可者授予适用于个人的、非独占性、不可转让的许可,用以复制、使用、修改、创建赛普拉斯源代码的派生作品、 编译赛普拉斯源代码和派生作品,并且其目的只能是创建自定义软件和/或固件,以支持获许可者仅将其获得的产品依照适用协议规定的方式与赛普拉斯 集成电路配合使用。除上述指定用途外,未经赛普拉斯的明确书面许可,不得对此类源代码进行任何复制、修改、转换、编译或演示。 免责声明:赛普拉斯不针对该材料提供任何类型的明示或暗示保证,包括(但不仅限于)针对特定用途的适销性和适用性的暗示保证。赛普拉斯保留在不 另行通知的情况下对此处所述材料进行更改的权利。赛普拉斯不对此处所述之任何产品或电路的应用或使用承担任何责任。对于合理预计可能发生运转异 常和故障,并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统,则表示制 造商将承担因此类使用而导致的所有风险,并确保赛普拉斯免于因此而受到任何指控。 产品使用受适用的赛普拉斯软件许可协议限制并完全按照次此协议使用。 www.cypress.com 文档编号:001-92143 版本** 6