導(dǎo)讀
嵌入式系統(tǒng)運(yùn)行時(shí),RTC 時(shí)鐘受多種因素干擾致延時(shí)或超時(shí),影響系統(tǒng)時(shí)間同步與功能穩(wěn)定。本文將提出從硬件適配到軟件算法優(yōu)化的綜合性方案,以解決此問(wèn)題,保障 RTC 時(shí)鐘的精確性與可靠性。
引起延時(shí)和超時(shí)的主要原因是計(jì)時(shí)系統(tǒng)使用的基準(zhǔn)頻率32.768Khz精度不夠。MCU片內(nèi)自帶的RTC功能電路由于受到芯片集成工藝的影響一般計(jì)量精度都比較差而且功耗也比較大,一般在對(duì)時(shí)鐘精度要求比較高的情況下建議直接使用外部RTC專用時(shí)鐘芯片,比如PCF8563/PCF85063,下表列出了不同RTC芯片的時(shí)鐘精度。
圖1 不同RTC芯片的時(shí)鐘精度
在選擇高精度的RTC時(shí)鐘芯片后,還需注意32.768Khz晶振的匹配電容選型是否符合晶振設(shè)計(jì)手冊(cè)的要求。
圖2 晶振的匹配電容負(fù)載電容CL 的計(jì)算公式:
其中:CL1、CL2 :晶振匹配電容;Cstray:電路板雜散電容
圖3 晶體的連接方式及器件參數(shù)
代入數(shù)值:CL =[(15*15)/(15+15)]+5=12.5pF以上是通過(guò)硬件電路設(shè)計(jì)的優(yōu)化來(lái)提高時(shí)鐘精度,但由于生產(chǎn)工藝、芯片差異等其它不可控因素的存在,實(shí)際的時(shí)鐘精度會(huì)存在一定偏差,在時(shí)鐘頻偏穩(wěn)定的情況下還可以通過(guò)軟件方式進(jìn)一步對(duì)時(shí)鐘精度進(jìn)行補(bǔ)償,即通過(guò)設(shè)置RTC內(nèi)部的補(bǔ)償寄存器來(lái)補(bǔ)償時(shí)間。補(bǔ)償寄存器的基本原理是通過(guò)增加或者減少時(shí)鐘的修正脈沖來(lái)補(bǔ)償時(shí)間而不是改變晶振的頻率,如圖4所示,補(bǔ)償寄存器的bit7設(shè)置補(bǔ)償?shù)哪J?,bit[6:0]設(shè)置補(bǔ)償?shù)闹怠?/p>
圖4 補(bǔ)償寄存器描述
1. 補(bǔ)償值計(jì)算方法
一計(jì)算流程如圖5所示。
圖5 補(bǔ)償值計(jì)算方法一
- 先用頻率計(jì)或者高精度的示波器測(cè)量PCF8563芯片pin7腳CLKOUT的頻率Fmeas(軟件要先設(shè)置pin7輸出才可測(cè)到波形);
- 轉(zhuǎn)化成時(shí)間tmeas;
- 計(jì)算和理想時(shí)鐘32.768KHz周期的偏差Dmeas;
- 根據(jù)測(cè)量值計(jì)算ppm的偏移量;
- 根據(jù)設(shè)置模式計(jì)算補(bǔ)償寄存器的值,如圖中32768.48Hz計(jì)算得到的ppm偏移量是14.648ppm,如果是模式0,則算出來(lái)的補(bǔ)償值為3.375,四舍五入取值3。
根據(jù)補(bǔ)償計(jì)算方式的算式整合簡(jiǎn)化,若測(cè)得實(shí)際頻率F實(shí)測(cè)值,ppm的偏移量Eppm可以用以下公式快速計(jì)算:
如上補(bǔ)償校準(zhǔn)計(jì)算框架圖32768.48Hz算出來(lái)的值也是14.648。由此可見(jiàn),若F實(shí)測(cè)值≥32768Hz,則算出的補(bǔ)償值≥0;若F實(shí)測(cè)值<32768Hz,則算出的補(bǔ)償值<0。
2. 補(bǔ)償值計(jì)算方法二
圖6 補(bǔ)償值計(jì)算方法二
如圖6所示,±20ppm的晶振頻率每1 ppm的偏差會(huì)導(dǎo)致每天偏差0.0864 s。在沒(méi)有測(cè)試條件測(cè)頻率的情況下,可以先測(cè)試24h下的時(shí)間偏差,時(shí)間走的快補(bǔ)償正值,時(shí)間走的慢補(bǔ)償負(fù)值,比如某個(gè)RTC 24小時(shí)下測(cè)得比北京時(shí)間快7s,那么先算出ppm的偏移量Eppm = 7/0.0864 = 81.0185 ppm,然后算出模式0下補(bǔ)償寄存器的值為81.0185/4.34 = 18.67,取值19;算出模式1下補(bǔ)償寄存器的值為81.0185/4.069 = 19.9119.91,取值20。再比如某個(gè)RTC 24小時(shí)下測(cè)得比北京時(shí)間慢7s,那么先算出ppm的偏移量Eppm = 7/0.0864 = 81.0185 ppm,然后算出模式0下補(bǔ)償寄存器的值為81.0185/4.34 = 18.67,取值-19;算出模式1下補(bǔ)償寄存器的值為81.0185/4.069 = 19.91,取值-20。
注意:0.0864 s的計(jì)算方式為:ppm的單位是百萬(wàn)分之一,20ppm一天的偏差描述為(24小時(shí)*60分*60秒*20)/106 = 1.728s,所以1ppm一天的偏差時(shí)間為1.728s/20=0.0864 s。其他精度的晶振也可以用此類方式推算。
如果產(chǎn)品對(duì)RTC精度要求較高,使用常規(guī)RTC通過(guò)以上校準(zhǔn)/補(bǔ)償仍達(dá)不到產(chǎn)品要求,就需要考慮選用高精度的RTC芯片,如RX8025T。
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351181 -
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131478 -
RTC
+關(guān)注
關(guān)注
2文章
538瀏覽量
66520
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論