單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用_第1頁
單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用_第2頁
單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用_第3頁
單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用_第4頁
單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)與高精度時(shí)鐘芯片DS3231的接口應(yīng)用1.前言在許多單片機(jī)的測(cè)控系統(tǒng)和家用電器中都含有時(shí)鐘顯示部分,最廉價(jià)的是直接使用單片機(jī)中的定時(shí)器,輔以一定的中斷服務(wù)程序,構(gòu)成時(shí)鐘顯示部分,這種方式是幾乎不需要增加新的硬件即可實(shí)現(xiàn),缺點(diǎn)是計(jì)時(shí)誤差大,同時(shí)電源掉電不能保持時(shí)鐘繼續(xù)運(yùn)行。在相對(duì)要求較高的場(chǎng)合, 則使用廉價(jià)的時(shí)鐘芯片(如DS1302等等)輔以備用電池,計(jì)時(shí)精度略高,可滿足一般的要求。在這篇文章中,我們重點(diǎn)介紹高精度時(shí)鐘電 路DS3231的設(shè)計(jì)和應(yīng)用。在 DS1302普及型時(shí)鐘 芯片,晶體均需外置,由于晶體的離散性,很難 選擇到精度很高的器件,同時(shí)也沒有溫度補(bǔ)償電 路,不同的溫度環(huán)境下,晶體

2、的特性也在變化, 直接影響著時(shí)鐘的振蕩頻率,較大的誤差在所在 所難免。而DS3231高精度時(shí)鐘芯片,將晶體和溫 度補(bǔ)償均集成在芯片中,為提高計(jì)時(shí)精度提供了 可能,實(shí)冊(cè)證明,使用DS3231時(shí)鐘芯片,誤差可 做到一年小于一分鐘,甚至部分顯示器誤差可小 于20 秒/一年。這對(duì)有相對(duì)精確時(shí)鐘要求的應(yīng)用場(chǎng) 合是個(gè)理想的選擇。2. DS3231時(shí)鐘芯片結(jié)構(gòu)原理DS3231是一款高精度I2C實(shí)時(shí)時(shí)鐘(RTC)器 件,具有集成的溫度補(bǔ)償晶體振蕩器仃CXO)。該器件包含電池輸入端,斷開主電源時(shí)仍可保持精 確計(jì)時(shí)。集成的晶體振蕩器可提高器件的長(zhǎng)期精 確度。DS3231的寄存器能保存秒、分、時(shí)、星期、 日期、月、

3、年和鬧鐘設(shè)置等信息。少于31天的月份,可自動(dòng)調(diào)整月末日期,包括閏年補(bǔ)償。時(shí)鐘 的工作格式為24小時(shí)或帶 AM/ PM指示的12小時(shí) 格式。DS3231提供兩個(gè)可編程日歷鬧鐘和一路可 編程方波輸出。DS3231與單片機(jī)通過I2C雙向串 行總線傳輸?shù)刂放c數(shù)據(jù)。£ MLU aaawmiH北 | SCL 函&DA 可咖jj FiC1J N.G.Ifll ii.C.SOP-16下圖為DS3231典型應(yīng)用電路,圖中可看出,DS3231幾乎不需要外部元件。VCC*VCCVccSCLINSDA32-.IL石.DALLAS恤MC03231N.C臨NC.U.C.ru.他匚3. DS3231時(shí)鐘芯

