search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

實時時鐘晶元應用設計時必須要考慮的事項

總述

實時時鐘晶元(RTC)允許一個系統能同步或記錄事件,給用戶一個易理解的時間參考。由於RTC的應用越來越廣泛,為了避開設計時出現的問題,設計者應熟悉RTCs。

選擇介面

RTC可用的匯流排介面範圍很寬。串列介面包括2線(I2C),3線和串列外設介面(SPI)。并行介面包含多匯流排(多數據和地址線)和帶單獨地址及位元組數據輸入的設計。介面的選擇通常由所用的處理器類型決定,很多處理器包括2線或SPI介面。其它的,如8051處理器及其派生的處理器支持多路地址和數據匯流排。時間保持非易失性(NV) RAM和SRAM用相同的控制信號,許多處理器都提供這種方便的介面,也包括各種不同的用電池組支持的RAM。最後,看不見的時鐘隱藏電池供電的RAM中並可用64位的軟體協議去訪問時鐘。

備用電池的功能

在有的應用中,例如VCRS,如果去掉電源, 會丟失時間和日期信息,。許多新的應用中,即使主電源去掉了, 要求時間和日期信息應保持有效。為了保持時鐘晶振運行,要用到一個主電源或者備用電源,或者一個大容量的電容。在這種情況下,時鐘晶元必須能夠在兩個電源之間進行切換。

如果有一個電池,例如鈕扣型鋰電池用作備用電源,當在用備用電源工作時RTC應設計成儘可能少的消耗功耗。電源切換電路,一般情況下由主電源供電,會使電源切換到電池供電,並使RTC進入低功耗模式。微處理器和RTC之間的通信通常鎖定(稱為防寫),用來使電池供電電流最小和防止數據損壞。

許多時鐘晶元都包括一個晶振控制位,通常稱之為時鐘中斷(CH)或是晶振使能位(/EOSC)。此位通常位於秒寄存器或控制寄存器的最高位(位7),幾乎在有這位的所有時鐘晶元中,初始電池上的首選狀態對於晶振來說是無效的。這允許系統設計者提出製造流程,在安裝和測試后,用Vbat進行供電,通常用個鋰電池。此時晶振處於一個停止狀態,保存電池到系統電壓可以工作。在這個點上,軟體/硬體應該啟動晶振並促使處理時間和日期。

在一般情況下,鋰電池的工作溫度是-40℃到+85℃。電池不能暴露在+85℃以上的環境中。含電池和暴露電池的引腳的封裝,例如靈敏性插座,不應接觸到水。浸水使電池短路,因此耗盡電池。

時鐘模塊,啟封和保存限期

在備用電池模式下,時鐘的電流消耗主要來自晶振。所有帶有嵌入晶振和電池組的時鐘模塊在出廠時已經形成在裡面了並且晶振是不工作的。當晶振不工作時,電池的電流小於自放電電流,或處於室內溫度時每年的0.5%.

一些時間保持非易失性(NV) RAM模塊用到時鐘控制IC和一個SRAM,它們從廠家出來時,晶振不工作且電池對SRAM的供電是不連續的。VCC第一次去掉后,電池就連接到SRAM上,這個功能常稱為「啟封」,用於保存電池直到模塊首次使用。其它時間保持非易失性(NV) RAM模塊是單片集成電路(在一塊IC中有控制器和SRAM),不需要啟封。

模塊封裝

時間保持非易失性(NV) RAM,多路匯流排時鐘,一些看門狗和隱形時鐘都可用於模塊或者電源帽封裝。模塊內部嵌入一個32.768Hz的晶振和一個鋰電池,使得設計PCB變得更容易。然而,晶振和電池不能容耐再次迴流期間的溫度。在再次迴流后,模塊可以用手附上或插到座子上。只要鋰電池不會暴露在85℃以上溫度,模塊也可以用波焊的方法焊到PCB上。

