AN3060 应用笔记 串行实时时钟(RTC)应用指南 Doug Sams 前言 ST 串行实时时钟(RTC)系列产品广受用户欢迎。多年来,关于这些器件的许多问题已被支持它们的应 用程序组解决了。本文档汇集了一些已解决的最普遍问题,包括晶振的布线考虑到上电时正确的软件访问。 这会帮助读者理解 RTC 的一些精微之处,以及怎样保持其可靠运行。 2015 年 11 月 DocID16253 Rev 1 [English Rev 3] 1/25 www.st.com 目录 AN3060 目录 1 2 电池连接和充电保护 ........................................................................... 5 1.1 串联电阻 ............................................................................................ 5 1.2 电池上的去耦电容 ............................................................................. 5 1.3 阻断二极管 ........................................................................................ 6 1.4 面向 ST 实时时钟的 Underwriters Laboratories 文件 ......................... 6 1.5 电池安装 ............................................................................................ 7 布局考虑 ............................................................................................. 8 2.1 3 振荡器电路.......................................................................................... 9 3.1 4 除了晶振之外,还需要添加什么其他元件来使 RTC 振荡器正确工作? .......................................................................................................... 9 负超调 ............................................................................................... 11 4.1 5 RTC 晶振的某些基本布局考虑是什么? ............................................ 8 负超调会影响我的实时时钟工作吗?如何影响?如何防止该影响? 11 切换电压 ........................................................................................... 12 5.1 切换电压是否依赖于电池电平?或者它始终是一个固定值?RTC 的 最大电池电压是多少? ................................................................................. 12 6 振荡器失效检测 ................................................................................ 15 6.1 7 电池低电平检测 ................................................................................ 16 7.1 8 挂起位(HT)有什么作用?如何使用它?....................................... 18 RTC 初始化....................................................................................... 21 9.1 10 电池低电平位是如何工作的?它能检测缺失的电池吗? .................. 16 挂起(HT)位 ................................................................................... 18 8.1 9 什么是 OF 位?它如何工作? .......................................................... 15 初次上电时访问 RTC 的最佳时序是什么?后续上电呢? ................ 21 版本历史 ........................................................................................... 24 DocID16253 Rev 1 [English Rev 3] 2/25 表格索引 AN3060 表格索引 表 1:取消选择和切换阈值总结 ................................................................................................................ 13 表 2:M41T81S 寄存器映射 ..................................................................................................................... 16 表 3:M41ST85W 寄存器映射 .................................................................................................................. 18 表 4:文档版本历史 .................................................................................................................................. 24 表 5:中文文档版本历史 ........................................................................................................................... 24 DocID16253 Rev 1 [English Rev 3] 3/25 图表索引 AN3060 图表索引 图 1:RTC/NVRAM 中的电池切换电路 ........................................................................................................ 5 图 2:VBAT 通路上二极管的影响 ................................................................................................................ 6 图 3:SNAPHAT SOIC 封装 ........................................................................................................................ 6 图 4:带有固定片的钮扣电池 ....................................................................................................................... 7 图 5:布局考虑 ............................................................................................................................................ 8 图 6:内置负载电容 ..................................................................................................................................... 9 图 7:典型寄生二极管................................................................................................................................ 11 图 8:负超调保护 ....................................................................................................................................... 11 图 9:典型切换电路 ................................................................................................................................... 12 图 10:切换电路 ........................................................................................................................................ 13 图 11:振荡器失效检测电路 ...................................................................................................................... 15 图 12:电池监测功能 ................................................................................................................................. 17 图 13:时钟和非时钟寄存器 ...................................................................................................................... 19 图 14:M41T83/M41T82 上电默认值 ........................................................................................................ 21 图 15:初次上电 ........................................................................................................................................ 22 图 16:从备份上电 ..................................................................................................................................... 23 DocID16253 Rev 1 [English Rev 3] 4/25 电池连接和充电保护 AN3060 电池连接和充电保护 1 ST 串行实时时钟的电池连接非常简单。充电保护电路置入 RTC 中,因此无需外部电阻和二 极管。而且,向电池通路上增加元件可能带来有害影响。例如,电池通路上的串联电阻会引 起切换问题,这会对一些器件中的电池监测电路带来不利影响。 1.1 串联电阻 所有具有切换电路的 ST 串行 RTC,在其电池通路上还含有限流电阻。下图中, Underwriters Laboratories 需要 RB。它将流入电池的任意电流都限制为小于 1 mA。由于这 是置入器件中的,因此不需要外部电阻。 图 1:RTC/NVRAM 中的电池切换电路 RTC/NVRAM中的电池切换电路 中的电池切换电路 RTC/NVRAM 通常不需要二极管。保护二 通常不需要二极管。保护二 极 极管内置入器件。外部二极 管内置入器件。外部二极管 会 管会引起可能有害的压降。 引起可能有害的压降。 VVCC CC 无需电阻。保护电阻内置入器 无需电阻。保护电阻内置入器 件。外部电阻会引起错误的电 件。外部电阻会引起错误的电 池低电平警告(在具有电池监 池低电平警告(在具有电池监 测功能的器件上)。 测功能的器件上)。 PP 2 (当V 低于切换电压时断开2) (当V CCCC低于切换电压时断开 ) VSO VSO 内部V 内部V CCCC VVBAT BAT (1) (1) (1)(1) RR AA RR BB D1D1 电池 电池 DD AA DD BB PP (当VCC低于切换电压 VSO VSO (当V CC低于切换电压 2 2 时导通 )) 时导通 无需电容。可能存在泄漏通路 , 无需电容。可能存在泄漏通路 , 会缩短电池寿命。 会缩短电池寿命。 1.2 1.1.RRA是ESD保护电阻, RB是电池保护电阻, UL需要它们。 是ESD保护电阻, RB是电池保护电阻, UL需要它们。 A 2.2.根据器件不同,切换取决于电池电压或由一个固定参考设定。 根据器件不同,切换取决于电池电压或由一个固定参考设定。 电池上的去耦电容 用户常常会在每个供电引脚上添加一个去耦电容。但是,在这种应用中,电容中的漏电流可 能会达到或高于备份电流。也就是说,由于该电容上的泄漏,用户会发现电池寿命将明显缩 短。此外,电池具有很好的电容特性,因此无需外部电容。 DocID16253 Rev 1 [English Rev 3] 5/25 电池连接和充电保护 AN3060 1.3 阻断二极管 当系统由 VCC 供电时,图示的二极管 D1 阻断了从 VCC 流回电池的电流。因此不需要外部二 极管来实现(上述阻断)。 一些应用中,备份电源可能高于 RTC 的额定最大电池电压。这种情况下,有些用户可能试 图利用二极管来降压。那样多少能够降低电压,但是用户应当注意,在实时时钟的电流消耗 极低时,如大约 300-500 nA,则二极管上的压降可能只有 200-300 mV,远低于通常与二极 管相关的 0.7 V。 另一项需要注意的是,当在 VBAT 通路上使用二极管时,它对备份寿命的影响。如下图所示, 当 VBB 降低于 VBAT-MIN 电平之下时,该部件会失效。当电池电压衰减,且该通路上有二极管 时,将更早地达到最小阈值,导致电池寿命损失。 图 2:VBAT 通路上二极管的影响 VBAT 通路上 二极管的影响 + VD – VBB RTC VBAT 电池 V VBB VBAT = V BB–V D tLOSS VBAT-MIN 支持RTC的最小电压 t 1.4 面向 ST 实时时钟的 Underwriters Laboratories 文件 对于 ST 的 SNAPHAT SOIC 封装中的器件,sec5_sna_rev1.pdf 是正确的 UL 文件。 对于其他所有的 RTC 封装,请参考 sec3_nba_rev1.pdf。 图 3:SNAPHAT SOIC 封装 可拆卸/可更换 SNAPHAT电池/ 晶体顶部 SNAPHAT SOIC DocID16253 Rev 1 [English Rev 3] 6/25 电池连接和充电保护 AN3060 1.5 电池安装 钮扣电池通常安装在电池座上。用户可以方便地拆卸和更换这些电池。某些情况下,当在恶 劣环境中使用时,由于震动或振动,电池座中的电池可能会随时失去连接。典型的结果是设 备内件损坏。带有固定片的电池将为这些应用提供更可靠的连接。 图 4:带有固定片的钮扣电池 DocID16253 Rev 1 [English Rev 3] 7/25 布局考虑 AN3060 2 布局考虑 2.1 RTC 晶振的某些基本布局考虑是什么? 对用于 ST 的 M41 系列实时时钟的 32 KHz 晶振,其布局考虑是明确的。 图 5:布局考虑 贴装晶体尽 贴装晶体尽 可能靠近 可能靠近 RTC RTC 围绕晶体连接添加保护环, 围绕晶体连接添加保护环, 并连接到 并连接到GND GND引脚 引脚 使接线较短 使接线较短 晶体 晶体 XIXI XO XO 振荡器电路中无需其他元件 振荡器电路中无需其他元件 RTC RTC GND GND 如果可能,在隔离层上添加局部 如果可能,在隔离层上添加局部地地 平面,与 接 平面,与 PCB PCB地平面隔离,并连 地平面隔离,并连接 到RTC的GND 到RTC的GND引脚 引脚 首要考虑的是引线长度。晶振应当安置于尽可能靠近 RTC 的位置,以保持线路较短。接地 的保护环围绕着这些连接,它非常重要,能够避免接收到不必要的噪声,这些噪声可能会影 响计时。 用户应当避免直接在此区域下面运行信号,除非信号与晶振连接之间有地平面。 当可能时,用户可以在保护环区域和晶体下面添加一个岛地平面。该平面在与保护环隔离的 层上,并与 PCB 地平面隔离。它通过 RTC 的 GND 引脚接地。 布局中没有显示其他元件,因为晶振是 RTC 振荡器工作所需的全部元件。不需添加外部负 载电容或偏置电阻。 DocID16253 Rev 1 [English Rev 3] 8/25 振荡器电路 AN3060 3 振荡器电路 3.1 除了晶振之外,还需要添加什么其他元件来使 RTC 振荡器正确工 作? 无。无需其他元件。ST 实时时钟具有内置负载电容。无需外部负载电容,也不需要外部电 阻。所需元件只有晶振。它必须是 32,768 Hz 表面晶体,且可针对内置于 RTC 的负载电容 确定额定值。 图 6:内置负载电容 无需外部负载电容 它们内置入 RTC 晶体 CX1 CX2 RX 无需外部电阻 XI XO 内部RTC电路 CL1 CL2 选择晶体使之匹配 RTC的额定负载电容 例如,6 pF或12.5 pF 无需其他元件即可使振荡器运行。添加任何外部元件都只会降低振荡器的准确性和可靠性。 额外的负载电容会使时钟变慢。低温下,这些电容或任意外部电阻可能会使振荡器无法启动。 匹配负载电容 每个 RTC 配备了内置负载电容。它们通常规定为 12.5 pF,或者在 M41T6x 系列中为 6 pF。 选用于 RTC 的晶体应当具有与之相同的额定值。失配晶体会导致略偏离其频率运行。例如, 额定值为 12.5 pF 的晶体需要具有此负载。如果它用于额定值为 6 pF 的 RTC,则晶体只能 具有 6 pF 而非规定的 12.5 pF,因此运行频率将变快。 DocID16253 Rev 1 [English Rev 3] 9/25 振荡器电路 AN3060 有效负载电容值与内部电容值 有时,读者发现会提到独立负载电容。有两个电容用于 RTC - 晶体每个管脚上有一个。每个 电容的实际值是额定或有效负载值的两倍 - 即,是数据手册中规定的负载值的两倍。这是由 于内部负载电容是串联添加的。图 6:"内置负载电容"中,有效负载电容为: CL = C L1 与C L2 串联 = C L1 • C L2 CL1+ C L2 因此,当 CL1 和 CL2 相等时,有效负载电容 CL - 其值在数据手册中列出 - 是 CL1 和 CL2 的一 半。额定为 12.5 pF 的 ST RTC 会有两个 25 pF 的电容,内置于其振荡器电路。建议读者注 意这一点。此外,读者还应注意,晶体规格应当匹配额定值 - 这种情况下为 12.5 pF - 而非独 立值。 DocID16253 Rev 1 [English Rev 3] 10/25 负超调 AN3060 4 负超调 4.1 负超调会影响我的实时时钟工作吗?如何影响?如何防止该影响? 所有场效应器件都具有固有的 - 所有 CMOS 器件 - 寄生二极管,它起因于器件中 P 型区和 N 型区的交接。每个 PN 结组成一个二极管,它在 P 区偏置高于 N 区的条件下导通。 在图 7:"典型寄生二极管"中,如果 VCC 充分降压至低于地,则寄生二极管将导通,从器件 中引出电流。VCC 上显著的负超调会使电流大到足以对实时时钟寄存器带来干扰,并因而对 计时产生不利影响。因此,应当避免负超调。 图 7:典型寄生二极管 VCC D G S N+ P N N+ 大部分 ST 实时时钟规定了最小 VCC 为–0.3 V,因此限制了负超调为低于地 0.3 V。 当重复开启电源时一些电源下降很快,会导致产生振铃,这会引起负超调状态,对实时时钟 带来问题。 在发生这种现象的极少数情形下,最佳保护方式是在 VCC 引脚上加一个反偏压肖特基二极管, 如图 8:"负超调保护"中所示。这已被证明是解决负超调问题非常可靠的修复方法。 图 8:负超调保护 VCC RTC VCC XI XO 1N5817(通孔) BAT54J(表面贴装) SDA SCL VSS DocID16253 Rev 1 [English Rev 3] 11/25 切换电压 AN3060 5 切换电压 5.1 切换电压是否依赖于电池电平?或者它始终是一个固定值?RTC 的最大电池电压是多少? 图 9:典型切换电路 VCC VCC VCC-INT VBAT VCC-INT VBAT VSO VSO 具有固定参考 具有电池参考 电源失效取消选择电压 VPFD 当 VCC 降低至电源失效取消选择电平 VPFD 时,取消选择部件,并因而切断与主设备的联系; 它是写保护的。 对于 ST 串行实时时钟,VPFD 等于切换电压 VSO,或是其函数。因此,取消选择和切换操作 紧密相关。 切换电压 VSO 切换使得备份电源-通常是电池,但有时是电容或超级电容,和器件内部的 Vcc 之间建立连接。 Vso 的值被定义为在部件切换至 Vbat 时的 Vcc 值。 固定参考 大部分 ST 串行实时时钟针对切换阈值使用了一个固定的精确参考。不管 VBAT 是多少,部件 总是在相同的 VCC 电平下取消选择和切换。 电池参考 一些老旧的 RTC 使用电池作为参考。RTC 内部、电池引脚上应用了一个二极管压降,该电 平决定了切换阈值。典型地,该二极管压降为 0.5 V,但它可在 0.3 至 0.8 V 之间变化。对于 全新的锂钮扣电池,电压输出可高达 3.5 V。(当加载一段时间,它将会降低至大约 3.0 V, 并在电池使用寿命中保持为该值。) 低温下,二极管压降会趋近于最小值 0.3 V。这意味着, 使用新电池并在低温下,切换阈值可高达 3.5 - 0.3 = 3.2 V。此外还表明,部件在 3.3 V 应用 中使用电池参考可能是有问题的,且对于 3.0 V 应用并不适用。这些情况下,用户应当选择 具有固定参考的部件。例如,具有固定参考的 M41T81S 能很好地适用于 3.3 V 和 3.0 V 应用, 且对于原先的 M41T81(非 S)也是简易普适的替代品。 DocID16253 Rev 1 [English Rev 3] 12/25 切换电压 AN3060 表 1:取消选择和切换阈值总结 切换和取消选择参数 根产品编号 VPFD VSO VBAT-MAX VBAT – 0.5 VBAT – 0.5 VCC 2.8 2.0 < VBACK < VPFD : VBACK VBACK > VPFD : VPFD VCC 2.6 V VBAT < VPFD : VBAT VBAT > VPFD : VPFD VCC M41T11 VBAT – 0.5 VBAT – 0.5 VCC M41T56 1.25 x VBAT VBAT 3.5 V M41T81 VBAT – 0.5 VBAT – 0.5 VCC M41T81S 2.6 V VBAT < VPFD : VBAT VBAT > VPFD : VPFD VCC M41T82 VRST(1) VRST(1) VCC(max) M41T83 VRST (1) (1) VCC(max) M41ST85W 2.6 V 2.5 V VCC(max) M41ST87W 2.62 V, THS = 0 2.88 V, THS = 1 2.5 V VCC(max) M41T93 VRST(1) VRST(1) VCC(max) M41T94 2.6 V 2.5 V VCC(max) M41T00 M41T00AUD M41T00S VRST 注: (1) 复位电压 VRST 可指定为 2.32,2.63 或 2.93 V。 复合切换阈值 一些器件使用了更加复杂的切换电路,应选择 VPFD 和 VBAT 中的较小者作为切换阈值。这确 保部件在切换为备份电源之前能够尽可能长时间地保持在 VCC,因此能够稍微延长备份寿命。 图 10:切换电路 VCC VCC-IN T VBAT VSO DocID16253 Rev 1 [English Rev 3] 13/25 切换电压 AN3060 最大电池电平 VBAT 最大值在 ST 的不同串行 RTC 系列产品中是不同的。它与硅制造工序及设计过程中所做 考虑相关。对于大部分部件,最大值为 VCC(max) (通常为 5.5 V)。 对于以 VCC 为限制的部件,如果 VBAT 超过了 VCC,则 CMOS 工艺中固有的寄生二极管会导 通,因而会在器件内引起问题。显然,备份过程中 VBAT 是可以高于 VCC 的(当 VCC 为 0 时)。 但是当工作于激活模式时,对于这些部件,VBAT 应不超过 VCC。 要明确的是,当 VCC 是 VBAT 所列限制时,此限制实际上是 VCC 工作电平而非 VCC-MAX。相反, 当限制是 VCC(max)时,则无论 VCC 工作电平是多少,VBAT 限制是 VCC(max)。 DocID16253 Rev 1 [English Rev 3] 14/25 振荡器失效检测 AN3060 6 振荡器失效检测 6.1 什么是 OF 位?它如何工作? OF 是振荡器失效位,当实时时钟在分频器链的 4 KHz 流中检测到大约 4 至 6 个连续丢失脉 冲时置位。 图 11:振荡器失效检测电路 时间常数设置为4-6个脉冲 振荡器失效检测电路 V CC 4KHz OSC 晶体 TFF (÷ 2) TFF (÷ 2) TFF (÷ 2) 置位 Q OF 一个 RC 电路用作积分器。4 KHz 脉冲使其保持放电,它在脉冲之间缓慢地充电。如果丢失 了足够多的脉冲,它会充电至足够高,可以触发比较器并置位 OF 位。上图中,在低工作电 压时,由于阈值电压较低,时间常数将变短。因此,需要更少的丢失脉冲即可触发 OF 位。 OF 功能的基本任务是指示振荡器变慢或停止(可能发生在电容支持的应用中),或指示备 份电池失效。当备份电压降到足够低,部件可能会停止计时,但是寄存器不一定会复位;该 电压可能不会降低至足以完全复位部件。接着,上电后几乎无须读取寄存器,振荡器就可以 开始运行,而且这些操作导致时间部件是否曾经停止工作变得不明确。OF 位克服了此问题。 它为系统软件提供了一种监控计时功能并了解何时向终端用户提醒时间可能需要调整的方法。 初次上电或振荡器通过停止位关闭的时候,RC 电路充电,OF 位置位。用户应当在清零 OF 位之前使振荡器运行 4 秒。这样做不仅能为 RC 电路放电,也确保了振荡器稳定。 DocID16253 Rev 1 [English Rev 3] 15/25 电池低电平检测 AN3060 7 电池低电平检测 7.1 电池低电平位是如何工作的?它能检测缺失的电池吗? 表 2:M41T81S 寄存器映射 地址 D7 D6 00h D5 D4 D3 D2 0.1秒 D1 功能/范围 D0 BCD格式 0.01秒 秒 00-99 01h ST 10秒 秒 秒 00-59 02h 0 10分 分钟 分钟 00-59 03h CEB CB 小时(24小时格式) 世纪/小时 04h 0 0 05h 0 0 06h 0 0 07h 10小时 0 0 星期几 0 01-7 日:日期 日期 01-31 月 月 01-12 年 年 00-99 10M 10年 校准 校准 08h OUT FT S 09h OFIE BMB4 BMB3 BMB2 0Ah AFE SQWE ABE Al 10M 0Bh RPT4 RPT5 AI 10日 0Ch RPT3 HT 0Dh RPT2 0Eh RPT1 0Fh WDF AF 0 BL 0 OF 0 0 标志 10h 0 0 0 0 0 0 0 0 保留 11h 0 0 0 0 0 0 0 0 保留 12h 0 0 0 0 0 0 0 0 保留 13h RS3 RS2 RS1 RS0 0 0 0 0 SQW BMB1 00-23 日 0 10日 0-1/ BMB0 RB1 RB0 看门狗 报警(闹铃)月 Al月 01-12 闹钟日期 Al日期 01-31 报警(闹铃)时 Al时 00-23 报警(闹铃)10分钟 闹钟-分钟 Al分 00-59 报警(闹铃)10秒 报警(闹铃)秒 Al秒 00-59 AI 10时 许多 ST 串行实时时钟包含了电池监测功能,当电池为低电平时置位 BL 位。基本功能是周 期性地将电池与内部 2.5 V 参考进行比较,并在电池电压低于 2.5 V 时置位 BL 位。 DocID16253 Rev 1 [English Rev 3] 16/25 电池低电平检测 AN3060 图 12:电池监测功能 翻转 & 上电时 VBAT D 2.5V Q BL 翻转时 翻转 & 上电时 周期检测 每次 RTC 从备份模式上电时,以及每次时钟午夜翻转时(不在备份模式时),检测电池。 翻转检测过程中,装载电池以确保有效读取。 上电检测 当 RTC 处于备份模式时,其电池已经装载(或者负载),因此电池检测时无需负载。电池 具有足够缓慢的恢复时间,其输出不会迅速改变,因此在上电检测时不必装载它们。然而, 少数器件 - M41T82,M41T83,M41ST87W 和 M41T93 - 在上电检测时会主动进行装载。 检测无电池 - 开路 一些应用要求能够确定没有安装电池。理想状态下,无电池情况应读取为低电池电量,但是 当电池输入 VBAT 为开路 - 浮空 - 比较器输出则是不确定的。为了能够可靠地检测无电池情况, 在检测电池之前,电池节点上需要应用一个负载。在电池终端上(或器件无 B-引脚的情况下, 在 B+和地之间)应用的电阻,是实现该目的的有效负载。这在实际应用中不能实现,但在 实验室的开发过程中是有用的。 利用翻转来加载电池 由于午夜翻转检测过程中 RTC 在电池上应用了负载,那么系统通过将时间改变为接近午夜, 时钟翻转从而调用该负载(以检测电池),然后将时间设置回其先前时间加上一些增量,来 计算等待翻转所用的时间。这能够帮助在出厂试验时检测是否已安装电池。 例如,如果是 17:53:27,用户存储该值,将时钟设置为 23:59:59,等待 2 秒,读取 BL 位, 然后将时间设置回 17:53:29(17:53:27 + 2 秒)。如此,电池将在检测过程中装载,因此无 电池情况下会可靠地读取为电池低电平。 如上所述,一些 RTC 主动在上电过程中载入时钟,因此通过简单地周期启动器件就能够检 测出缺失电池。 DocID16253 Rev 1 [English Rev 3] 17/25 挂起(HT)位 AN3060 8 挂起(HT)位 8.1 挂起位(HT)有什么作用?如何使用它? 表 3:M41ST85W 寄存器映射 数据 地址 D7 D6 00h D5 D4 功能/范围 D3 D2 0.1秒 D1 BCD格式 D0 0.01秒 秒 00-99 01h ST 10秒 秒 秒 00-59 02h 0 10分 分钟 分钟 00-59 03h CEB CB 小时(24小时格式) 世纪/小时 04h TR 0 05h 0 0 06h 0 0 07h 10小时 0 0 星期几 0 01-7 日:日期 日期 01-31 月 月 01-12 年 年 00-99 10M 10年 校准 控制 08h OUT FT S 09h WDS BMB4 BMB3 BMB2 0Ah AFE SQWE ABE Al 10M 0Bh RPT4 RPT5 0Ch RPT3 HT 0Dh RPT2 0Eh RPT1 0Fh WDF AF 0 BL 0 0 0 0 标志 10h 0 0 0 0 0 0 0 0 保留 11h 0 0 0 0 0 0 0 0 保留 12h 0 0 0 0 0 0 0 0 保留 13h RS3 RS2 RS1 RS0 0 0 0 0 SQW BMB1 00-23 日 0 10日 0-1/ BMB0 RB1 RB0 看门狗 报警(闹铃)月 Al月 01-12 AI 10日 闹钟日期 Al日期 01-31 AI 10时 报警(闹铃)时 Al时 00-23 报警(闹铃)10分钟 闹钟-分钟 Al分 00-59 报警(闹铃)10秒 报警(闹铃)秒 Al秒 00-59 ST 的许多串行实时时钟都在寄存器中包含一个挂起位(HT)。此位用来对用户时钟寄存器 进行挂起更新。当 HT 置位,内部计数器继续计时,但是用户访问的缓冲/传输寄存器被冻结。 DocID16253 Rev 1 [English Rev 3] 18/25 挂起(HT)位 AN3060 图 13:时钟和非时钟寄存器 32KHz OSC 除以 32768 1 Hz 读 / 写缓冲 传输寄存器 计数器 计数器 2 SPI/I C 串行总线 串行传输 寄存器 秒 分 时 星期 日期 月 年 世纪 计数器 计数器 计数器 计数器 写标志 时钟计数器通过缓冲/ 传输寄存器缓冲 计数器 计数器 挂起位 非时钟寄存器 非时钟寄存器直接访问 方波 校准 向任意时钟寄存器写入会 引起写标志置位。 写周期结束时,如果写标志 置位,则缓冲/传输寄存器复 制到计数器中 看门狗 一致性 时钟计数器被缓存,以保证一致性。开始读取时钟寄存器时,器件会复制计数器到缓冲/传输 寄存器,然后在读周期持续时间内都不再对这些寄存器进行更新。(此时 HT 位不置位,但 是更新停止。)通过同时复制所有的计数器,寄存器中的值将全部来自于同一时间,因此是 一致的。 不一致示例 没有缓冲 / 传输寄存器时,如果用户在 23:59:59 时直接读取计数器,则读取秒寄存器会返回 59 秒。地址指针增加后,下一次读取将返回 59 分钟。下一次读取会返回 23 时,但是如果 时钟恰好在两次读取之间发生了增加,那么用户会看到 00 时。时间重置后,1 小时会出现 00:59:59,这是错误的。这是不一致的。 通过利用缓冲 / 传输寄存器来保存时间的复本,用户能够读取全部寄存器,而在读取过程中 其值不发生变化。 类似的,当应用需要改变计数器中的时间,则所有的计数器必须同时加载。因此,用户可连 续向缓冲 / 传输寄存器写入,每次传输写入的数据都复制到计数器中,从而对计数器一致加 载。 DocID16253 Rev 1 [English Rev 3] 19/25 挂起(HT)位 AN3060 写标志 复制计数器由一个内部写标志引起,该写标志在每次向缓冲传输寄存器进行写入时进行置位, 但是向其他(非时钟)寄存器写入时不会置位。例如,写看门狗或校准寄存器将不会置位写 标志,但是写秒或星期将置位该标志。 写周期结束时,当 I2C 总线上发生 STOP 条件,如果器件发现写标志置位,则它会复制所有 的缓冲传输寄存到时钟计数器。即便只有一个或两个缓冲/传输寄存器被应用覆盖,所有寄存 器都将会复制到计数器。 HT 位的自动置位 当器件掉电时,时间和日期被复制到缓冲/传输寄存器中,HT 位自动置位。上电时,用户能 够读取器件(HT 位仍置位),并从寄存器恢复掉电时间。这使得应用能够确定断电持续时 间(它在一些情况下是需要的)。只要 HT 位保持置位,读操作会返回掉电时间(假设未发 生写操作,没有改变缓冲/传输寄存器的内容)。 要读取当前时间,用户须首先清零(写入 0 到)HT 位。然后进行读取,将返回当前时间。 从当前时间减去掉电时间,得到断电时间长度。 HT 位置位时写入 电源故障时,缓冲/传输寄存器包含了掉电时间。如果用户向任一时钟寄存器进行写入(上表 中地址从 0x00 到 0x07),写标志将置位。因此,写周期结束时,计数器将从寄存器进行更 新。 如果 HT 位仍然置位,则缓冲/传输寄存器含有被写入值更改了的掉电时间。这样,写时序结 束时,被更改的掉电时间会写回计数器,因而会引起明显的时间丢失。 例子:设掉电时间/日期为 08 年 3 月 9 日,星期一,下午 7:23:44。上电时,此前已清零了 HT 位,用户在秒寄存器中写 ST 位,因而置位了写标志,但是不写其他位。写周期结束时, 当前时间将回到掉电的时间,因此明显丢失了时间。 相反地,如果 HT 位在写入之前清零,缓冲/传输寄存器将更新到当前时间。如前所述,写 ST 位会置位写标志,但是计数器的更新结果会将当前时间置回计数器中。它们会被已存在 于计数器中的值覆盖。不会发生时间丢失。 有关详细信息,请参见应用笔记 AN1572。 DocID16253 Rev 1 [English Rev 3] 20/25 RTC 初始化 AN3060 9 RTC 初始化 9.1 初次上电时访问 RTC 的最佳时序是什么?后续上电呢? 这对于不同器件是不同的,因而本文档不可能做出全面的回答。我们提供了一个针对 M41T83/M41T82 的示例。 初始化并访问 M41T83/M41T82 初次上电时,部件处于开始状态 - 报警(闹铃)和中断被禁用,看门狗和定时器也被禁用。 OUT 位为高电平,且频率测试位 FT 禁用。数字和模拟校准功能都置于中性点,且 OTP 位 置为 0,从而选择处于出厂值的用户模拟校准寄存器。(在嵌入式晶振[MY]封装中,OTP 仅 用于 M41T83。) 方波输出使能,并选择 32.768 kHz。(这使得器件可在初次上电时就将其用作参考,无需用 户干预。) 图 14:M41T83/M41T82 上电默认值 OSC失效 ST HT CB1:CB0 OUT FT 第一次上电 上电备份 0 IRQ1/FT/OUT引脚 报警(闹铃)1 1 00 1 0 0000000 UC 1 UC UC 0 0000000 0 1 UC UC 模拟校准 DCS, DC4:DC0 ACS, AC5:AC0 第一次上电 000000 00000000 从备份上电 UC UC SQWE TI/TP TIE TD1:TD0 0 0 00000 0 0 0 11 UC UC UC 0 UC UC UC 方波输出 数字校准 定时器 看门狗 BM4:BM0, OFIE OF A1IE ABE RPT15:11 TE RB1:RB0 报警(闹铃)2 RS3:RS0 OTP AL2E A2IE RPT25:21 1 1000 0 0 0 00000 UC UC UC UC UC UC 时钟寄存器 - 时,分,秒,年,月,日期 - 是未知的。仅定义了世纪位 CB1:CB0(00)。 停止位 ST 上电清零,从而使能 32 KHz 振荡器。但是,由于振荡器未曾运行(此次最初上 电之前),振荡器失效检测位 OF 将会被置位。 最后,如所有上电时的情况那样,HT 位置位。 DocID16253 Rev 1 [English Rev 3] 21/25 RTC 初始化 AN3060 初次上电 由于上电时大部分外设和报警(闹铃)功能未使能,因此初始化部件并不紧迫。唯一需要及 时关注的是上电即运行的方波功能。一些应用可能更倾向于禁用它或改变其频率。 下一项用户须做的是将 HT 位写为 0,然后设置时间和日期。(对于其他 RTC,此时,如果 ST 位为 1,则它应当被清除为 0。) 如果应用要被校准,则这应为下一步骤。 然后 OF 位应清零(写为 0)。自上电开始 - 自振荡器启动 - 在进行此步骤之前应当过去 4 秒的时间。如果实现了校准,则可从 4 秒中减去进行校准所需的时间,而如果校准花费时间 长于 4 秒,则无需额外的等待。在进行下一步骤之前,软件应当验证 OF 位仍然保持清零。 下面几项是可选的。如果要使用看门狗,则它可现在启动,假设软件将很快开始更新看门狗 的操作代码。否则,软件应当等待直至到达其主程序顶端,启动看门狗。 如果要使用定时器或报警(闹铃),则用户可再次设置它们,或再次等待直至到达主程序顶 端。那样将会避免处理器仍然运行其初始化程序时这些功能超时(中断)。 图 15:初次上电 第一次上电 选择: 改变方波频率或禁用它 清除 HT 位 写入时、分、秒、星期、 日期、月、年和世纪位 选择:将 OTP置为1,来 选择出厂模拟校准 (仅限 M41T83-MY ) 选择: 初始化模拟或数字校准 等待4秒,然后清除OF位 验证 OF位清零 选择:初始化看门狗 选择:初始化定时器 选择:初始化报警(闹铃) 1 选择:初始化报警(闹铃) 2 结束 DocID16253 Rev 1 [English Rev 3] 22/25 RTC 初始化 AN3060 从备份上电 备份后,首先要做的事是读取时间。在清零 HT 位之前,RTC 的缓冲/传输寄存器会包含掉电 时间。如果应用需要断电持续时间,那么就需要掉电时间。否则,可跳过此步骤。 下一步是通过向 HT 位写入 0 将其清零。在写入任一计时寄存器(地址为 0x00 至 0x07)之 前,将 HT 位清零非常重要。如果不这样做会导致破坏 RTC 计数器。 此时在应用程序流中,如果需要当前时间,则该时间会被读取。随着 HT 位清零,会通过读 取返回当前时间。 在服务来自 RTC 的任意中断时 - 例如报警(闹铃)或 OF - 必须将标志寄存器清零。大部分 标志位在读取时清除,但是 OF 位必须写为 0。并且,用户应当记住,清零报警(闹铃)标 志(AF1, AF2)和振荡器失效标志(OF)将清除相关联的中断。 图 16:从备份上电 从备份上电 选择:读取时间 /日期 (掉电时间) 清除 HT 位 选择:读取时间 /日期 (当前时间) off_duration = present_time time_of-power-down 清除任意标志 (读标志寄存器) 选择:重新初始化看门狗 选择: 重新使能 / 重新初始化定时器 结束 看门狗和定时器 最后,电源循环使看门狗和定时器始终被禁用。如果应用中使用了二者(看门狗和定时器) 之一,则需要重新初始化它们。 DocID16253 Rev 1 [English Rev 3] 23/25 版本历史 AN3060 10 版本历史 表 4:文档版本历史 日期 版本 变更 2009年11月4日 1 初始版本。 2012年7月16日 2 关于器件可用性的文本更新。 2015年8月17日 3 增加了第1节:"电池连接和充电保护" 表 5:中文文档版本历史 日期 版本 2015年11月4日 1 变更 中文初始版本。 DocID16253 Rev 1 [English Rev 3] 24/25 AN3060 重要通知 - 请仔细阅读 意法半导体公司及其子公司(“ST”)保留随时对 ST 产品和/或本文档进行变更、更正、增强、修改和改进 的权利,恕不另行通知。买方在订货之前应获取关于 ST 产品的最新信息。ST 产品的销售依照订单确认 时的相关 ST 销售条款。 买方自行负责对 ST 产品的选择和使用,ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。所有其他产品或服务名称均为其各自所有者的财产。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2015 STMicroelectronics - 保留所有权利 DocID16253 Rev 1 [English Rev 3] 25/25