總述
實(shí)時(shí)時(shí)鐘芯片(RTC)允許一個(gè)系統(tǒng)能同步或記錄事件,給用戶一個(gè)易理解的時(shí)間參考。由于RTC的應(yīng)用越來(lái)越廣泛,為了避開(kāi)設(shè)計(jì)時(shí)出現(xiàn)的問(wèn)題,設(shè)計(jì)者應(yīng)熟悉RTCs。
選擇接口
RTC可用的總線接口范圍很寬。串行接口包括2線(I2C),3線和串行外設(shè)接口(SPI)。并行接口包含多總線(多數(shù)據(jù)和地址線)和帶單獨(dú)地址及字節(jié)數(shù)據(jù)輸入的設(shè)計(jì)。接口的選擇通常由所用的處理器類型決定,很多處理器包括2線或SPI接口。其它的,如8051處理器及其派生的處理器支持多路地址和數(shù)據(jù)總線。時(shí)間保持非易失性(NV) RAM和SRAM用相同的控制信號(hào),許多處理器都提供這種方便的接口,也包括各種不同的用電池組支持的RAM。最后,看不見(jiàn)的時(shí)鐘隱藏電池供電的RAM中并可用64位的軟件協(xié)議去訪問(wèn)時(shí)鐘。
備用電池的功能
在有的應(yīng)用中,例如VCRS,如果去掉電源, 會(huì)丟失時(shí)間和日期信息,。許多新的應(yīng)用中,即使主電源去掉了, 要求時(shí)間和日期信息應(yīng)保持有效。為了保持時(shí)鐘晶振運(yùn)行,要用到一個(gè)主電源或者備用電源,或者一個(gè)大容量的電容。在這種情況下,時(shí)鐘芯片必須能夠在兩個(gè)電源之間進(jìn)行切換。
如果有一個(gè)電池,例如鈕扣型鋰電池用作備用電源,當(dāng)在用備用電源工作時(shí)RTC應(yīng)設(shè)計(jì)成盡可能少的消耗功耗。電源切換電路,一般情況下由主電源供電,會(huì)使電源切換到電池供電,并使RTC進(jìn)入低功耗模式。微處理器和RTC之間的通信通常鎖定(稱為寫保護(hù)),用來(lái)使電池供電電流最小和防止數(shù)據(jù)損壞。
許多時(shí)鐘芯片都包括一個(gè)晶振控制位,通常稱之為時(shí)鐘中斷(CH)或是晶振使能位(/EOSC)。此位通常位于秒寄存器或控制寄存器的最高位(位7),幾乎在有這位的所有時(shí)鐘芯片中,初始電池上的首選狀態(tài)對(duì)于晶振來(lái)說(shuō)是無(wú)效的。這允許系統(tǒng)設(shè)計(jì)者提出制造流程,在安裝和測(cè)試后,用Vbat進(jìn)行供電,通常用個(gè)鋰電池。此時(shí)晶振處于一個(gè)停止?fàn)顟B(tài),保存電池到系統(tǒng)電壓可以工作。在這個(gè)點(diǎn)上,軟件/硬件應(yīng)該啟動(dòng)晶振并促使處理時(shí)間和日期。
在一般情況下,鋰電池的工作溫度是-40℃到+85℃。電池不能暴露在+85℃以上的環(huán)境中。含電池和暴露電池的引腳的封裝,例如靈敏性插座,不應(yīng)接觸到水。浸水使電池短路,因此耗盡電池。
時(shí)鐘模塊,啟封和保存限期
在備用電池模式下,時(shí)鐘的電流消耗主要來(lái)自晶振。所有帶有嵌入晶振和電池組的時(shí)鐘模塊在出廠時(shí)已經(jīng)形成在里面了并且晶振是不工作的。當(dāng)晶振不工作時(shí),電池的電流小于自放電電流,或處于室內(nèi)溫度時(shí)每年的0.5%.
一些時(shí)間保持非易失性(NV) RAM模塊用到時(shí)鐘控制IC和一個(gè)SRAM,它們從廠家出來(lái)時(shí),晶振不工作且電池對(duì)SRAM的供電是不連續(xù)的。VCC第一次去掉后,電池就連接到SRAM上,這個(gè)功能常稱為“啟封”,用于保存電池直到模塊首次使用。其它時(shí)間保持非易失性(NV) RAM模塊是單片集成電路(在一塊IC中有控制器和SRAM),不需要啟封。
模塊封裝
時(shí)間保持非易失性(NV) RAM,多路總線時(shí)鐘,一些看門狗和隱形時(shí)鐘都可用于模塊或者電源帽封裝。模塊內(nèi)部嵌入一個(gè)32.768Hz的晶振和一個(gè)鋰電池,使得設(shè)計(jì)PCB變得更容易。然而,晶振和電池不能容耐再次回流期間的溫度。在再次回流后,模塊可以用手附上或插到座子上。只要鋰電池不會(huì)暴露在85℃以上溫度,模塊也可以用波焊的方法焊到PCB上。
電源帽產(chǎn)品采用兩片結(jié)構(gòu)來(lái)提供一種能再次回流過(guò)程的表面焊接設(shè)備。用標(biāo)準(zhǔn)的回流技術(shù)可將含有RAM和時(shí)鐘的模塊底部安裝到電路板上。在焊接之后, 含有靈敏性電池和晶振的電源帽上部會(huì)突然折斷到底部。
時(shí)鐘格式
RTC用到了3種主要的數(shù)據(jù)格式,BCD格式,帶月,星期,年等單獨(dú)寄存器的二進(jìn)制格式和無(wú)格式的二進(jìn)制寄數(shù)器格式。
BCD是最常用的一種格式。它流行的一個(gè)原因是時(shí)間和日期數(shù)據(jù)可以很方便的讀取,而不用轉(zhuǎn)換。每8位寄存器代表兩個(gè)數(shù)字(每個(gè)數(shù)字一個(gè)半位),每4位比特二進(jìn)制表示數(shù)字0到9。圖1顯示出了一個(gè)典型二進(jìn)制時(shí)鐘格式圖。
因?yàn)橛行┪辉谔厥獾臅r(shí)間或日期領(lǐng)域里不需要,這些位可以用于特殊的功能,一般情況下是用作讀/寫位的,也可以用硬件讀返回而總是處于1或0狀態(tài),這是由設(shè)計(jì)來(lái)決定的。在圖1中,秒寄存器的第7位是用作時(shí)鐘中斷位(CH)的。
第二種是二進(jìn)制形式,各個(gè)單獨(dú)的寄存器和BCD格式一樣。在帶BCD格式的時(shí)鐘上二進(jìn)制格式通常是可以編程進(jìn)行選擇的。
第三種是在某種參考點(diǎn)的無(wú)格式二進(jìn)制值中,用單個(gè)的多字節(jié)寄存器來(lái)表示秒時(shí)間。
圖1.典型時(shí)間和日期寄存器圖
時(shí)間和日期寄存器每秒更新一次。日期的變化值依據(jù)月和二月所處的年而不同。星期寄存器除多總線時(shí)鐘外,與其它寄存器無(wú)關(guān)。星期寄存器在午夜增加,并從7到1變化。只要在程序中的分配是連續(xù)的,程序員可以選定任何特殊的一天作為“1”。在總線復(fù)用時(shí)鐘中,星期天必須是“1”,因?yàn)樾瞧诩拇嫫饔冒滋毂4鏈y(cè)試。在先前的午夜變化上,為白天保存的測(cè)試在午夜完成了,當(dāng)測(cè)試白天保存功能時(shí)這必須說(shuō)明。
當(dāng)時(shí)鐘格式由12小時(shí)格式成24小時(shí)格式,或從BCD格式變成二進(jìn)制格式,或從二進(jìn)制格式變成BCD格式,時(shí)間,日期,報(bào)警寄存器都必須重新進(jìn)行初始化。
無(wú)格式的二進(jìn)制計(jì)數(shù)器時(shí)鐘有一個(gè)單獨(dú)的寄存器,代表性地是32位,每秒能增加一次。通常,寄存器值00H被認(rèn)為是某些缺省的時(shí)間或日期值。例如,格林尼治時(shí)間1970年1月1號(hào)00:00:00就是“0點(diǎn)”。寄存器中的二進(jìn)制值就代表從那一點(diǎn)走過(guò)的時(shí)間。軟件程序必須把32位的二進(jìn)制值變成可以讀寫的時(shí)間和日期,并且將用戶數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制值。
Y2K Compliance
FS半導(dǎo)體RTCs 與Y2K相適應(yīng),兼容Y2K,或者是不包括對(duì)日期敏感的邏輯。一個(gè)適應(yīng)Y2K的時(shí)鐘有這些邏輯,包括世紀(jì)信息(有世紀(jì)數(shù)字或世紀(jì)位),能夠正確計(jì)算閏年直到2099年,但要求系統(tǒng)軟件對(duì)世紀(jì)進(jìn)行跟蹤。二進(jìn)制秒時(shí)鐘沒(méi)有對(duì)日期敏感的邏輯,軟件必須計(jì)算正確的日期,包括閏年的正確性。
晶振和精確度
晶振是一種最精確的可以用來(lái)提供固定頻率的電路。32768Hz的晶振用于大多數(shù)RTCs。通過(guò)劃分晶振的輸出頻率,一個(gè)1HZ的參考頻率可用于更新時(shí)間和日期。時(shí)鐘的精確度主要取于晶振的精確度。調(diào)諧晶振對(duì)溫度有一個(gè)拋物線響應(yīng)(圖2)。23ppm的誤差大約為每月一分鐘。
在特殊的容性負(fù)載下,晶振能調(diào)到正確的頻率處振蕩。在一個(gè)設(shè)計(jì)能提供6pF 電容負(fù)載的晶振的RTC中,用一個(gè)調(diào)到12.5pF的電容負(fù)載的晶振會(huì)導(dǎo)致RTC走得要快。
圖2.晶振的精確度與溫度
晶振的連接
所有FS的RTCs的內(nèi)部都有一個(gè)偏置網(wǎng)絡(luò)。晶振應(yīng)直接連到X1和X2的引腳上,而沒(méi)其它任何元件(圖3)。晶振應(yīng)盡可能近的接近X1和X2引腳。地平面應(yīng)置于晶振,X1和X2下面(圖4)。數(shù)字信號(hào)線應(yīng)當(dāng)遠(yuǎn)離晶振和晶振的引腳,有嚴(yán)重輻射的RFI的元件應(yīng)屏蔽起來(lái)且遠(yuǎn)離晶振。低功耗的晶振電路對(duì)附近的RFI敏感,RFI會(huì)引起時(shí)鐘走時(shí)變快。
圖3.RTC-等效電路顯示其內(nèi)部的偏置網(wǎng)絡(luò)
PC板上包括了可調(diào)晶振,例如那些帶RTCs,不能把超聲波排除在外。晶振可能由共振破壞。
晶振起振時(shí)間
晶振的起振時(shí)間在很大程度上依賴于晶振的特性和電路布局。高的串行等效電阻(ESR)和過(guò)大的電容負(fù)載是延長(zhǎng)啟動(dòng)時(shí)間的主要因素。用含有推薦的特性的晶振和依照推薦的電路布局的電路通常能在一秒內(nèi)啟動(dòng)晶振。
電池連接
大多數(shù)FS的RTCs都包括一個(gè)電池輸入引腳。電池是用來(lái)保持當(dāng)主電源斷開(kāi)后時(shí)鐘能夠正常走動(dòng)。對(duì)于大多數(shù)設(shè)計(jì)來(lái)說(shuō),所用的電池都是鈕扣鋰電池。
有的RTCs用電源電壓作為參考來(lái)決定什么時(shí)候VCC是有效電平。當(dāng)VCC低于最小值時(shí),器件進(jìn)入寫保護(hù),禁止外部訪問(wèn)器件。當(dāng)器件工作在VCC條件下時(shí),VBAT輸入將處于高阻狀態(tài)。如果電池沒(méi)有連接到VBAT上,或是連接到串行二極管,VBAT的輸入處于高電平漂浮狀態(tài),引起RTC進(jìn)入寫保護(hù)。在FS的大多數(shù)時(shí)鐘內(nèi)部都提供反充電寫保護(hù),以消除外部二極管。
讀/寫時(shí)間和日期
由于在讀或?qū)懙倪^(guò)程中可以進(jìn)行內(nèi)部寄存器更新而沒(méi)數(shù)據(jù)的破壞,大多數(shù)FS 的時(shí)鐘都提供能確保訪問(wèn)時(shí)間和日期的方法。
輔助緩沖寄存器(二級(jí)緩存)也用在串行時(shí)鐘上。當(dāng)訪問(wèn)(讀)RTC時(shí),當(dāng)前時(shí)間和日期傳送到輔助寄存器。一個(gè)脈沖讀信號(hào)將從輔助寄存器中讀數(shù)據(jù),在內(nèi)部寄存器連續(xù)更新時(shí)輔助寄存器的內(nèi)容將保持不變。 下一次訪問(wèn)(當(dāng)芯片有效,復(fù)位或開(kāi)始)將又一次傳送數(shù)據(jù)。當(dāng)寄存器被寫時(shí)類似的過(guò)程發(fā)生,除非數(shù)據(jù)在訪問(wèn)之前沒(méi)有被內(nèi)部寄存器刷新。
在時(shí)間保持非易失性(NV)RAM時(shí)鐘上,用TE位或R和W位封存用戶寄存器。
有多總線時(shí)鐘里。有幾種方法能確保時(shí)間和日期寄存器在訪問(wèn)間不變。以下方法即是:
設(shè)置位
B寄存器的SET位設(shè)為1時(shí),用戶雙緩存時(shí)間和日期寄存器被鎖存了。內(nèi)部寄存器仍然正常的不斷更新。
UIP 標(biāo)志
進(jìn)程中的更新標(biāo)志位(UIP)每秒將產(chǎn)生一個(gè)脈沖。當(dāng)UIP位變?yōu)楦唠娖胶螅聦⒃?44uS后發(fā)生。如果UIP位讀出的為低電平,為避免更新時(shí)的錯(cuò)誤用戶至少有244uS的時(shí)間可以讀寄存器的數(shù)據(jù)。
UF 中斷
如果使能,那么在每一次更新周期之后產(chǎn)生一次中斷,該周期表明999ms能讀有效時(shí)間和日期信息。
默認(rèn)的寄存器值
如果數(shù)據(jù)手冊(cè)中沒(méi)有特殊說(shuō)明,初始上電寄存器值不確定。也就是說(shuō),它們和DROM或SRAM是一樣:初始上電后,用于實(shí)際的數(shù)據(jù)是隨機(jī)的。
發(fā)現(xiàn)并解決新設(shè)計(jì)中的問(wèn)題
不能和RTC通信
在新的設(shè)計(jì)并解決問(wèn)題的過(guò)程中,這里有多種方法能夠幫助確定產(chǎn)生問(wèn)題的原因。例如,如果顯現(xiàn)出來(lái)的是器件根本不通信,經(jīng)常值得去確定該器件是否沒(méi)讀,寫或兩者都沒(méi)。如果器件有軟件使能的特點(diǎn),例如方波輸出,嘗試著使那個(gè)特性有效是一個(gè)很好的方式去決定是否能夠?qū)懫骷?。?線器件上,示波器可以確定時(shí)鐘在傳送每個(gè)字節(jié)后是否發(fā)送應(yīng)答信號(hào)。下面的段落描述了一些附加的設(shè)計(jì)中的問(wèn)題并解決的提示”
有備用電池的實(shí)時(shí)時(shí)鐘芯片用一個(gè)比較器在VCC和VBAT之間切換。有些實(shí)時(shí)時(shí)鐘芯片用電池電壓作為參考電壓,另外的用一個(gè)能帶參考電壓決定什么時(shí)候VCC有效。當(dāng)VCC下降到比較器的觸發(fā)點(diǎn),就不能夠進(jìn)行讀寫。在一個(gè)電壓下的禁止讀寫有助于對(duì)處理器進(jìn)行不注意的寫,該處理器不再有有效的供應(yīng)。而且,當(dāng)VCC電壓高于觸發(fā)點(diǎn),比較器把內(nèi)部供電電源切換到VCC,防止電池耗盡。在電池電壓為參考的器件中,一個(gè)懸空電池輸入,在電池和VBAT之間有一個(gè)二極管的輸入,或有太高電壓的電池能制止和RTC的通信。確保VBAT在有效的電壓范圍內(nèi),并且在電池和電池輸入引腳之間沒(méi)有二極管。
串行時(shí)鐘要求正確的向器件中寫人命令字節(jié)或從地址。不正確的命令/地址經(jīng)常導(dǎo)致器件忽略讀操作。在那些情況下,數(shù)據(jù)I/O口終止于高阻態(tài)。在帶上拉電阻的串行線上,數(shù)據(jù)重復(fù)經(jīng)常是0XFF。在3線接口中,如果I/O口有內(nèi)部下拉電阻,數(shù)據(jù)經(jīng)常是0。在其他的情況下,數(shù)據(jù)重復(fù)經(jīng)常是命令字節(jié)最后一位的值。有些串行時(shí)鐘用分離的輸入作輸出,以便在一個(gè)較低供應(yīng)電壓時(shí)允許處理器協(xié)調(diào)工作。沒(méi)接有效的供應(yīng)到輸入端會(huì)阻止I/O口驅(qū)動(dòng)高電平。最后,如果軟件不能使處理器的端口(接到了時(shí)鐘的輸入輸出引腳)從輸出(寫命令節(jié))切換到輸入(讀數(shù)據(jù)),那么輸出的數(shù)據(jù)可能是全0或全1。
無(wú)效時(shí)間和數(shù)據(jù)值
大多數(shù)時(shí)間和日期寄存器能夠接收任何值,包括無(wú)效值。如果無(wú)效值進(jìn)入寄存器,那么該值將不斷增加,直到和發(fā)生翻轉(zhuǎn)的位相匹配后比較,達(dá)到最小值。如果時(shí)鐘處于錯(cuò)誤的模式。也可能造成無(wú)效值,例如,二進(jìn)制碼取代BCD碼,或12小時(shí)制取代24小時(shí)制。
數(shù)據(jù)丟失/數(shù)據(jù)破壞
有兩種情況可以引起數(shù)據(jù)丟失:無(wú)意中的寫時(shí)鐘或反相小故障脈沖電壓用到IC上。因?yàn)镃H或/EOSC位(帶晶振控制位的時(shí)鐘上)處于默認(rèn)的停止?fàn)顟B(tài), 反相電壓輸入到IC所造成的數(shù)據(jù)丟失有時(shí)能辨認(rèn)。另外,大多數(shù)而不是所有的寄存器中的數(shù)據(jù)會(huì)破壞。無(wú)意中的寫一般發(fā)生在電源周期時(shí),但是通常只影響一個(gè)寄存器,而不影響串行時(shí)鐘。
在上電和/或掉電時(shí)許多現(xiàn)代的開(kāi)關(guān)電源將在VCC上產(chǎn)生一個(gè)-5V或-6V或甚至更大的毛刺。通過(guò)輸入保護(hù)二極管,這個(gè)負(fù)電壓耦合到內(nèi)部時(shí)鐘電源。如果電源能夠提供比電池大的電流,那么數(shù)據(jù)將丟失。在某種情況下,用一個(gè)肖特基二極管可以鉗位這個(gè)負(fù)毛刺電壓。另外一個(gè)時(shí)鐘上的負(fù)電壓源來(lái)自RS232連接器。如果帶時(shí)鐘芯片的PCB板掉電,上電的PC或其他器件通過(guò)RS232連接器連接到那塊板上,RS232收發(fā)器芯片可能將負(fù)電壓傳到不上電的PCB板上的其他芯片。
無(wú)意中的寫也可能造成數(shù)據(jù)破壞。在寫保護(hù)為有效前,在上電或掉電期間處理器能寫入錯(cuò)誤的數(shù)據(jù)。在上電和掉電時(shí),接口電路可能迫使輸入引腳進(jìn)入寫狀態(tài)。在多總線時(shí)鐘的情況下,地址信號(hào)鎖存在ALE的下降沿。如果/WE和/CS在器件處于寫保護(hù)之前變?yōu)榈碗妷?,那么在最后寄存器中最后訪問(wèn)的數(shù)據(jù)會(huì)破壞。VCC的上升時(shí)間和下降時(shí)間應(yīng)核對(duì)無(wú)誤以用于數(shù)據(jù)手冊(cè)的需要。
不正確的中斷程序處理造成間斷的數(shù)據(jù)問(wèn)題。在某些情況下,時(shí)間和數(shù)據(jù)信息復(fù)制到RAM中去了,并且復(fù)制不是同步的。最后,在電路仿真(IEC)硬件配置不當(dāng),可以造成奇怪的行為。
晶振問(wèn)題
時(shí)間不能增加的最普遍原因是晶振沒(méi)使能。許多FS時(shí)鐘芯片有一個(gè)在晶振工作前須置1的控制位(通常位于第二個(gè)寄存器)。
為延長(zhǎng)電池使用時(shí)間,振蕩電路設(shè)計(jì)成低功耗。晶振的連接問(wèn)題能降低閉環(huán)增益,阻止晶振工作。接到晶振的外部電容也減少閉環(huán)增益,增加啟振時(shí)間或阻止振動(dòng)。示波器的探頭也能夠阻止振動(dòng)。帶45K以上的等效串行電阻(ESR)的 晶振也將減少閉環(huán)增益。最后,留在電路板上的焊錫清潔劑可能阻止晶振起振。
評(píng)論
查看更多