如何正确设计实时时钟rtc?-u球体育app下载

嵌入式 > 嵌入式开发 > 详情

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

发布时间:2024-09-19 发布时间:
|

rtc(real_timeclock)为整个电子系统提供时间基准,mcu、mpu、cpu均离不开rtc电路设计,在设计rtc单元时应注意哪些事项?常见的rtc故障如何解决呢?

一、什么是rtc

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

图1时间格式

二、rtc的发展

1、早期rtc

早期rtc常使用74/54系列、cc4000系列及555集成电路构建秒脉冲源,再利用分频器、计数器、缓存器等得到分、时、日、月、年的计时信号,最后通过通信口送到处理器处理。由于电路搭建复杂且受器件特性影响较大,这样的rtc往往精度差、功耗大且占用大面积pcb空间,且这类产品面临“2000年”的问题(千年虫问题详见百度)。

图2千年虫问题

2、中期rtc

这一时期的rtc出现在20世纪90年代,由于采用特殊cmos工艺,因此功耗大为降低,典型值约0.5μa以下,供电电压仅为1.4v以下。为节约宝贵的io接口,通讯口也变为串行方式,出现了诸如三线sio/四线spi,部分产品采用2线i2c总线。封装上采用sop/ssop封装,体积大为缩小。得益于半导体技术的发展,这时的rtc精度、功耗等特性上得到实质性提高,已具备万年历功能甚至可以做到晶振停振自动检测功能。目前这类rtc正被广泛使用。

图3pcf8583

3、新一代rtc

最新一代rtc产品中,除了包含第二代产品所具有的全部功能,更加入了复合功能,如低电压检测,主备用电池切换功能,抗印制板漏电功能,且本身封装更小(高度0.85mm,面积仅为2mm*2mm)。

三、rtc使用

rtc设计推荐方案如图4所示,若采用i2c/spi通信的rtcic且已具备i2c/spi驱动程序,rtc的使用就显得尤为简单,仅需要加上晶振电路就可以工作了。

图4rtc硬件电路

rtc设计电路简约而不简单,时钟芯片的选择、电路设计、器件放置、阻抗控制、pcb走线规范均会影响rtc的时间基准的稳定性,如图5所示为致远电子基于cortex-a7架构的800mhz主频的m6y2c-256f256li-t核心板以及配套硬件开发指南,致远电子每一款核心板均有提供标准的推荐电路,为设计者提供稳定可靠的设计参考。

图5提供完善硬件支持的核心板

软件方面,我们仅以linux为例了解下rtc的使用。在内核配置中选择与硬件匹配的rtc驱动,以生成正确的内核镜像。

图6启用pcf8563rtc驱动

图7启用片内rtc

然后结合硬件测试rtc功能,使用命令date–-help获取相关指令。hwclock–w命令将设置的时间同步到硬件,hwclock命令获取rtc时间,判断是否同步成功。

图8date命令(部分)

图9验证保存状态

四、rtc问题

1、计时不准

rtc的主要职责就是提供准确的时间基准,计时不准的rtc毫无价值可言。目前部分mcu在片内已集成rtc,实际测试中在电池供电6小时环境下片内rtc的偏差在1-2分钟。因此,若对实时时钟有较高的要求则需优先考虑外扩rtc,若能支持温度自动补偿则精度更佳,如ds3231、pcf2129可以在后备电池供电时根据温度变化自动修改补偿量。

图10常见rtc精度对比(供参考)

2、无法读写

rtc无法读写(通信)时可从软、硬件两方面考虑。软件方面重点考虑通信驱动的问题,在嵌入式linux系统中常表现出rtc驱动无法检测到rtc的存在。比如在启动信息中打印pcf8563_get_datetime:readerror,或者无法对i2c/spi操作。这类问题可以使用带协议解码的示波器排查、验证。

图11i2c协议解码

硬件方面,以常用的i2c为例,最不可忽视的则是上拉电阻的使用。i2c上拉电阻选择1k-10k为宜,可根据通信速率、长度、节点数而定。在节点数多、干扰大时还应在sda、scl线上串联100~200ohm左右的电阻,有效抑制干扰脉冲。另外,所有ic都有意外损坏的可能,必要时更换rtc芯片。

图12i2c上拉电阻使用

3、掉电不保存

这种情况最可能的原因是未使用备用电源或备用电源没电了,应检查硬件电源电路。软件方面可能在用户程序、自启动脚本中设置了rtc,每次重启则将rtc恢复为默认值,这时应从启动打印信息或系统日志中排查。



『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
intel 独立显卡iris xe max亮相.性能超越mx450
网站地图