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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR單片機與串行時鐘器件DS3231的應用設計

          AVR單片機與串行時鐘器件DS3231的應用設計

          作者: 時間:2012-06-07 來源:網(wǎng)絡 收藏
          1引言

          由單片機構成的測控系統(tǒng)或智能顯示屏經(jīng)常需要用到實時日歷或時鐘信號。為節(jié)省CPU資源,本文介紹了器件的應用及其與ATmega8的接口,該系統(tǒng)具有抗干擾能力強,計時準確且不隨季節(jié)變化產(chǎn)生誤差的特點。

          2 的結構及工作原理

          是低成本、高精度I2C實時時鐘(RTC)器件,具有集成的溫度補償晶體振蕩器(TCXO)。該器件包含電池輸入端,斷開主電源時仍可保持精確計時。集成的晶體振蕩器可提高器件的長期精確度。DS3231的寄存器能保存秒、分、時、星期、日期、月、年和鬧鐘設置等信息。少于31天的月份,可自動調(diào)整月末日期,包括閏年補償。時鐘的工作格式為24小時或帶AM/PM指示的12小時格式。DS3231提供兩個可編程日歷鬧鐘和一路可編程方波輸出。地址與數(shù)據(jù)通過I2C雙向串行總線傳輸。

          2.1 DS3231的組成及工作原理

          如圖1所示,DS3231的主要組成部分有8個模塊,劃分為4個功能組:TCXO、電源控制、按鈕復位和RTC。

          點擊在新窗口中瀏覽產(chǎn)品

          2.1.1 32 kHz的TCXO

          TCXO包括溫度傳感器、振蕩器和控制邏輯??刂破髯x取片上溫度傳感器輸出,使用查表法確定所需的電容,加上AGE寄存器的老化修正。然后設置電容選擇寄存器。僅在溫度變化或者用戶啟動的溫度轉換完成時,才加載包括AGE寄存器變化的新值。VCC初次上電時就會讀取溫度值,然后每隔64 s讀取一次。

          2.1.2 電源控制

          電源控制功能由溫度補償電壓基準(VPF)和監(jiān)視VCC電平的比較器電路提供。當VCC高于VPF時,DS3231由VCC供電,當VCC低于VPF但高于VBAT時,DS3231由VCC供電;當VCC低于VPF并低于VBAT時,DS3231由VBAT供電。為保護電池,VBAT首次加到器件時振蕩器并不啟動,除非加載VCC,或者向器件寫入一個有效的I2C地址。典型的振蕩器啟動時間在1 s以內(nèi)。在VCC加電后或者有效的I2C地址寫入后大約2 s,器件會測量一次溫度,并使用計算的修正值校準振蕩器。一旦振蕩器運行,只要電源(VCC或者VBAT)有效就會一直保持工作狀態(tài)。器件每隔64 s進行一次溫度測量并校準振蕩器頻率。

          2.1.3 按鈕復位

          DS3231具有連接至RST輸出引腳的按鈕開關功能。若DS3231不在復位周期,會持續(xù)監(jiān)視RST信號的下降沿。如果檢測到一個邊沿轉換,DS3231通過拉低RST完成開關去抖。內(nèi)部定時器定時結束后,DS3231繼續(xù)監(jiān)視RST信號。如果信號依舊保持低電平,DS3231持續(xù)監(jiān)視信號線以檢測上升沿。一旦檢測到按鈕釋放,DS3231強制RST為低電平并保持tRST。RST還可用于指示電源故障報警情況。當VCC低于VPF時,產(chǎn)生內(nèi)部電源故障報警信號,并強制拉低RST引腳。當VCC返回至超過VPF電平時。RST保持低電平大約250 ms(tREC),使供電電源達到穩(wěn)定。如果在VCC加載時,振蕩器不工作,將跳過tREC,RST立刻變?yōu)楦唠娖健?/P>

          2.1.4 時鐘和日歷RTC

          可以通過讀取適當?shù)募拇嫫髯止?jié)獲得時鐘和日歷信息。通過寫入適當?shù)募拇嫫髯止?jié)設定或者初始化時鐘和日歷數(shù)據(jù)。時鐘和日歷寄存器的內(nèi)容采用二-十進制編碼(BCD)格式。DS3231運行于12小時或者24小時模式。小時寄存器的第6位定義為12或24小時模式選擇位。該位為高時,選擇12小時模式。在12小時模式下,第5位為AM/PM指示位,邏輯高時為PM。

          2.1.5 鬧鐘

          DS3231包含2個定時/日期鬧鐘。鬧鐘1可通過寫入寄存器07h~0Ah設定。鬧鐘2可通過寫入寄存器0Bh~0Dh設定??蓪︳[鐘進行編程(通過控制寄存器的鬧鐘使能位和INTCN位),從而在鬧鐘匹配條件下觸發(fā)INT/SQW輸出。每個定時/日期鬧鐘寄存器的第7位是屏蔽位。當每個鬧鐘的屏蔽位均為邏輯0時,只有當計時寄存器中的值與存儲于定時/日期鬧鐘寄存器中的對應值相匹配時才會告警。鬧鐘也可以編程為每秒、分、時、星期或日期重復告警。當RTC寄存器值與鬧鐘寄存器的設定值相匹配時,相應的鬧鐘標志位A1F或A2F置為邏輯1。如果對應的鬧鐘中斷使能位A1IE或A2IE也置為邏輯1,并且INTCN位置為邏輯1,鬧鐘條件將會觸發(fā)INT/SQW信號。RTC在時間和日期寄存器每秒更新時都會檢測匹配情況。

          2.2 DS3231的內(nèi)部寄存器及功能

          DS3231寄存器地址為00h~12h,分別用于存放秒、分、時、星期、日期及鬧鐘設置信息。在多字節(jié)訪問期間,如果地址達到RAM空間的結尾12h處,將發(fā)生卷繞,此時定位到開始位置即00h單元。DS3231的時間和日歷信息通過讀取相應的寄存器來設置和初始化。輔助(用戶)緩沖區(qū)用于防止內(nèi)部寄存器更新時可能出現(xiàn)的錯誤。讀取時間和日歷寄存器時,用戶緩沖區(qū)在任何START條件下或者寄存器指針返回到零時與內(nèi)部寄存器同步。時間信息從這些輔助寄存器讀取,此時時鐘繼續(xù)保持運行狀態(tài)。這樣在讀操作期間發(fā)生主寄存器更新時可以避免重新讀取寄存器。以控制寄存器(地址為0EH)為例,可以控制實時時鐘、鬧鐘和方波輸出。其各位定義如表1。

          點擊在新窗口中瀏覽產(chǎn)品

          BIT7位:使能振蕩器(EOEC)。設定為邏輯0時,啟動振蕩器。如果設定為邏輯1,在DS3231電源切換至VBAT時,振蕩器停止。初次上電時該位清零(邏輯0)。當DS3231由VCC供電時,振蕩器與EOSC位的狀態(tài)無關,始終保持工作狀態(tài)。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();