4、片結(jié)構(gòu)如圖1所示,DS3231的主要組成部分有8個(gè)模塊,劃分為4個(gè)功能組:TCX0、電源控制、按鈕復(fù) 位和RTC。1. 32 kHz 的 TCX0TCX0包括溫度傳感器、振蕩器和控制邏輯??刂破髯x取片上溫度傳感器輸岀,使用查表法確定 所需的電容,加上 AGE寄存器的老化修正。然后設(shè)置電容選擇寄存器。僅在溫度變化或者用戶啟動(dòng) 的溫度轉(zhuǎn)換完成時(shí),才加載包括AGE寄存器變化的新值。VCC初次上電時(shí)就會(huì)讀取溫度值,然后每隔64 s讀取一次。證陣列l(wèi)_T聽動(dòng)器方波韁沖器中斷控制VCCV1*TGHDSCISEA*電源控制傳感器報(bào)警,狀態(tài)控制寄有器時(shí)鐘,日歷 寄存器T叱接口電路kJ地址寄許器用戶縝徉(T字節(jié)

5、)1BKMR&S3231-KST參考電壓 切換電路 按犍復(fù)位2. DS3231的內(nèi)部寄存器及功能DS3231寄存器地址為00h12h,分別用于存放秒、分、時(shí)、星期、日期及鬧鐘設(shè)置信息。在多 字節(jié)訪問期間,如果地址達(dá)到RAM空間的結(jié)尾12h處,將發(fā)生卷繞,此時(shí)定位到開始位置即00h單元.DS3231的時(shí)間和日歷信息通過讀取相應(yīng)的寄存器來設(shè)置和初始化。用戶輔助緩沖區(qū)用于防止內(nèi)部寄 存器更新時(shí)可能出現(xiàn)的錯(cuò)誤。讀取時(shí)間和日歷寄存器時(shí),用戶緩沖區(qū)在任何START條件下或者寄存器指針返回到零時(shí)與內(nèi)部寄存器同步。時(shí)間信息從這些輔助寄存器讀取,此時(shí)時(shí)鐘繼續(xù)保持運(yùn)行狀態(tài)。這樣在讀操作期間發(fā)生主寄存器更新

6、時(shí)可以避免重新讀取寄存器。以控制寄存器(地址為0EH)為例,可以控制實(shí)時(shí)時(shí)鐘、鬧鐘和方波輸岀。其各bit定義如下表。BIT 7BIT 6BIT 5MT 4BIT 3BITSBtT1BITOrosEBBSQWCONVRS2RS1INTCNA2IEAtlE00011100BIT7位:使能振蕩器(EOEC)。設(shè)定為邏輯0時(shí),啟動(dòng)振蕩器。如果設(shè)定為邏輯1,在DS3231電源切換至VBAT時(shí),振蕩器停止。初次上電時(shí)該位清零(邏輯0)。當(dāng)DS3231由VCC供電時(shí),振蕩器與EOSC位的狀態(tài)無關(guān),始終保持工作狀態(tài)。BIT6位:電池備份的方波使能(BBSOW)。當(dāng)設(shè)定為邏輯1并且DS3231由VBAT引腳供電

7、時(shí),在沒 有加載VCC的情況下,該位使能方波輸出。當(dāng) BB-SQW設(shè)定為邏輯0時(shí),若VCC降至低于電源故障 門限值,貝U INT/ SQW引腳變?yōu)楦咦杩埂3醮紊想姇r(shí),該位清零(邏輯0)。BIT5位:轉(zhuǎn)換溫度(CONV)。該位置為1時(shí),強(qiáng)制溫度傳感器將溫度轉(zhuǎn)換成數(shù)字,并執(zhí)行 TCXO算 法更新振蕩器的電容陣列。只在空閑期間有效。狀態(tài)位BSY=1時(shí),禁止設(shè)定轉(zhuǎn)換溫度位。用戶在強(qiáng)制控制器開始新的TCXO操作之前。應(yīng)檢查狀態(tài)位BSY。用戶啟動(dòng)的溫度轉(zhuǎn)換不影響內(nèi)部 64 s更新周期。 用戶啟動(dòng)的溫度轉(zhuǎn)換在大約 2 ms內(nèi)不會(huì)影響B(tài)SY位。CONV位從寫入開始直到轉(zhuǎn)換完成一直保持為1,轉(zhuǎn)換完后,CONV和

