<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > [組圖]實時時鐘電路設計

          [組圖]實時時鐘電路設計

          作者: 時間:2011-04-29 來源:網絡 收藏

          2.1 晶振與精度

          晶體振蕩器在固定頻率振蕩器中能夠提供較高的精度,絕大多數RTC采用32.768kHz的晶體,晶體振蕩器輸出經過分頻后會產生1Hz的基準來刷新時間和日期。RTC的精度主要取決于晶振的精度,溫度變化時,音叉晶振所具有的拋物線型的頻率響應特性曲線如圖1所示,23ppm的溫漂大約每月產生1分鐘的誤差。晶振一般在特定的電容負載下,其調諧振蕩在正確的頻點,而當晶振調諧于12.5pF負載的RTC電路中時,使用6pF負載的晶振將會使變快。Dallas Semiconductor提供的所有RTC均采用內部偏置網絡,因而晶振可直接連接到RTC的X1、X2引腳,而不需要額外的元件。由于RTC的晶振輸入電路具有很高的輸入阻抗(大約109Ω),因此,它與晶振的連線猶如一個天線,很容易耦合系統其余電路的高頻干擾。而干擾信號被耦合到晶振引腳將導致數的增加或減少??紤]到線路板上大多數信號的頻率高于32.768kHz,所以,通常會產生額外的時鐘脈沖計數。因此,晶振應盡可能靠近X1、X2引腳安裝,同時晶振、X1/X2引腳的下方最好布成地平面。圖2是一個推薦的晶振布線圖,其數字信號引腳需遠離晶振和振蕩器引腳,對于那些會產生明顯的射頻輻射的元件,設計時應加以屏蔽,并使其遠離晶振,特點是低功耗晶振,它對鄰近的射頻干擾非常敏感,往往會導致時鐘加快。

          另外,由于振蕩器啟動時間、晶振的性能以及線路板的布局有關。實際上,較大的等效串聯電阻(ESR)和過大的電容負載都會延長振蕩器的啟動時間,而且,ESR較大時,還會造成較大的功率損耗。因此,設計時應按照對晶振特片參數的要求來選擇晶振,同時應提供合理的線路板布局以便使啟動時間能夠控制在1秒鐘以內。

          2.2 功耗問題

          許多時鐘都采用電池供電,典型應用是利用一塊小的鋰電池在主電源掉電時直接驅動振蕩器和時鐘電路。為有效延長電池的使用壽命,振蕩器必需消耗盡可能少的能量。為了保證這一點,應謹慎考慮振蕩器的設計。典型的高頻振蕩電路ESR較低,但設計中一般會留出5倍、甚至10倍的ESR裕量,而低頻晶振則具有較高的ESR。對于一個RTC振蕩器,或許留出2倍的負阻裕量即可,振蕩器的負阻裕量越小、耗電越低,但是,這種電路對寄生參數、噪聲非常敏感。此外,振蕩電路的負載電容對功耗也有一定影響,雖然12.5pF內部負載的RTC的耗電要比6pF負載的RTC大,但是,它通常具有更高的抗干擾能力。

          3 典型應用電路

          DS1340是Dallas Semiconductor推出的一款2線串行接口低功耗時鐘/日歷芯片,它具有涓流充電、時鐘校準功能,可提供秒、分鐘、小時、星期、日期、月、年等信息,日期在月末可按照月、年自動調整,并帶有潤年修正。DS1340內部的電源檢測電路可檢測主電源電壓,必要時能自動切換到備用電源供電。其典型應用電路連接方法如圖3所示,該電路的外部晶振要求典型振蕩頻率為32.768kHz,ESR低于45kΩ,負載電容為12.5pF。DS1340的數字時鐘校準功能還可補償由于晶振和溫度變化產生的誤差,圖4給出了時鐘校準的流程


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();