淮安技師學(xué)院 劉秀娟
SD2300系列芯片是一種具有內(nèi)置晶振、支持兩線串行接口的高精度實(shí)時(shí)時(shí)鐘芯片。該芯片在25±1℃下可保證時(shí)鐘精度為±5ppm,即年誤差小于2.5min;該芯片內(nèi)置時(shí)鐘精度調(diào)整功能,可以在很寬的范圍內(nèi)校正時(shí)鐘的頻率偏差,能以最小分辨率3.052ppm來進(jìn)行校正,通過與溫度傳感器的結(jié)合可以設(shè)定適應(yīng)溫度變化的調(diào)整值,實(shí)現(xiàn)在寬溫范圍內(nèi)高精度的計(jì)時(shí)功能;內(nèi)置電池、串行NVSRAM,其中內(nèi)置一次性電池可保證在外部掉電的情況下時(shí)鐘使用壽命超過5年,內(nèi)置串行NVSRAM為非易失性SRAM,擦寫次數(shù)可達(dá)100億次。該系列芯片與單片機(jī)的接口電路采用工業(yè)標(biāo)準(zhǔn)I2C總線,只用一根串行時(shí)鐘線SCL和一根串行數(shù)據(jù)線SDA與單片機(jī)實(shí)行通信,數(shù)據(jù)傳輸速率可達(dá)400kbit/s。本文主要探討如何通過單片機(jī)控制SD2300時(shí)鐘芯片實(shí)現(xiàn)高精度實(shí)時(shí)時(shí)鐘功能。

圖1 SD2300系列時(shí)鐘芯片引腳圖
如圖1所示,當(dāng)VDD>3.0V時(shí),內(nèi)部電池停止供電,改由外部電源供電。當(dāng)電源電壓VDD降到4.5V以內(nèi)時(shí),內(nèi)部SRAM將停止工作,但內(nèi)部時(shí)鐘仍保持工作。在外部電源掉電的情況下,內(nèi)部電池能確保時(shí)鐘繼續(xù)工作。圖2給出的是SD2300A與單片機(jī)硬件連接圖。
由圖2可知,此處所用的單片機(jī)為AT-89C51,該單片機(jī)沒有I2C總線接口,所以用P2.0、P2.1口來模擬I2C總線,其中SDA與P2.0相連,SCL與P2.1相連。同時(shí)將SD2300A內(nèi)部的SRAM的I2C總線接口SDAE與SDA并聯(lián),SCLE與SCL并聯(lián),R3和R4分別為上拉電阻,阻值為10K。
SD2300A通過SCL、SDA兩線式串行接口方式接收各種命令并讀寫數(shù)據(jù),程序的編寫主要根據(jù)上述工作原理進(jìn)行的,相關(guān)函數(shù)定義說明如下(限于篇幅,程序清單省略):


圖2 SD2300A與單片機(jī)的典型接口電路

制作PCB板時(shí),對SD2300A及單片機(jī)數(shù)字電源、地的輸入端加220uf以上的電解電容和104電容去除電源擾動(dòng)。為了防止干擾,制板時(shí)應(yīng)保證芯片底部無大電流信號(hào)通過,最好能鋪地。SD2300A的VDD和電源之間串一個(gè)200歐的電阻防干擾,不用的引腳接地,VBAT、VOUT和TEST引腳可以懸空。電源電壓必須大于等于3.0V。
編寫程序要注意在上電開始時(shí)應(yīng)做一個(gè)幾百毫秒的延時(shí)。時(shí)鐘最多每半秒才讀一次。在開啟I2C總線時(shí),要在置SDA為高電平后再判斷SDA是否為高電平,即SDA是否被可靠復(fù)位。
[1]張道德.單片機(jī)接口技術(shù)(C51版)[M].北京:中國水利水電出版社,2007.
[2]謝維成,楊加國.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006.
[3]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002,41-42.
[4]李建忠.單片機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2002.
[5]潘新民.微型計(jì)算機(jī)控制技術(shù)[M].電子工業(yè)出版社,2003,47-48.