電源帽產品採用兩片結構來提供一種能再次迴流過程的表面焊接設備。用標準的迴流技術可將含有RAM和時鐘的模塊底部安裝到電路板上。在焊接之後, 含有靈敏性電池和晶振的電源帽上部會突然折斷到底部。

時鐘格式

RTC用到了3種主要的數據格式,BCD格式,帶月,星期,年等單獨寄存器的二進位格式和無格式的二進位寄數器格式。

BCD是最常用的一種格式。它流行的一個原因是時間和日期數據可以很方便的讀取,而不用轉換。每8位寄存器代表兩個數字(每個數字一個半位),每4位比特二進位表示數字0到9。圖1顯示出了一個典型二進位時鐘格式圖。

因為有些位在特殊的時間或日期領域裡不需要,這些位可以用於特殊的功能,一般情況下是用作讀/寫位的,也可以用硬體讀返回而總是處於1或0狀態,這是由設計來決定的。在圖1中,秒寄存器的第7位是用作時鐘中斷位(CH)的。

第二種是二進位形式,各個單獨的寄存器和BCD格式一樣。在帶BCD格式的時鐘上二進位格式通常是可以編程進行選擇的。

第三種是在某種參考點的無格式二進位值中,用單個的多位元組寄存器來表示秒時間。

圖1.典型時間和日期寄存器圖

時間和日期寄存器每秒更新一次。日期的變化值依據月和二月所處的年而不同。星期寄存器除多匯流排時鐘外,與其它寄存器無關。星期寄存器在午夜增加,並從7到1變化。只要在程序中的分配是連續的,程序員可以選定任何特殊的一天作為「1」。在匯流排復用時鐘中,星期天必須是「1」,因為星期寄存器用白天保存測試。在先前的午夜變化上,為白天保存的測試在午夜完成了,當測試白天保存功能時這必須說明。

當時鐘格式由12小時格式成24小時格式,或從BCD格式變成二進位格式,或從二進位格式變成BCD格式,時間,日期,報警寄存器都必須重新進行初始化。

無格式的二進位計數器時鐘有一個單獨的寄存器,代表性地是32位,每秒能增加一次。通常,寄存器值00H被認為是某些預設的時間或日期值。例如,格林尼治時間1970年1月1號00:00:00就是「0點」。寄存器中的二進位值就代表從那一點走過的時間。軟體程序必須把32位的二進位值變成可以讀寫的時間和日期,並且將用戶數據轉化成二進位值。

Y2K Compliance

FS半導體RTCs 與Y2K相適應,兼容Y2K,或者是不包括對日期敏感的邏輯。一個適應Y2K的時鐘有這些邏輯,包括世紀信息(有世紀數字或世紀位),能夠正確計算閏年直到2099年,但要求系統軟體對世紀進行跟蹤。二進位秒時鐘沒有對日期敏感的邏輯,軟體必須計算正確的日期,包括閏年的正確性。

晶振和精確度

晶振是一種最精確的可以用來提供固定頻率的電路。32768Hz的晶振用於大多數RTCs。通過劃分晶振的輸出頻率,一個1HZ的參考頻率可用於更新時間和日期。時鐘的精確度主要取於晶振的精確度。調諧晶振對溫度有一個拋物線響應(圖2)。23ppm的誤差大約為每月一分鐘。

在特殊的容性負載下,晶振能調到正確的頻率處振蕩。在一個設計能提供6pF 電容負載的晶振的RTC中,用一個調到12.5pF的電容負載的晶振會導致RTC走得要快。

圖2.晶振的精確度與溫度

晶振的連接

所有FS的RTCs的內部都有一個偏置網路。晶振應直接連到X1和X2的引腳上,而沒其它任何元件(圖3)。晶振應儘可能近的接近X1和X2引腳。地平面應置於晶振,X1和X2下面(圖4)。數字信號線應當遠離晶振和晶振的引腳,有嚴重輻射的RFI的元件應屏蔽起來且遠離晶振。低功耗的晶振電路對附近的RFI敏感,RFI會引起時鐘走時變快。