8、BSY均變?yōu)?。在監(jiān)視用戶啟動(dòng)轉(zhuǎn)換狀態(tài)時(shí),應(yīng)使用CONV位。BIT4和 BIT3 位:頻率選擇(RS2和RS1),初 次上電時(shí),BIT4和BIT3 設(shè)置為邏輯1。方波使能 時(shí)用于控制方波輸岀的 頻率。RS1、RS2的邏輯 值與方波輸岀頻率的關(guān) 系如表2所列。方波輅出頻率與RM, RS1設(shè)置關(guān)¥RS2RS1方波輸岀SS率Q01H2011.024 kHz1011&192kHzBIT2位:中斷控制(INTCN)。該位控制INT /SQW信號(hào)。INTCN置為0時(shí),INT /SQW弓I腳輸出 方波;INTCN置為1時(shí),若計(jì)時(shí)寄存器與任一個(gè)鬧鐘寄存器相匹配,則會(huì)觸發(fā)INT /SQW信號(hào)(

9、如果也使能鬧鐘的話)。匹配時(shí)相應(yīng)的鬧鐘標(biāo)志總是置位, 而與INTCN位的狀態(tài)無關(guān)。初次上電時(shí),INTCN 位置為邏輯1。BIT1位:鬧鐘2中斷使能(A2IE)。該位置為邏輯1時(shí),允許狀態(tài)寄存器中的鬧鐘 2標(biāo)志位(A2F)觸發(fā) INT / SQW信號(hào)(當(dāng)INTCN=1時(shí))。當(dāng)A2IE位置為0或者INTCN置為0時(shí),A2F位不啟動(dòng)中斷信號(hào)。初 次上電時(shí),A2IE位清零(邏輯0)。BIT0位:鬧鐘1中斷使能(A1IE)。該位置為邏輯1時(shí),允許狀態(tài)寄存器中的鬧鐘 1標(biāo)志位(A1F)觸發(fā) INT / SQW信號(hào)(當(dāng)INTCN=1時(shí))。當(dāng)A1IE位置為0或者INTCN置為0時(shí),A1F位不啟動(dòng)INT / S

10、QW 信號(hào)。初次上電時(shí),A1IE位清零(邏輯0)。3. DS3231的電源控制電源控制功能由溫度補(bǔ)償電壓基準(zhǔn)(VPF)和監(jiān)視VCC電平的比較器電路提供。當(dāng)VCC高于VPF時(shí),DS3231由VCC供電,當(dāng)VCC低于VPF但高于 VBAT時(shí),DS3231由VCC供電;當(dāng)VCC低于VPF并低 于VBAT時(shí),DS3231由VBAT供電。為保護(hù)電池,VBAT首次加到器件時(shí)振蕩器并不啟動(dòng),除非加載VCC,或者向器件寫入一個(gè)有效的I2C地址。典型的振蕩器啟動(dòng)時(shí)間在 1 s以內(nèi)。在VCC加電后或者有效的I2C地址寫入后大約2 S,器件會(huì)測(cè)量一次溫度,并使用計(jì)算的修正值校準(zhǔn)振蕩器。一旦振蕩 器運(yùn)行,只要電源(V

11、CC或者VBAT)有效就會(huì)一直保持工作狀態(tài)。器件每隔64 s進(jìn)行一次溫度測(cè)量并校準(zhǔn)振蕩器頻率。4. DS3231的時(shí)鐘和日歷 RTC可以通過讀取適當(dāng)?shù)募拇嫫髯止?jié)獲得時(shí)鐘和日歷信息。通過寫入適當(dāng)?shù)募拇嫫髯止?jié)設(shè)定或者初始化時(shí)鐘和日歷數(shù)據(jù)。時(shí)鐘和日歷寄存器的內(nèi)容采用二-十進(jìn)制編碼(BCD)格式。DS3231運(yùn)行于12小時(shí)或者24小時(shí)模式。小時(shí)寄存器的第6位定義為12或24小時(shí)模式選擇位。該位為高時(shí),選擇12小時(shí)模式。 在12小時(shí)模式下,第5位為AM/ PM指示位,邏輯高時(shí)為 PM。5. DS3231的復(fù)位按鈕DS3231具有連接至RST輸出引腳的按鈕開關(guān)功能。若DS3231不在復(fù)位周期,會(huì)持續(xù)監(jiān)視R

