實(shí)時(shí)時(shí)鐘芯片應用設計時(shí)必須要考慮的事項
總述
本文引用地址:http://dyxdggzs.com/article/201706/360729.htm實(shí)時(shí)時(shí)鐘芯片(RTC)允許一個(gè)系統能同步或記錄事件,給用戶(hù)一個(gè)易理解的時(shí)間參考。由于RTC的應用越來(lái)越廣泛,為了避開(kāi)設計時(shí)出現的問(wèn)題,設計者應熟悉RTCs。
選擇接口
RTC可用的總線(xiàn)接口范圍很寬。串行接口包括2線(xiàn)(I2C),3線(xiàn)和串行外設接口(SPI)。并行接口包含多總線(xiàn)(多數據和地址線(xiàn))和帶單獨地址及字節數據輸入的設計。接口的選擇通常由所用的處理器類(lèi)型決定,很多處理器包括2線(xiàn)或SPI接口。其它的,如8051處理器及其派生的處理器支持多路地址和數據總線(xiàn)。時(shí)間保持非易失性(NV) RAM和SRAM用相同的控制信號,許多處理器都提供這種方便的接口,也包括各種不同的用電池組支持的RAM。最后,看不見(jiàn)的時(shí)鐘隱藏電池供電的RAM中并可用64位的軟件協(xié)議去訪(fǎng)問(wèn)時(shí)鐘。
備用電池的功能
在有的應用中,例如VCRS,如果去掉電源, 會(huì )丟失時(shí)間和日期信息,。許多新的應用中,即使主電源去掉了, 要求時(shí)間和日期信息應保持有效。為了保持時(shí)鐘晶振運行,要用到一個(gè)主電源或者備用電源,或者一個(gè)大容量的電容。在這種情況下,時(shí)鐘芯片必須能夠在兩個(gè)電源之間進(jìn)行切換。
如果有一個(gè)電池,例如鈕扣型鋰電池用作備用電源,當在用備用電源工作時(shí)RTC應設計成盡可能少的消耗功耗。電源切換電路,一般情況下由主電源供電,會(huì )使電源切換到電池供電,并使RTC進(jìn)入低功耗模式。微處理器和RTC之間的通信通常鎖定(稱(chēng)為寫(xiě)保護),用來(lái)使電池供電電流最小和防止數據損壞。
許多時(shí)鐘芯片都包括一個(gè)晶振控制位,通常稱(chēng)之為時(shí)鐘中斷(CH)或是晶振使能位(/EOSC)。此位通常位于秒寄存器或控制寄存器的最高位(位7),幾乎在有這位的所有時(shí)鐘芯片中,初始電池上的首選狀態(tài)對于晶振來(lái)說(shuō)是無(wú)效的。這允許系統設計者提出制造流程,在安裝和測試后,用Vbat進(jìn)行供電,通常用個(gè)鋰電池。此時(shí)晶振處于一個(gè)停止狀態(tài),保存電池到系統電壓可以工作。在這個(gè)點(diǎn)上,軟件/硬件應該啟動(dòng)晶振并促使處理時(shí)間和日期。
在一般情況下,鋰電池的工作溫度是-40℃到+85℃。電池不能暴露在+85℃以上的環(huán)境中。含電池和暴露電池的引腳的封裝,例如靈敏性插座,不應接觸到水。浸水使電池短路,因此耗盡電池。
時(shí)鐘模塊,啟封和保存限期
在備用電池模式下,時(shí)鐘的電流消耗主要來(lái)自晶振。所有帶有嵌入晶振和電池組的時(shí)鐘模塊在出廠(chǎng)時(shí)已經(jīng)形成在里面了并且晶振是不工作的。當晶振不工作時(shí),電池的電流小于自放電電流,或處于室內溫度時(shí)每年的0.5%.
一些時(shí)間保持非易失性(NV) RAM模塊用到時(shí)鐘控制IC和一個(gè)SRAM,它們從廠(chǎng)家出來(lái)時(shí),晶振不工作且電池對SRAM的供電是不連續的。VCC第一次去掉后,電池就連接到SRAM上,這個(gè)功能常稱(chēng)為“啟封”,用于保存電池直到模塊首次使用。其它時(shí)間保持非易失性(NV) RAM模塊是單片集成電路(在一塊IC中有控制器和SRAM),不需要啟封。
模塊封裝
時(shí)間保持非易失性(NV) RAM,多路總線(xiàn)時(shí)鐘,一些看門(mén)狗和隱形時(shí)鐘都可用于模塊或者電源帽封裝。模塊內部嵌入一個(gè)32.768Hz的晶振和一個(gè)鋰電池,使得設計PCB變得更容易。然而,晶振和電池不能容耐再次回流期間的溫度。在再次回流后,模塊可以用手附上或插到座子上。只要鋰電池不會(huì )暴露在85℃以上溫度,模塊也可以用波焊的方法焊到PCB上。
電源帽產(chǎn)品采用兩片結構來(lái)提供一種能再次回流過(guò)程的表面焊接設備。用標準的回流技術(shù)可將含有RAM和時(shí)鐘的模塊底部安裝到電路板上。在焊接之后, 含有靈敏性電池和晶振的電源帽上部會(huì )突然折斷到底部。
時(shí)鐘格式
RTC用到了3種主要的數據格式,BCD格式,帶月,星期,年等單獨寄存器的二進(jìn)制格式和無(wú)格式的二進(jìn)制寄數器格式。
BCD是最常用的一種格式。它流行的一個(gè)原因是時(shí)間和日期數據可以很方便的讀取,而不用轉換。每8位寄存器代表兩個(gè)數字(每個(gè)數字一個(gè)半位),每4位比特二進(jìn)制表示數字0到9。圖1顯示出了一個(gè)典型二進(jìn)制時(shí)鐘格式圖。
因為有些位在特殊的時(shí)間或日期領(lǐng)域里不需要,這些位可以用于特殊的功能,一般情況下是用作讀/寫(xiě)位的,也可以用硬件讀返回而總是處于1或0狀態(tài),這是由設計來(lái)決定的。在圖1中,秒寄存器的第7位是用作時(shí)鐘中斷位(CH)的。
第二種是二進(jìn)制形式,各個(gè)單獨的寄存器和BCD格式一樣。在帶BCD格式的時(shí)鐘上二進(jìn)制格式通常是可以編程進(jìn)行選擇的。
第三種是在某種參考點(diǎn)的無(wú)格式二進(jìn)制值中,用單個(gè)的多字節寄存器來(lái)表示秒時(shí)間。
圖1.典型時(shí)間和日期寄存器圖

