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