圖3.RTC-等效電路顯示其內部的偏置網路

PC板上包括了可調晶振,例如那些帶RTCs,不能把超聲波排除在外。晶振可能由共振破壞。

晶振起振時間

晶振的起振時間在很大程度上依賴於晶振的特性和電路布局。高的串列等效電阻(ESR)和過大的電容負載是延長啟動時間的主要因素。用含有推薦的特性的晶振和依照推薦的電路布局的電路通常能在一秒內啟動晶振。

電池連接

大多數FS的RTCs都包括一個電池輸入引腳。電池是用來保持當主電源斷開后時鐘能夠正常走動。對於大多數設計來說,所用的電池都是鈕扣鋰電池。

有的RTCs用電源電壓作為參考來決定什麼時候VCC是有效電平。當VCC低於最小值時,器件進入防寫,禁止外部訪問器件。當器件工作在VCC條件下時,VBAT輸入將處於高阻狀態。如果電池沒有連接到VBAT上,或是連接到串列二極體,VBAT的輸入處於高電平漂浮狀態,引起RTC進入防寫。在FS的大多數時鐘內部都提供反充電防寫,以消除外部二極體。

讀/寫時間和日期

由於在讀或寫的過程中可以進行內部寄存器更新而沒數據的破壞,大多數FS 的時鐘都提供能確保訪問時間和日期的方法。

輔助緩衝寄存器(二級緩存)也用在串列時鐘上。當訪問(讀)RTC時,當前時間和日期傳送到輔助寄存器。一個脈衝讀信號將從輔助寄存器中讀數據,在內部寄存器連續更新時輔助寄存器的內容將保持不變。 下一次訪問(當晶元有效,複位或開始)將又一次傳送數據。當寄存器被寫時類似的過程發生,除非數據在訪問之前沒有被內部寄存器刷新。

在時間保持非易失性(NV)RAM時鐘上,用TE位或R和W位封存用戶寄存器。

有多匯流排時鐘里。有幾種方法能確保時間和日期寄存器在訪問間不變。以下方法即是:

設置位

B寄存器的SET位設為1時,用戶雙緩存時間和日期寄存器被鎖存了。內部寄存器仍然正常的不斷更新。

UIP 標誌

進程中的更新標誌位(UIP)每秒將產生一個脈衝。當UIP位變為高電平后,更新將在244uS后發生。如果UIP位讀出的為低電平,為避免更新時的錯誤用戶至少有244uS的時間可以讀寄存器的數據。

UF 中斷

如果使能,那麼在每一次更新周期之後產生一次中斷,該周期表明999ms能讀有效時間和日期信息。

默認的寄存器值

如果數據手冊中沒有特殊說明,初始上電寄存器值不確定。也就是說,它們和DROM或SRAM是一樣:初始上電后,用於實際的數據是隨機的。

發現並解決新設計中的問題

不能和RTC通信

在新的設計並解決問題的過程中,這裡有多種方法能夠幫助確定產生問題的原因。例如,如果顯現出來的是器件根本不通信,經常值得去確定該器件是否沒讀,寫或兩者都沒。如果器件有軟體使能的特點,例如方波輸出,嘗試著使那個特性有效是一個很好的方式去決定是否能夠寫器件。在2線器件上,示波器可以確定時鐘在傳送每個位元組后是否發送應答信號。下面的段落描述了一些附加的設計中的問題並解決的提示」

有備用電池的實時時鐘晶元用一個比較器在VCC和VBAT之間切換。有些實時時鐘晶元用電池電壓作為參考電壓,另外的用一個能帶參考電壓決定什麼時候VCC有效。當VCC下降到比較器的觸發點,就不能夠進行讀寫。在一個電壓下的禁止讀寫有助於對處理器進行不注意的寫,該處理器不再有有效的供應。而且,當VCC電壓高於觸發點,比較器把內部供電電源切換到VCC,防止電池耗盡。在電池電壓為參考的器件中,一個懸空電池輸入,在電池和VBAT之間有一個二極體的輸入,或有太高電壓的電池能制止和RTC的通信。確保VBAT在有效的電壓範圍內,並且在電池和電池輸入引腳之間沒有二極體。

