DS3231結(jié)構(gòu)與功能原理
DS3231內(nèi)置晶振且有內(nèi)部溫度補(bǔ)償,誤差可做到1分鐘每年。
一、DS3231概述
DS3231是一款高精度I2C實(shí)時時鐘器件,具有集成的溫度補(bǔ)償晶體振蕩器傲武。該器件包含電池輸入端,斷開主電源時仍可保持精確計時城榛。集成的晶體振蕩器可提高器件的長期精確度揪利。DS3231的寄存器能保存秒、分狠持、時疟位、星期、日期喘垂、月甜刻、年和鬧鐘設(shè)置等信息。少于31天的月份正勒,可自動調(diào)整月末日期得院,包括閏年補(bǔ)償。時鐘的工作格式為24小時或帶AM/PM指示的12小時格式章贞。DS3231提供兩個可編程日歷鬧鐘和一路可編程方波輸出祥绞。DS3231與單片機(jī)通過I2C雙向串行總線傳輸?shù)刂放c數(shù)據(jù)。
二鸭限、引腳介紹
VCC為電源引腳蜕径;
INT/SQW為低電平有效中斷或方波輸出:是低電平有效復(fù)位引腳;
N.C.表示無連接败京,外部必須接地兜喻;
GND為地;
VBAT為備用電源輸入喧枷;
SDA為串行數(shù)據(jù)輸入輸出虹统;
SCL為串行時鐘輸入。
三隧甚、內(nèi)部結(jié)構(gòu)與功能原理
32 kHz的TCXO
TCXO包括溫度傳感器车荔、振蕩器和控制邏輯∑莅猓控制器讀取片上溫度傳感器輸出忧便,使用查表法確定所需的電容,加上AGE寄存器的老化修正帽借。然后設(shè)置電容選擇寄存器珠增。僅在溫度變化或者用戶啟動的溫度轉(zhuǎn)換完成時,才加載包括AGE寄存器變化的新值砍艾。VCC初次上電時就會讀取溫度值蒂教,然后每隔64 s讀取一次。
DS3231的電源控制
電源控制功能由溫度補(bǔ)償電壓基準(zhǔn)(VPF)和監(jiān)視VCC電平的比較器電路提供脆荷。當(dāng)VCC高于VPF時凝垛,DS3231由VCC供電,當(dāng)VCC低于VPF但高于VBAT時蜓谋,DS3231由VCC供電梦皮;當(dāng)VCC低于VPF并低于VBAT時,DS3231由VBAT供電桃焕。為保護(hù)電池剑肯,VBAT首次加到器件時振蕩器并不啟動,除非加載VCC观堂,或者向器件寫入一個有效的I2C地址让网。典型的振蕩器啟動時間在1 s以內(nèi)。在VCC加電后或者有效的I2C地址寫入后大約2 s师痕,器件會測量一次溫度寂祥,并使用計算的修正值校準(zhǔn)振蕩器。一旦振蕩器運(yùn)行七兜,只要電源(VCC或者VBAT)有效就會一直保持工作狀態(tài)丸凭。器件每隔64 s進(jìn)行一次溫度測量并校準(zhǔn)振蕩器頻率。
DS3231的時鐘和日歷RTC
可以通過讀取適當(dāng)?shù)募拇嫫髯止?jié)獲得時鐘和日歷信息腕铸。通過寫入適當(dāng)?shù)募拇嫫髯止?jié)設(shè)定或者初始化時鐘和日歷數(shù)據(jù)惜犀。時鐘和日歷寄存器的內(nèi)容采用二-十進(jìn)制編碼(BCD)格式。DS3231運(yùn)行于12小時或者24小時模式狠裹。小時寄存器的第6位定義為12或24小時模式選擇位虽界。該位為高時,選擇12小時模式涛菠。在12小時模式下莉御,第5位為AM/PM指示位撇吞,邏輯高時為PM。
DS3231的復(fù)位按鈕
DS3231具有連接至RST輸出引腳的按鈕開關(guān)功能礁叔。若DS3231不在復(fù)位周期牍颈,會持續(xù)監(jiān)視RST信號的下降沿。如果檢測到一個邊沿轉(zhuǎn)換琅关,DS3231通過拉低RST完成開關(guān)去抖煮岁。內(nèi)部定時器定時結(jié)束后,DS3231繼續(xù)監(jiān)視RST信號涣易。如果信號依舊保持低電平画机,DS3231持續(xù)監(jiān)視信號線以檢測上升沿。一旦檢測到按鈕釋放新症,DS3231強(qiáng)制RST為低電平并保持tRST步氏。RST還可用于指示電源故障報警情況。當(dāng)VCC低于VPF時徒爹,產(chǎn)生內(nèi)部電源故障報警信號戳护,并強(qiáng)制拉低RST引腳。當(dāng)VCC返回至超過VPF電平時瀑焦。RST保持低電平大約250 ms(tREC)腌且,使供電電源達(dá)到穩(wěn)定。如果在VCC加載時榛瓮,振蕩器不工作铺董,將跳過tREC,RST立刻變?yōu)楦唠娖健?/p>
DS3231的鬧鐘和報警功能
DS3231包含2個定時/日期鬧鐘禀晓。鬧鐘1可通過寫入寄存器07h~0Ah設(shè)定精续。鬧鐘2可通過寫入寄存器0Bh~0Dh設(shè)定〈饫粒可對鬧鐘進(jìn)行編程(通過控制寄存器的鬧鐘使能位和INTCN位)重付,從而在鬧鐘匹配條件下觸發(fā)INT/SQW輸出。每個定時/日期鬧鐘寄存器的第7位是屏蔽位凫乖。當(dāng)每個鬧鐘的屏蔽位均為邏輯0時确垫,只有當(dāng)計時寄存器中的值與存儲于定時/日期鬧鐘寄存器中的對應(yīng)值相匹配時才會告警。鬧鐘也可以編程為每秒帽芽、分删掀、時、星期或日期重復(fù)告警导街。當(dāng)RTC寄存器值與鬧鐘寄存器的設(shè)定值相匹配時披泪,相應(yīng)的鬧鐘標(biāo)志位A1F或A2F置為邏輯1。如果對應(yīng)的鬧鐘中斷使能位A1IE或A2IE也置為邏輯1搬瑰,并且INTCN位置為邏輯1款票,鬧鐘條件將會觸發(fā)INT/SQW信號控硼。RTC在時間和日期寄存器每秒更新時都會檢測匹配情況。
DS3231的控制寄存器及其功能
BIT7位:使能振蕩器(EOEC)艾少。設(shè)定為邏輯0時卡乾,啟動振蕩器。如果設(shè)定為邏輯1姆钉,在DS3231電源切換至VBAT時说订,振蕩器停止抄瓦。初次上電時該位清零 (邏輯0) 潮瓶。當(dāng)DS3231由VCC供電時,振蕩器與EOSC位的狀態(tài)無關(guān)钙姊,始終保持工作狀態(tài)毯辅。
BIT6位:電池備份的方波使能(BBSOW)。當(dāng)設(shè)定為邏輯1并且DS3231由VBAT引腳供電時煞额,在沒有加載VCC的情況下思恐,該位使能方波輸出。當(dāng)BB-SQW設(shè)定為邏輯0時膊毁,若VCC降至低于電源故障門限值胀莹,則INT/SQW引腳變?yōu)楦咦杩埂3醮紊想姇r婚温,該位清零(邏輯0)描焰。
BIT5位:轉(zhuǎn)換溫度(CONV)。該位置為1時栅螟,強(qiáng)制溫度傳感器將溫度轉(zhuǎn)換成數(shù)字荆秦,并執(zhí)行TCXO算法更新振蕩器的電容陣列。只在空閑期間有效力图。狀態(tài)位BSY=1時步绸,禁止設(shè)定轉(zhuǎn)換溫度位。用戶在強(qiáng)制控制器開始新的TCXO操作之前吃媒。應(yīng)檢查狀態(tài)位BSY瓤介。用戶啟動的溫度轉(zhuǎn)換不影響內(nèi)部64 s更新周期。用戶啟動的溫度轉(zhuǎn)換在大約2 ms內(nèi)不會影響B(tài)SY位赘那。CONV位從寫入開始直到轉(zhuǎn)換完成一直保持為1惑朦,轉(zhuǎn)換完后,CONV和BSY均變?yōu)?漓概。在監(jiān)視用戶啟動轉(zhuǎn)換狀態(tài)時漾月,應(yīng)使用CONV位。
BIT4和BIT3位:頻率選擇(RS2和RS1)胃珍,初次上電時梁肿,BIT4和BIT3設(shè)置為邏輯1蜓陌。方波使能時用于控制方波輸出的頻率。RS1吩蔑、RS2的邏輯值與方波輸出頻率的關(guān)系如表所列钮热。
BIT2位:中斷控制(INTCN)。該位控制INT/SQW信號烛芬。INTCN置為0時隧期,INT/SQW引腳輸出方波;INTCN置為1時赘娄,若計時寄存器與任一個鬧鐘寄存器相匹配仆潮,則會觸發(fā)INT/SQW信號(如果也使能鬧鐘的話)。匹配時相應(yīng)的鬧鐘標(biāo)志總是置位遣臼,而與INTCN位的狀態(tài)無關(guān)性置。初次上電時,INTCN位置為邏輯1揍堰。
BIT1位:鬧鐘2中斷使能(A2IE)鹏浅。該位置為邏輯1時,允許狀態(tài)寄存器中的鬧鐘2標(biāo)志位(A2F)觸發(fā)INT/SQW信號(當(dāng)INTCN=1時)屏歹。當(dāng)A2IE位置為0或者INTCN置為0時隐砸,A2F位不啟動中斷信號。初次上電時蝙眶,A2IE位清零(邏輯0)季希。
BIT0位:鬧鐘1中斷使能(A1IE)。該位置為邏輯1時械馆,允許狀態(tài)寄存器中的鬧鐘1標(biāo)志位(A1F)觸發(fā)INT/SQW信號(當(dāng)INTCN=1時)胖眷。當(dāng)A1IE位置為0或者INTCN置為0時,A1F位不啟動INT/SQW信號霹崎。初次上電時珊搀,A1IE位清零(邏輯0)。