時(shí)間和日期寄存器每秒更新一次。日期的變化值依據月和二月所處的年而不同。星期寄存器除多總線(xiàn)時(shí)鐘外,與其它寄存器無(wú)關(guān)。星期寄存器在午夜增加,并從7到1變化。只要在程序中的分配是連續的,程序員可以選定任何特殊的一天作為“1”。在總線(xiàn)復用時(shí)鐘中,星期天必須是“1”,因為星期寄存器用白天保存測試。在先前的午夜變化上,為白天保存的測試在午夜完成了,當測試白天保存功能時(shí)這必須說(shuō)明。
當時(shí)鐘格式由12小時(shí)格式成24小時(shí)格式,或從BCD格式變成二進(jìn)制格式,或從二進(jìn)制格式變成BCD格式,時(shí)間,日期,報警寄存器都必須重新進(jìn)行初始化。
無(wú)格式的二進(jìn)制計數器時(shí)鐘有一個(gè)單獨的寄存器,代表性地是32位,每秒能增加一次。通常,寄存器值00H被認為是某些缺省的時(shí)間或日期值。例如,格林尼治時(shí)間1970年1月1號00:00:00就是“0點(diǎn)”。寄存器中的二進(jìn)制值就代表從那一點(diǎn)走過(guò)的時(shí)間。軟件程序必須把32位的二進(jìn)制值變成可以讀寫(xiě)的時(shí)間和日期,并且將用戶(hù)數據轉化成二進(jìn)制值。
Y2K Compliance
FS半導體RTCs 與Y2K相適應,兼容Y2K,或者是不包括對日期敏感的邏輯。一個(gè)適應Y2K的時(shí)鐘有這些邏輯,包括世紀信息(有世紀數字或世紀位),能夠正確計算閏年直到2099年,但要求系統軟件對世紀進(jìn)行跟蹤。二進(jìn)制秒時(shí)鐘沒(méi)有對日期敏感的邏輯,軟件必須計算正確的日期,包括閏年的正確性。
晶振和精確度
晶振是一種最精確的可以用來(lái)提供固定頻率的電路。32768Hz的晶振用于大多數RTCs。通過(guò)劃分晶振的輸出頻率,一個(gè)1HZ的參考頻率可用于更新時(shí)間和日期。時(shí)鐘的精確度主要取于晶振的精確度。調諧晶振對溫度有一個(gè)拋物線(xiàn)響應(圖2)。23ppm的誤差大約為每月一分鐘。
在特殊的容性負載下,晶振能調到正確的頻率處振蕩。在一個(gè)設計能提供6pF 電容負載的晶振的RTC中,用一個(gè)調到12.5pF的電容負載的晶振會(huì )導致RTC走得要快。
圖2.晶振的精確度與溫度

