ds3231簡介
DS3231是“美信”品牌型號,中國地區代理價格單片為20元左右。
DS3231是低成本、高精度I2C實時時鐘(RTC),具有集成的溫補晶振(TCXO)和晶體。該器件包含電池輸入端,斷開主電源時仍可保持精確的計時。集成晶振提高了器件的長期精確度,并減少了生產線的元件數量。DS3231提供商用級和工業級溫度范圍,采用16引腳300mil的SO封裝。
RTC保存秒、分、時、星期、日期、月和年信息。少于31天的月份,將自動調整月末的日期,包括閏年的修正。時鐘的工作格式可以是24小時或帶/AM/PM指示的12小時格式。提供兩個可設置的日歷鬧鐘和一個可設置的方波輸出。地址與數據通過I2C雙向總線串行傳輸。
精密的、經過溫度補償的電壓基準和比較器電路用來監視VCC狀態,檢測電源故障,提供復位輸出,并在必要時自動切換到備份電源。另外,/RST監視引腳可以作為產生μP復位的手動輸入。
除計時精度高之外,DS3231還具有一些其它功能,這些功能擴展了系統主機的附加功能和選擇范圍。該器件內部集成了一個非常精確的數字溫度傳感器,可通過I2C*接口對其進行訪問(如同時間一樣)。這個溫度傳感器的精度為±3°C。片上控制電路可實現自動電源檢測,并管理主電源和備用電源(即低壓電池)之間的電源切換。如果主電源掉電,該器件仍可繼續提供精確的計時和溫度,性能不受影響。當主電源重新加電或電壓值返回到容許范圍內時,片上復位功能可用來重新啟動系統微處理器。
ds3231引腳圖
DS323l的引腳功能
32 kHz是32 kHz頻率輸出;
VCC用于主電源的DC引腳;
/INT/SQW為低電平有效中斷或方波輸出:是低電平有效復位引腳;
N.C.表示無連接,外部必須接地;
GND為地;
VBAT為備用電源輸入;
SDA為串行數據輸入、輸出;
SCL為串行時鐘輸入。
DS3231內部方框圖
ds3231特性參數
0°C至+40°C范圍內精度為±2ppm -40°C至+85°C范圍內精度為±3.5ppm
為連續計時提供電池備份輸入
工作溫度范圍 商用級:0°C至+70°C 工業級:-40°C至+85°C
低功耗
實時時鐘產生秒、分、時、星期、日期、月和年計時,并提供有效期到2100年的閏年補償
兩個日歷鬧鐘
可編程方波輸出
高速(400kHz) I2C接口
工作在3.3V
數字溫度傳感器輸出:精度為±3°C
老化修正寄存器 /RST輸出/按鈕復位去抖輸入
通過美國保險商實驗室協會(UL)認證
DS3231時鐘芯片結構
如下圖1所示,DS3231的主要組成部分有8個模塊,劃分為4個功能組:TCXO、電源控制、按鈕復位和RTC。
32 kHz的TCXO
TCXO包括溫度傳感器、振蕩器和控制邏輯。控制器讀取片上溫度傳感器輸出,使用查表法確定所需的電容,加上AGE寄存器的老化修正。然后設置電容選擇寄存器。僅在溫度變化或者用戶啟動的溫度轉換完成時,才加載包括AGE寄存器變化的新值。VCC初次上電時就會讀取溫度值,然后每隔64 s讀取一次。
DS3231的內部寄存器及功能
DS3231寄存器地址為00h~12h,分別用于存放秒、分、時、星期、日期及鬧鐘設置信息。在多字節訪問期間,如果地址達到RAM空間的結尾12h處,將發生卷繞,此時定位到開始位置即00h單元。DS3231的時間和日歷信息通過讀取相應的寄存器來設置和初始化。用戶輔助緩沖區用于防止內部寄存器更新時可能出現的錯誤。讀取時間和日歷寄存器時,用戶緩沖區在任何START條件下或者寄存器指針返回到零時與內部寄存器同步。時間信息從這些輔助寄存器讀取,此時時鐘繼續保持運行狀態。這樣在讀操作期間發生主寄存器更新時可以避免重新讀取寄存器。以控制寄存器(地址為0EH)為例,可以控制實時時鐘、鬧鐘和方波輸出。其各bit定義如下表。
BIT7位:使能振蕩器(EOEC)。設定為邏輯0時,啟動振蕩器。如果設定為邏輯1,在DS3231電源切換至VBAT時,振蕩器停止。初次上電時該位清零 (邏輯0) 。當DS3231由VCC供電時,振蕩器與EOSC位的狀態無關,始終保持工作狀態。
BIT6位:電池備份的方波使能(BBSOW)。當設定為邏輯1并且DS3231由VBAT引腳供電時,在沒有加載VCC的情況下,該位使能方波輸出。當BB-SQW設定為邏輯0時,若VCC降至低于電源故障門限值,則INT/SQW引腳變為高阻抗。初次上電時,該位清零(邏輯0)。
BIT5位:轉換溫度(CONV)。該位置為1時,強制溫度傳感器將溫度轉換成數字,并執行TCXO算法更新振蕩器的電容陣列。只在空閑期間有效。狀態位BSY=1時,禁止設定轉換溫度位。用戶在強制控制器開始新的TCXO操作之前。應檢查狀態位BSY。用戶啟動的溫度轉換不影響內部64 s更新周期。用戶啟動的溫度轉換在大約2 ms內不會影響BSY位。CONV位從寫入開始直到轉換完成一直保持為1,轉換完后,CONV和BSY均變為0。在監視用戶啟動轉換狀態時,應使用CONV位。
BIT4和BIT3位:頻率選擇(RS2和RS1),初次上電時,BIT4和BIT3設置為邏輯1。方波使能時用于控制方波輸出的頻率。RS1、RS2的邏輯值與方波輸出頻率的關系如表2所列。
BIT2位:中斷控制(INTCN)。該位控制INT/SQW信號。INTCN置為0時,INT/SQW引腳輸出方波;INTCN置為1時,若計時寄存器與任一個鬧鐘寄存器相匹配,則會觸發INT/SQW信號(如果也使能鬧鐘的話)。匹配時相應的鬧鐘標志總是置位,而與INTCN位的狀態無關。初次上電時,INTCN位置為邏輯1。
BIT1位:鬧鐘2中斷使能(A2IE)。該位置為邏輯1時,允許狀態寄存器中的鬧鐘2標志位(A2F)觸發INT/SQW信號(當INTCN=1時)。當A2IE位置為0或者INTCN置為0時,A2F位不啟動中斷信號。初次上電時,A2IE位清零(邏輯0)。
BIT0位:鬧鐘1中斷使能(A1IE)。該位置為邏輯1時,允許狀態寄存器中的鬧鐘1標志位(A1F)觸發INT/SQW信號(當INTCN=1時)。當A1IE位置為0或者INTCN置為0時,A1F位不啟動INT/SQW信號。初次上電時,A1IE位清零(邏輯0)。
3. DS3231的電源控制
電源控制功能由溫度補償電壓基準(VPF)和監視VCC電平的比較器電路提供。當VCC高于VPF時,DS3231由VCC供電,當VCC低于VPF但高于VBAT時,DS3231由VCC供電;當VCC低于VPF并低于VBAT時,DS3231由VBAT供電。為保護電池,VBAT首次加到器件時振蕩器并不啟動,除非加載VCC,或者向器件寫入一個有效的I2C地址。典型的振蕩器啟動時間在1 s以內。在VCC加電后或者有效的I2C地址寫入后大約2 s,器件會測量一次溫度,并使用計算的修正值校準振蕩器。一旦振蕩器運行,只要電源(VCC或者VBAT)有效就會一直保持工作狀態。器件每隔64 s進行一次溫度測量并校準振蕩器頻率。
4. DS3231的時鐘和日歷RTC
可以通過讀取適當的寄存器字節獲得時鐘和日歷信息。通過寫入適當的寄存器字節設定或者初始化時鐘和日歷數據。時鐘和日歷寄存器的內容采用二-十進制編碼(BCD)格式。DS3231運行于12小時或者24小時模式。小時寄存器的第6位定義為12或24小時模式選擇位。該位為高時,選擇12小時模式。在12小時模式下,第5位為AM/PM指示位,邏輯高時為PM。
5. DS3231的復位按鈕
DS3231具有連接至RST輸出引腳的按鈕開關功能。若DS3231不在復位周期,會持續監視RST信號的下降沿。如果檢測到一個邊沿轉換,DS3231通過拉低RST完成開關去抖。內部定時器定時結束后,DS3231繼續監視RST信號。如果信號依舊保持低電平,DS3231持續監視信號線以檢測上升沿。一旦檢測到按鈕釋放,DS3231強制RST為低電平并保持tRST。RST還可用于指示電源故障報警情況。當VCC低于VPF時,產生內部電源故障報警信號,并強制拉低RST引腳。當VCC返回至超過VPF電平時。RST保持低電平大約250 ms(tREC),使供電電源達到穩定。如果在VCC加載時,振蕩器不工作,將跳過tREC,RST立刻變為高電平。
6. DS3231的鬧鐘和報警功能
DS3231包含2個定時/日期鬧鐘。鬧鐘1可通過寫入寄存器07h~0Ah設定。鬧鐘2可通過寫入寄存器0Bh~0Dh設定。可對鬧鐘進行編程(通過控制寄存器的鬧鐘使能位和INTCN位),從而在鬧鐘匹配條件下觸發INT/SQW輸出。每個定時/日期鬧鐘寄存器的第7位是屏蔽位。當每個鬧鐘的屏蔽位均為邏輯0時,只有當計時寄存器中的值與存儲于定時/日期鬧鐘寄存器中的對應值相匹配時才會告警。鬧鐘也可以編程為每秒、分、時、星期或日期重復告警。當RTC寄存器值與鬧鐘寄存器的設定值相匹配時,相應的鬧鐘標志位A1F或A2F置為邏輯1。如果對應的鬧鐘中斷使能位A1IE或A2IE也置為邏輯1,并且INTCN位置為邏輯1,鬧鐘條件將會觸發INT/SQW信號。RTC在時間和日期寄存器每秒更新時都會檢測匹配情況。
7. DS3231的 I2C 總線時序,數據交換及其格式及編程注意事項
DS3231在I2C總線上作為從器件。通過執行START命令并且在驗證器件地址后才可以訪問。然后寄存器可以被訪問直到執行一個STOP命令為止。
所有在I2C總線上傳輸的地址包長度均為9位,它包括7個地址位,1個R/W控制位和1個應答位ACK,如果R/W為1,則執行讀操作;如果R/W為0,則執行寫操作。從機尋址后,必須在第9個SCL(ACK)周期通過拉低SDA做出應答,若從機忙或者無法響應主機,則應在ACK周期內保持SDA為高。然后主機發出STOP狀態或者REP START狀態重新開始發送。地址包包括從機地址和稱為SLA+R或者SLA+W的READ或者WRITE位。地址字節的MSB首先被發送。所有1111xxxx的地址均保留。以便將來使用。
所有在I2C總線上傳送的數據包長度均為9位,它包括8個數據位和1個應答位。在數據傳送中,主機產生時鐘及START與STOP狀態,而接收器響應接收。應答是由ACK在第9個SCL周期拉低SDA實現的。如果接收器拉高SDA,則發送NACK信號。如果接收器由于某種原因不能接收更多數據,應在最后一個數據字節后發出NACK信號告訴發送器停止發送,首先發送數據的MSB。
ds3231應用電路
下圖為DS3231典型應用電路,圖中可看出,DS3231幾乎不需要
?