12、ST信號(hào)的下降沿。如果檢測(cè)到一個(gè)邊沿轉(zhuǎn)換,DS3231通過拉低RST完成開關(guān)去抖。內(nèi)部定時(shí)器定時(shí)結(jié)束后,DS3231繼續(xù)監(jiān)視RST信號(hào)。如果信號(hào)依舊保持低電平,DS3231持續(xù)監(jiān)視信號(hào)線以檢測(cè)上升沿。 一旦檢測(cè)到按鈕釋放,DS3231強(qiáng)制RST為低電平并保持tRST。RST還可用于指示電源故障報(bào)警情況。 當(dāng)VCC低于VPF時(shí),產(chǎn)生內(nèi)部電源故障報(bào)警信號(hào),并強(qiáng)制拉低RST引腳。當(dāng)VCC返回至超過VPF電平時(shí)。RST保持低電平大約250 ms(tREC),使供電電源達(dá)到穩(wěn)定。如果在VCC加載時(shí),振蕩器不工作,將跳過tREC,RST立刻變?yōu)楦唠娖健?. DS3231的鬧鐘和報(bào)警功能DS3231包含2個(gè)

13、定時(shí)/日期鬧鐘。鬧鐘1可通過寫入寄存器07hOAh設(shè)定。鬧鐘2可通過寫入寄 存器0Bh0Dh設(shè)定??蓪?duì)鬧鐘進(jìn)行編程(通過控制寄存器的鬧鐘使能位和INTCN位),從而在鬧鐘匹配條件下觸發(fā)INT/SQW輸出。每個(gè)定時(shí)/日期鬧鐘寄存器的第7位是屏蔽位。當(dāng)每個(gè)鬧鐘的屏蔽位均為邏輯0時(shí),只有當(dāng)計(jì)時(shí)寄存器中的值與存儲(chǔ)于定時(shí)/日期鬧鐘寄存器中的對(duì)應(yīng)值相匹配時(shí)才會(huì)告 警。鬧鐘也可以編程為每秒、分、時(shí)、星期或日期重復(fù)告警。當(dāng)RTC寄存器值與鬧鐘寄存器的設(shè)定值相匹配時(shí),相應(yīng)的鬧鐘標(biāo)志位 A仆或A2F置為邏輯1。如果對(duì)應(yīng)的鬧鐘中斷使能位 A1IE或A2IE也置 為邏輯1,并且INTCN位置為邏輯1,鬧鐘條件將會(huì)觸發(fā)

14、INT/SQW信號(hào)。RTC在時(shí)間和日期寄存器 每秒更新時(shí)都會(huì)檢測(cè)匹配情況。7. DS3231的I2C總線時(shí)序,數(shù)據(jù)交換及其格式及編程注意事項(xiàng)DS3231在I2C總線上作為從器件。通過執(zhí)行START命令并且在驗(yàn)證器件地址后才可以訪問。然后寄存器可以被訪問直到執(zhí)行一個(gè)STOP命令為止。所有在I2C總線上傳輸?shù)牡刂钒L(zhǎng)度均為 9位,它包括7個(gè)地址位,1個(gè)R/W控制位和1個(gè)應(yīng)答位 ACK,如果R/W為1,則執(zhí)行讀操作;如果 R/ W為0,則執(zhí)行寫操作。從機(jī)尋址后,必須在第9個(gè)SCL(ACK)周期通過拉低SDA做出應(yīng)答,若從機(jī)忙或者無法響應(yīng)主機(jī),則應(yīng)在ACK周期內(nèi)保持SDA為 高。然后主機(jī)發(fā)出STOP狀

