常见的RTC芯片,大致可分为三类:
非集成RTC:只有RTC计时电路,不集成晶体,不集成温度补偿电路,这类芯片的计时精度主要取决于外接晶体的精度,而且受温度影响大,通常在室温环境下才能够保持较高的精度。
集成晶体的RTC:将RTC计时电路和晶体集成,但一般没有温度补偿电路,同样是只有在室温环境下才能够保持较高的精度。
集成RTC:RTC计时电路、晶体、温度补偿电路(含温度传感器)都集成在一颗芯片中,出厂时进行调校。这类RTC的计时精度可以做的很高,由于温度补偿电路,其受温度的影响非常小。
PT32x033综合这三者的优势和应用场景,集成的RTC支持内部低速RC震荡时钟(LSI)或低速外部晶体或陶瓷谐振器时钟(LSE),一个内部的高精度补偿机制提供最大0.953ppm的补偿单元,可以为血糖仪应用提供高精度和高准度的实时时钟。
图1.集成振荡电路的LSE时钟
仅需一个32.768Khz的晶振!即可实现LSE时钟。
PT32x033集成了片内的可变电容和可调电阻,作为振荡电路的负载电容和反馈电阻,可变电容支持2pF~30pF的调节,反馈电阻支持6~8MΩ的调节,降低了电容和电阻的成本,为PCB Layout提供更友好的支持。
两个寄存器被用于配置这些集成的分立器件:
外部低速时钟控制寄存器1(RCC_LSECR1)(地址0x4000_1828)
外部低速时钟控制寄存器2(RCC_LSECR2)(地址0x4000_182C)
注 调整负载电容时,应当考虑数据手册中给出的引脚电容。
实时时钟是一个独立的定时器,在系统复位时或低功耗模式下,RTC的设置不变,内部计数器仍旧计数。
RTC拥有一组日历寄存器组,一个连续计数的计数器用于更新这组寄存器,在相应软件配置下,可提供日历时钟的功能,修改这个日历寄存器组的值可以重新设置系统当前的时间和日期,计数器则从修改的时间点继续开始计数。
一组软件配置的闹钟寄存器组则用于支持RTC的闹钟功能,当闹钟发生时,中断或者标志置位。
内部的高精度补偿机制提供最大0.953ppm的补偿单元。
图2.RTC的框图
RTC的基本配置在标准库函数钟,仅需几个简单的步骤,如下图所示。
图3.RTC配置例程
注
2. 保障RTC正常运行,任何情况下,都应避免关闭RTC时钟源
通过设置RTC_CR寄存器(地址0x4001_3C00)的TME位为1以使能RTC补偿机制,通过配置RTC_TRIM寄存器的TRIM[8:0]位(地址0x4001_3C3C),以选择所要补偿的值,补偿机制公式如下:
其中:
TRTC_BEACON为1hz的时标信号周期值
T1hz为理论的1hz信号周期值
注
1. TRIM[8:0]为9位的有符号数
2. 补偿机制仅建议在MCU外部工作环境(温度、湿度)波动较小的场合使用
3. RTC补偿机制以时标信号为参考,使用时,需要使能时标信号输出
发表评论 取消回复