串列時鐘要求正確的向器件中寫人命令位元組或從地址。不正確的命令/地址經常導致器件忽略讀操作。在那些情況下,數據I/O口終止於高阻態。在帶上拉電阻的串列線上,數據重複經常是0XFF。在3線介面中,如果I/O口有內部下拉電阻,數據經常是0。在其他的情況下,數據重複經常是命令位元組最後一位的值。有些串列時鐘用分離的輸入作輸出,以便在一個較低供應電壓時允許處理器協調工作。沒接有效的供應到輸入端會阻止I/O口驅動高電平。最後,如果軟體不能使處理器的埠(接到了時鐘的輸入輸出引腳)從輸出(寫命令節)切換到輸入(讀數據),那麼輸出的數據可能是全0或全1。

無效時間和數據值

大多數時間和日期寄存器能夠接收任何值,包括無效值。如果無效值進入寄存器,那麼該值將不斷增加,直到和發生翻轉的位相匹配后比較,達到最小值。如果時鐘處於錯誤的模式。也可能造成無效值,例如,二進位碼取代BCD碼,或12小時製取代24小時制。

數據丟失/數據破壞

有兩種情況可以引起數據丟失:無意中的寫時鐘或反相小故障脈衝電壓用到IC上。因為CH或/EOSC位(帶晶振控制位的時鐘上)處於默認的停止狀態, 反相電壓輸入到IC所造成的數據丟失有時能辨認。另外,大多數而不是所有的寄存器中的數據會破壞。無意中的寫一般發生在電源周期時,但是通常隻影響一個寄存器,而不影響串列時鐘。

在上電和/或掉電時許多現代的開關電源將在VCC上產生一個-5V或-6V或甚至更大的毛刺。通過輸入保護二極體,這個負電壓耦合到內部時鐘電源。如果電源能夠提供比電池大的電流,那麼數據將丟失。在某種情況下,用一個肖特基二極體可以鉗位這個負毛刺電壓。另外一個時鐘上的負電壓源來自RS232連接器。如果帶時鐘晶元的PCB板掉電,上電的PC或其他器件通過RS232連接器連接到那塊板上,RS232收發器晶元可能將負電壓傳到不上電的PCB板上的其他晶元。

無意中的寫也可能造成數據破壞。在防寫為有效前,在上電或掉電期間處理器能寫入錯誤的數據。在上電和掉電時,介面電路可能迫使輸入引腳進入寫狀態。在多匯流排時鐘的情況下,地址信號鎖存在ALE的下降沿。如果/WE和/CS在器件處於防寫之前變為低電壓,那麼在最後寄存器中最後訪問的數據會破壞。VCC的上升時間和下降時間應核對無誤以用於數據手冊的需要。

不正確的中斷程序處理造成間斷的數據問題。在某些情況下,時間和數據信息複製到RAM中去了,並且複製不是同步的。最後,在電路模擬(IEC)硬體配置不當,可以造成奇怪的行為。

晶振問題

時間不能增加的最普遍原因是晶振沒使能。許多FS時鐘晶元有一個在晶振工作前須置1的控制位(通常位於第二個寄存器)。

為延長電池使用時間,振蕩電路設計成低功耗。晶振的連接問題能降低閉環增益,阻止晶振工作。接到晶振的外部電容也減少閉環增益,增加啟振時間或阻止振動。示波器的探頭也能夠阻止振動。帶45K以上的等效串列電阻(ESR)的 晶振也將減少閉環增益。最後,留在電路板上的焊錫清潔劑可能阻止晶振起振。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