如何正確設計實(shí)時(shí)時(shí)鐘RTC?
RTC(Real_Time Clock)為整個(gè)電子系統提供時(shí)間基準,MCU、MPU、CPU均離不開(kāi)RTC電路設計,在設計RTC單元時(shí)應注意哪些事項?常見(jiàn)的RTC故障如何解決呢?
本文引用地址:http://dyxdggzs.com/article/201804/378274.htm一、什么是RTC
實(shí)時(shí)時(shí)鐘(Real_Time Clock)簡(jiǎn)稱(chēng)為RTC,主要為各種電子系統提供時(shí)間基準。通常把集成于芯片內部的RTC稱(chēng)為片內RTC,在芯片外擴展的RTC稱(chēng)為外部RTC。

圖1 時(shí)間格式
二、 RTC的發(fā)展
1、早期RTC
早期RTC常使用74/54系列、CC4000系列及555集成電路構建秒脈沖源,再利用分頻器、計數器、緩存器等得到分、時(shí)、日、月、年的計時(shí)信號,最后通過(guò)通信口送到處理器處理。由于電路搭建復雜且受器件特性影響較大,這樣的RTC往往精度差、功耗大且占用大面積PCB空間,且這類(lèi)產(chǎn)品面臨“2000年”的問(wèn)題(千年蟲(chóng)問(wèn)題詳見(jiàn)百度)。

圖2 千年蟲(chóng)問(wèn)題
2、中期RTC
這一時(shí)期的RTC出現在20世紀90年代,由于采用特殊CMOS工藝,因此功耗大為降低,典型值約0.5μA以下,供電電壓僅為1.4V以下。為節約寶貴的IO接口,通訊口也變?yōu)榇蟹绞?,出現了諸如三線(xiàn)SIO/四線(xiàn)SPI,部分產(chǎn)品采用2線(xiàn)I2C總線(xiàn)。封裝上采用SOP/SSOP封裝,體積大為縮小。得益于半導體技術(shù)的發(fā)展,這時(shí)的RTC精度、功耗等特性上得到實(shí)質(zhì)性提高,已具備萬(wàn)年歷功能甚至可以做到晶振停振自動(dòng)檢測功能。目前這類(lèi)RTC正被廣泛使用。

圖3 PCF8583
3、新一代RTC
最新一代RTC產(chǎn)品中,除了包含第二代產(chǎn)品所具有的全部功能,更加入了復合功能,如低電壓檢測,主備用電池切換功能,抗印制板漏電功能,且本身封裝更小(高度0.85mm,面積僅為2mm*2mm)。
三、RTC使用
RTC設計推薦方案如圖4所示,若采用I2C/SPI通信的RTC IC且已具備I2C/SPI驅動(dòng)程序,RTC的使用就顯得尤為簡(jiǎn)單,僅需要加上晶振電路就可以工作了。

圖4 RTC硬件電路
RTC設計電路簡(jiǎn)約而不簡(jiǎn)單,時(shí)鐘芯片的選擇、電路設計、器件放置、阻抗控制、PCB走線(xiàn)規范均會(huì )影響RTC的時(shí)間基準的穩定性,如圖5所示為致遠電子基于Cortex-A7架構的800MHz主頻的M6Y2C-256F256LI-T核心板以及配套硬件開(kāi)發(fā)指南,致遠電子每一款核心板均有提供標準的推薦電路,為設計者提供穩定可靠的設計參考。

圖5 提供完善硬件支持的核心板
軟件方面,我們僅以linux為例了解下RTC的使用。在內核配置中選擇與硬件匹配的RTC驅動(dòng),以生成正確的內核鏡像。

圖6 啟用PCF8563 RTC驅動(dòng)

圖7 啟用片內RTC
然后結合硬件測試RTC功能,使用命令date –-help獲取相關(guān)指令。hwclock –w命令將設置的時(shí)間同步到硬件,hwclock命令獲取RTC時(shí)間,判斷是否同步成功。

圖8 date命令(部分)

圖9 驗證保存狀態(tài)
四、RTC問(wèn)題
1、計時(shí)不準
RTC的主要職責就是提供準確的時(shí)間基準,計時(shí)不準的RTC毫無(wú)價(jià)值可言。目前部分MCU在片內已集成RTC,實(shí)際測試中在電池供電6小時(shí)環(huán)境下片內RTC的偏差在1-2分鐘。因此,若對實(shí)時(shí)時(shí)鐘有較高的要求則需優(yōu)先考慮外擴RTC,若能支持溫度自動(dòng)補償則精度更佳,如DS3231、PCF2129可以在后備電池供電時(shí)根據溫度變化自動(dòng)修改補償量。

圖10 常見(jiàn)RTC精度對比(供參考)
2、無(wú)法讀寫(xiě)
RTC無(wú)法讀寫(xiě)(通信)時(shí)可從軟、硬件兩方面考慮。軟件方面重點(diǎn)考慮通信驅動(dòng)的問(wèn)題,在嵌入式linux系統中常表現出RTC驅動(dòng)無(wú)法檢測到RTC的存在。比如在啟動(dòng)信息中打印pcf8563_get_datetime: read error,或者無(wú)法對I2C/SPI操作。這類(lèi)問(wèn)題可以使用帶協(xié)議解碼的示波器排查、驗證。

圖11 I2C協(xié)議解碼
硬件方面,以常用的I2C為例,最不可忽視的則是上拉電阻的使用。I2C上拉電阻選擇1K-10K為宜,可根據通信速率、長(cháng)度、節點(diǎn)數而定。在節點(diǎn)數多、干擾大時(shí)還應在SDA、SCL線(xiàn)上串聯(lián)100~200ohm左右的電阻,有效抑制干擾脈沖。另外,所有IC都有意外損壞的可能,必要時(shí)更換RTC芯片。

圖12 I2C上拉電阻使用
3、掉電不保存
這種情況最可能的原因是未使用備用電源或備用電源沒(méi)電了,應檢查硬件電源電路。軟件方面可能在用戶(hù)程序、自啟動(dòng)腳本中設置了RTC,每次重啟則將RTC恢復為默認值,這時(shí)應從啟動(dòng)打印信息或系統日志中排查。
評論