跳转到主要内容

RTC

RTC时钟偶发性延时或超时该怎么办?

demi /

在非常温的工作环境下,RTC时钟出现偶发性的延时或者超时现象。成熟的RTC电路设计看似简单,但如何保证RTC时钟的精确度?在出现偶发性异常现象时,如何快速定位和解决问题?本文将分享一个案例。

<font color="#33b1c8"><strong>案例情况</strong></font>

工控板使用了NXP的PCF8563 RTC 芯片方案,在研发做环境温度摸底测试的时候, RTC时钟出现偶发性延时或者超前现象,于是研发展开一系列的问题定位。

<font color="#33b1c8"><strong>排查分析</strong></font>

1、工控板使用了NXP的PCF8563 RTC 芯片方案,该方案是外置32.768kHz的石英晶体和电容,该RTC芯片的输出精度取决于其外接的石英晶体输出的时钟频率是否精准。

石英晶体本身输出频率带有一定的误差,常温25℃下,频率的误差为±20ppm,平均误差可达5分钟/年。且随着时间的增加,晶体电路元件的缓慢变化会造成长期性的频率漂移。同时,在外部温度较为极端的时候,时钟震荡回路可能出现异常,影响到RTC的正常计时。

如何正确设计实时时钟RTC?

judy /

<font color="#33b1c8"><strong>一、什么是RTC</strong></font>

实时时钟(Real_Time Clock)简称为RTC,主要为各种电子系统提供时间基准。通常把集成于芯片内部的RTC称为片内RTC,在芯片外扩展的RTC称为外部RTC。

<center><img src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011052-38946-1.jpg&q…; alt="如何正确设计实时时钟RTC?"></center><center><i>图1 时间格式</i></center>

<font color="#33b1c8"><strong>二、 RTC的发展</strong></font>

MSP430单片机之RTC-实时时钟

judy /

RTC-Real Time Clock是430单片机的实时时钟模块,可以配置成实时时钟模式(万年历)或者一般目的的32位计数器模式,其中实时时钟模式提供了年月日、时分秒,可以选择BCD码或者二进制格式,并且具有可编程的闹钟。RTC模块支持中断。相关寄存器请参阅430系列单片机user's guide(我用的是5438A)。

<strong>1.计数器模式</strong>

实时时钟控制器寄存器1 RTCMODE位被重置时,计数器模式被选择,通过软件设置可以得到一个32位的计数器。从时钟模式切换到计数器模式是通过重置计数值:RTCNT1、RTCNT2、RTCNT3、RTCNT4 和 预换算计数器:RT0PS、RT1PS。

计数器的增量计数器来自ACLK、SMCLK或者分频之后的ACLK、SMCLK。分频系数来自分频除法器RT0PS、RT1PS。RT0PS的输出可以和RT1PS的输出级联构成32位计数器的时钟源。4个独立的8位计数器级联成为32位的计数器。这能提供计数时钟的8位、16位、24位、32位溢出中断。RTCTEV位选择各自的触发,通过设置RTCTEVIE位,一个RTCTEV能够触发一个中断。计数器RTCNT1到RTCNT4都可以单独访问,并可能被写入数值。