基于DS3231的高精度時(shí)鐘接口設(shè)計(jì)
微控制器通過(guò)I2C總線(xiàn)與DS3231連接,DS3231的與微控制器的相連。DS3231的VCC接系統(tǒng)電源VCC,VBAT為備用電池輸入,該引腳應(yīng)連接一個(gè)低泄漏電容進(jìn)行去耦。為低電平有效中斷或方波輸出,該漏極開(kāi)路輸出要求外接上拉電阻,如果不使用,可保持開(kāi)路。微控制器主要通過(guò)I2C總線(xiàn)向時(shí)鐘芯片DS323l寫(xiě)時(shí)間信息,DS323l以寫(xiě)入的時(shí)間信息為基準(zhǔn)精確走時(shí)。上電后,微控制器從時(shí)鐘芯片讀取時(shí)間信息并存入內(nèi)存供系統(tǒng)使用,器件每隔64 s測(cè)量一次溫度,通過(guò)調(diào)節(jié)晶體的負(fù)載電容,使其在指定溫度達(dá)到O ppm的精度,最終達(dá)到提高時(shí)鐘精度的目的。即使系統(tǒng)斷電一段時(shí)間后重新上電,時(shí)鐘芯片內(nèi)的實(shí)時(shí)數(shù)據(jù)仍能被正確讀出。本文引用地址:http://www.ex-cimer.com/article/157503.htm
2 軟件接口程序設(shè)計(jì)
DS323l采用I2C總線(xiàn)與系統(tǒng)微控制器進(jìn)行通信,I2C總線(xiàn)是由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備,由于接口直接在組件之上,因此I2C總線(xiàn)占用空間少。減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。它支持多主控,任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線(xiàn)。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。
I2C總線(xiàn)通過(guò)兩根連線(xiàn)(串行時(shí)鐘線(xiàn)SCL和雙向傳送SDA)實(shí)現(xiàn)半雙工同步數(shù)據(jù)傳輸,確保兩器件之間地址和數(shù)據(jù)信息的雙向傳輸。它采用器件地址的硬件設(shè)置方法(即每個(gè)器件具有一個(gè)確定的ID),通過(guò)軟件尋址,從而避免器件的片選信號(hào)線(xiàn)尋址,使硬件系統(tǒng)擴(kuò)展靈活簡(jiǎn)便。為保證通信正常,必須保證I2C總線(xiàn)上的數(shù)據(jù)能夠順利傳送。在數(shù)據(jù)開(kāi)始傳送前,首先讓I2C接口進(jìn)行初始化。圖2為I2C總線(xiàn)初始化流程。
DS3231的I2C接口的初始化操作可通過(guò)微控制器在總線(xiàn)上發(fā)送一個(gè)有效START條件來(lái)實(shí)現(xiàn),因?yàn)槲⒖刂破鳟a(chǎn)生的START信號(hào)能夠終止DS3231的I2C接口當(dāng)前的數(shù)據(jù)收、發(fā)過(guò)程,并將該接口置于START條件后的待命狀態(tài)。但要發(fā)送一個(gè)有效的START條件,必須在DS323l釋放SDA數(shù)據(jù)線(xiàn)時(shí)才能實(shí)現(xiàn)。如果SDA數(shù)據(jù)線(xiàn)處于低電平狀態(tài),這時(shí),可以讓系統(tǒng)微控制器產(chǎn)生一個(gè)附加的SCL脈沖來(lái)迫使DS323l接口送出下一位數(shù)據(jù)。假設(shè)下一位數(shù)據(jù)仍然為邏輯“0”,就繼續(xù)產(chǎn)生附加的SCL脈沖,經(jīng)過(guò)多個(gè)SCL脈沖后,DS323l就會(huì)釋放SDA數(shù)據(jù)總線(xiàn)。
完成I2C總線(xiàn)的初始化后,接著進(jìn)行控制和狀態(tài)寄存器的初始化設(shè)置,確定正確的數(shù)據(jù)范圍,就可以運(yùn)行相應(yīng)的測(cè)控程序。
3 結(jié)束語(yǔ)
本文首先簡(jiǎn)介DS323l的特點(diǎn)、工作原理及引腳功能,設(shè)計(jì)了高精度時(shí)鐘器件DS3231與微控制器之間通信的硬件接口與軟件接口,本設(shè)計(jì)具有一定的通用性,對(duì)應(yīng)用DS3231器件進(jìn)行系統(tǒng)設(shè)計(jì)有一定的借鑒意義。
評(píng)論