15、態(tài)或者REP START狀態(tài)重新開始發(fā)送。地址包包括從機(jī)地址和稱為 SLA+R 或者SLA+W的READ或者WRITE位。地址字節(jié)的 MSB首先被發(fā)送。所有1111xxxx的地址均保留。 以便將來使用。所有在I2C總線上傳送的數(shù)據(jù)包長(zhǎng)度均為 9位,它包括8個(gè)數(shù)據(jù)位和1個(gè)應(yīng)答位。在數(shù)據(jù)傳送中, 主機(jī)產(chǎn)生時(shí)鐘及 START與STOP狀態(tài),而接收器響應(yīng)接收。應(yīng)答是由ACK在第9個(gè)SCL周期拉低SDA 實(shí)現(xiàn)的。如果接收器拉高 SDA,則發(fā)送NACK信號(hào)。如果接收器由于某種原因不能接收更多數(shù)據(jù),應(yīng) 在最后一個(gè)數(shù)據(jù)字節(jié)后發(fā)出 NACK信號(hào)告訴發(fā)送器停止發(fā)送,首先發(fā)送數(shù)據(jù)的MSB。下圖為DS3231與MCU

16、I C總線數(shù)據(jù)交換時(shí)序:DS3231通過雙向數(shù)據(jù)線SDA和時(shí)鐘線SCL與外界進(jìn)行數(shù)據(jù)交換,從其時(shí)序關(guān)系可看出,DS3231 有兩種操作方式:寫操作:把SDA數(shù)據(jù)線上的數(shù)據(jù)按 RAM指定的首地址(Word Address)依次寫入N個(gè)字節(jié)數(shù)據(jù)。 主器件首先傳輸從器件的地址字節(jié),緊跟著是一系列數(shù)據(jù)字節(jié)。從器件每收到一個(gè)字節(jié)后返回一個(gè)應(yīng) 答位ACK。其格式下圖所示。pifjqXXXXXX<X AME s1101M0AXJCOOOOtXAXXfflOXffi2ADDRESS 由樂ADDRESS+1)t>'吧瞅 m 匸 z II SLAVE TO MA5HRII MASBTOSKA-

17、AC(MOftfLfDGE (ACK) I 口甘士I_I 豐#dP 應(yīng) OP2 土工皿DATA IRANSF ERHED數(shù)捱理麗-fiEAT/WflUE Oft QFIECTIDN flnADGRESS(X * 13YHS 4 ACWLETGE) x= l個(gè)字市"應(yīng)菩讀操作:按RAM指定的首地址依次讀取 N個(gè)字節(jié)數(shù)據(jù),主器件首先傳送從器件地址。從器件返 回一個(gè)應(yīng)答位。隨后是從器件傳輸?shù)囊幌盗袛?shù)據(jù)字節(jié)。主器件收到除最后一個(gè)字節(jié)外的所有字節(jié)后返 回一個(gè)應(yīng)答位。在收到最后一個(gè)字節(jié)后,返回一個(gè)“非應(yīng)答位”NACK。其格式下圖所示。叮昭E_ADDRESS? <fi,W 曲s11J10K1

18、AXXKXXIXXAA<DATA(r*1>dATAn*2)>xxixsotxxA<DATAntX>S-STfiTA-AQ(hm)GE(AGK)P-SDP主対從| SLAinMASTW從財(cái)主NTAlRMISFEfflEDI-NJACKNOWJDGt CK)R貳READ慚 *ECR 3IREC1 伙 ER ALORESSM -1 B'TES * ACKNOWUKE)NOTc LAST DATABTE ISFOLO'FR BYAAC<上述讀寫操作信號(hào)中:S為起始信號(hào)(START), 1101 000為DS3231的口地址,A為應(yīng)答信號(hào)ACK,A為非應(yīng)答信號(hào)NACK, P為停止信號(hào)(STOP)。主器件產(chǎn)生所有的串行時(shí)鐘和START、STOP條件,通過傳輸STOP和重發(fā)START條件使其停止。4. DS3231與AT89C2051 單片機(jī)的接口電路VccO 匚 u PVccYccYccL10k10k±- +亍后備電池-L 3.3V后備電池3. 3VLRESET其實(shí),可以使用 AT89C2051單片機(jī)的任何兩個(gè)I/O 口與DS3231相連接,復(fù)位部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論