晶振的連接
所有FS的RTCs的內部都有一個(gè)偏置網(wǎng)絡(luò )。晶振應直接連到X1和X2的引腳上,而沒(méi)其它任何元件(圖3)。晶振應盡可能近的接近X1和X2引腳。地平面應置于晶振,X1和X2下面(圖4)。數字信號線(xiàn)應當遠離晶振和晶振的引腳,有嚴重輻射的RFI的元件應屏蔽起來(lái)且遠離晶振。低功耗的晶振電路對附近的RFI敏感,RFI會(huì )引起時(shí)鐘走時(shí)變快。
圖3.RTC-等效電路顯示其內部的偏置網(wǎng)絡(luò )

PC板上包括了可調晶振,例如那些帶RTCs,不能把超聲波排除在外。晶振可能由共振破壞。
晶振起振時(shí)間
晶振的起振時(shí)間在很大程度上依賴(lài)于晶振的特性和電路布局。高的串行等效電阻(ESR)和過(guò)大的電容負載是延長(cháng)啟動(dòng)時(shí)間的主要因素。用含有推薦的特性的晶振和依照推薦的電路布局的電路通常能在一秒內啟動(dòng)晶振。
電池連接
大多數FS的RTCs都包括一個(gè)電池輸入引腳。電池是用來(lái)保持當主電源斷開(kāi)后時(shí)鐘能夠正常走動(dòng)。對于大多數設計來(lái)說(shuō),所用的電池都是鈕扣鋰電池。
有的RTCs用電源電壓作為參考來(lái)決定什么時(shí)候VCC是有效電平。當VCC低于最小值時(shí),器件進(jìn)入寫(xiě)保護,禁止外部訪(fǎng)問(wèn)器件。當器件工作在VCC條件下時(shí),VBAT輸入將處于高阻狀態(tài)。如果電池沒(méi)有連接到VBAT上,或是連接到串行二極管,VBAT的輸入處于高電平漂浮狀態(tài),引起RTC進(jìn)入寫(xiě)保護。在FS的大多數時(shí)鐘內部都提供反充電寫(xiě)保護,以消除外部二極管。
讀/寫(xiě)時(shí)間和日期
由于在讀或寫(xiě)的過(guò)程中可以進(jìn)行內部寄存器更新而沒(méi)數據的破壞,大多數FS 的時(shí)鐘都提供能確保訪(fǎng)問(wèn)時(shí)間和日期的方法。
輔助緩沖寄存器(二級緩存)也用在串行時(shí)鐘上。當訪(fǎng)問(wèn)(讀)RTC時(shí),當前時(shí)間和日期傳送到輔助寄存器。一個(gè)脈沖讀信號將從輔助寄存器中讀數據,在內部寄存器連續更新時(shí)輔助寄存器的內容將保持不變。 下一次訪(fǎng)問(wèn)(當芯片有效,復位或開(kāi)始)將又一次傳送數據。當寄存器被寫(xiě)時(shí)類(lèi)似的過(guò)程發(fā)生,除非數據在訪(fǎng)問(wèn)之前沒(méi)有被內部寄存器刷新。
在時(shí)間保持非易失性(NV)RAM時(shí)鐘上,用TE位或R和W位封存用戶(hù)寄存器。
有多總線(xiàn)時(shí)鐘里。有幾種方法能確保時(shí)間和日期寄存器在訪(fǎng)問(wèn)間不變。以下方法即是:
設置位
B寄存器的SET位設為1時(shí),用戶(hù)雙緩存時(shí)間和日期寄存器被鎖存了。內部寄存器仍然正常的不斷更新。
UIP 標志
進(jìn)程中的更新標志位(UIP)每秒將產(chǎn)生一個(gè)脈沖。當UIP位變?yōu)楦唠娖胶?,更新將?44uS后發(fā)生。如果UIP位讀出的為低電平,為避免更新時(shí)的錯誤用戶(hù)至少有244uS的時(shí)間可以讀寄存器的數據。
UF 中斷
如果使能,那么在每一次更新周期之后產(chǎn)生一次中斷,該周期表明999ms能讀有效時(shí)間和日期信息。
默認的寄存器值
如果數據手冊中沒(méi)有特殊說(shuō)明,初始上電寄存器值不確定。也就是說(shuō),它們和DROM或SRAM是一樣:初始上電后,用于實(shí)際的數據是隨機的。
發(fā)現并解決新設計中的問(wèn)題
不能和RTC通信
在新的設計并解決問(wèn)題的過(guò)程中,這里有多種方法能夠幫助確定產(chǎn)生問(wèn)題的原因。例如,如果顯現出來(lái)的是器件根本不通信,經(jīng)常值得去確定該器件是否沒(méi)讀,寫(xiě)或兩者都沒(méi)。如果器件有軟件使能的特點(diǎn),例如方波輸出,嘗試著(zhù)使那個(gè)特性有效是一個(gè)很好的方式去決定是否能夠寫(xiě)器件。在2線(xiàn)器件上,示波器可以確定時(shí)鐘在傳送每個(gè)字節后是否發(fā)送應答信號。下面的段落描述了一些附加的設計中的問(wèn)題并解決的提示”
有備用電池的實(shí)時(shí)時(shí)鐘芯片用一個(gè)比較器在VCC和VBAT之間切換。有些實(shí)時(shí)時(shí)鐘芯片用電池電壓作為參考電壓,另外的用一個(gè)能帶參考電壓決定什么時(shí)候VCC有效。當VCC下降到比較器的觸發(fā)點(diǎn),就不能夠進(jìn)行讀寫(xiě)。在一個(gè)電壓下的禁止讀寫(xiě)有助于對處理器進(jìn)行不注意的寫(xiě),該處理器不再有有效的供應。而且,當VCC電壓高于觸發(fā)點(diǎn),比較器把內部供電電源切換到VCC,防止電池耗盡。在電池電壓為參考的器件中,一個(gè)懸空電池輸入,在電池和VBAT之間有一個(gè)二極管的輸入,或有太高電壓的電池能制止和RTC的通信。確保VBAT在有效的電壓范圍內,并且在電池和電池輸入引腳之間沒(méi)有二極管。
串行時(shí)鐘要求正確的向器件中寫(xiě)人命令字節或從地址。不正確的命令/地址經(jīng)常導致器件忽略讀操作。在那些情況下,數據I/O口終止于高阻態(tài)。在帶上拉電阻的串行線(xiàn)上,數據重復經(jīng)常是0XFF。在3線(xiàn)接口中,如果I/O口有內部下拉電阻,數據經(jīng)常是0。在其他的情況下,數據重復經(jīng)常是命令字節最后一位的值。有些串行時(shí)鐘用分離的輸入作輸出,以便在一個(gè)較低供應電壓時(shí)允許處理器協(xié)調工作。沒(méi)接有效的供應到輸入端會(huì )阻止I/O口驅動(dòng)高電平。最后,如果軟件不能使處理器的端口(接到了時(shí)鐘的輸入輸出引腳)從輸出(寫(xiě)命令節)切換到輸入(讀數據),那么輸出的數據可能是全0或全1。
無(wú)效時(shí)間和數據值
大多數時(shí)間和日期寄存器能夠接收任何值,包括無(wú)效值。如果無(wú)效值進(jìn)入寄存器,那么該值將不斷增加,直到和發(fā)生翻轉的位相匹配后比較,達到最小值。如果時(shí)鐘處于錯誤的模式。也可能造成無(wú)效值,例如,二進(jìn)制碼取代BCD碼,或12小時(shí)制取代24小時(shí)制。
數據丟失/數據破壞
有兩種情況可以引起數據丟失:無(wú)意中的寫(xiě)時(shí)鐘或反相小故障脈沖電壓用到IC上。因為CH或/EOSC位(帶晶振控制位的時(shí)鐘上)處于默認的停止狀態(tài), 反相電壓輸入到IC所造成的數據丟失有時(shí)能辨認。另外,大多數而不是所有的寄存器中的數據會(huì )破壞。無(wú)意中的寫(xiě)一般發(fā)生在電源周期時(shí),但是通常只影響一個(gè)寄存器,而不影響串行時(shí)鐘。
在上電和/或掉電時(shí)許多現代的開(kāi)關(guān)電源將在VCC上產(chǎn)生一個(gè)-5V或-6V或甚至更大的毛刺。通過(guò)輸入保護二極管,這個(gè)負電壓耦合到內部時(shí)鐘電源。如果電源能夠提供比電池大的電流,那么數據將丟失。在某種情況下,用一個(gè)肖特基二極管可以鉗位這個(gè)負毛刺電壓。另外一個(gè)時(shí)鐘上的負電壓源來(lái)自RS232連接器。如果帶時(shí)鐘芯片的PCB板掉電,上電的PC或其他器件通過(guò)RS232連接器連接到那塊板上,RS232收發(fā)器芯片可能將負電壓傳到不上電的PCB板上的其他芯片。
無(wú)意中的寫(xiě)也可能造成數據破壞。在寫(xiě)保護為有效前,在上電或掉電期間處理器能寫(xiě)入錯誤的數據。在上電和掉電時(shí),接口電路可能迫使輸入引腳進(jìn)入寫(xiě)狀態(tài)。在多總線(xiàn)時(shí)鐘的情況下,地址信號鎖存在A(yíng)LE的下降沿。如果/WE和/CS在器件處于寫(xiě)保護之前變?yōu)榈碗妷?,那么在最后寄存器中最后訪(fǎng)問(wèn)的數據會(huì )破壞。VCC的上升時(shí)間和下降時(shí)間應核對無(wú)誤以用于數據手冊的需要。
不正確的中斷程序處理造成間斷的數據問(wèn)題。在某些情況下,時(shí)間和數據信息復制到RAM中去了,并且復制不是同步的。最后,在電路仿真(IEC)硬件配置不當,可以造成奇怪的行為。
晶振問(wèn)題
時(shí)間不能增加的最普遍原因是晶振沒(méi)使能。許多FS時(shí)鐘芯片有一個(gè)在晶振工作前須置1的控制位(通常位于第二個(gè)寄存器)。
為延長(cháng)電池使用時(shí)間,振蕩電路設計成低功耗。晶振的連接問(wèn)題能降低閉環(huán)增益,阻止晶振工作。接到晶振的外部電容也減少閉環(huán)增益,增加啟振時(shí)間或阻止振動(dòng)。示波器的探頭也能夠阻止振動(dòng)。帶45K以上的等效串行電阻(ESR)的 晶振也將減少閉環(huán)增益。最后,留在電路板上的焊錫清潔劑可能阻止晶振起振。
評論