淮安技師學院 劉秀娟
SD2300系列芯片是一種具有內置晶振、支持兩線串行接口的高精度實時時鐘芯片。該芯片在25±1℃下可保證時鐘精度為±5ppm,即年誤差小于2.5min;該芯片內置時鐘精度調整功能,可以在很寬的范圍內校正時鐘的頻率偏差,能以最小分辨率3.052ppm來進行校正,通過與溫度傳感器的結合可以設定適應溫度變化的調整值,實現在寬溫范圍內高精度的計時功能;內置電池、串行NVSRAM,其中內置一次性電池可保證在外部掉電的情況下時鐘使用壽命超過5年,內置串行NVSRAM為非易失性SRAM,擦寫次數可達100億次。該系列芯片與單片機的接口電路采用工業標準I2C總線,只用一根串行時鐘線SCL和一根串行數據線SDA與單片機實行通信,數據傳輸速率可達400kbit/s。本文主要探討如何通過單片機控制SD2300時鐘芯片實現高精度實時時鐘功能。
圖1 SD2300系列時鐘芯片引腳圖
如圖1所示,當VDD>3.0V時,內部電池停止供電,改由外部電源供電。當電源電壓VDD降到4.5V以內時,內部SRAM將停止工作,但內部時鐘仍保持工作。在外部電源掉電的情況下,內部電池能確保時鐘繼續工作。圖2給出的是SD2300A與單片機硬件連接圖。
由圖2可知,此處所用的單片機為AT-89C51,該單片機沒有I2C總線接口,所以用P2.0、P2.1口來模擬I2C總線,其中SDA與P2.0相連,SCL與P2.1相連。同時將SD2300A內部的SRAM的I2C總線接口SDAE與SDA并聯,SCLE與SCL并聯,R3和R4分別為上拉電阻,阻值為10K。
SD2300A通過SCL、SDA兩線式串行接口方式接收各種命令并讀寫數據,程序的編寫主要根據上述工作原理進行的,相關函數定義說明如下(限于篇幅,程序清單省略):
圖2 SD2300A與單片機的典型接口電路
制作PCB板時,對SD2300A及單片機數字電源、地的輸入端加220uf以上的電解電容和104電容去除電源擾動。為了防止干擾,制板時應保證芯片底部無大電流信號通過,最好能鋪地。SD2300A的VDD和電源之間串一個200歐的電阻防干擾,不用的引腳接地,VBAT、VOUT和TEST引腳可以懸空。電源電壓必須大于等于3.0V。
編寫程序要注意在上電開始時應做一個幾百毫秒的延時。時鐘最多每半秒才讀一次。在開啟I2C總線時,要在置SDA為高電平后再判斷SDA是否為高電平,即SDA是否被可靠復位。
[1]張道德.單片機接口技術(C51版)[M].北京:中國水利水電出版社,2007.
[2]謝維成,楊加國.單片機原理與應用及C51程序設計[M].北京:清華大學出版社,2006.
[3]胡漢才.單片機原理及系統設計[M].北京:清華大學出版社,2002,41-42.
[4]李建忠.單片機原理及應用[M].西安:西安電子科技大學出版社,2002.
[5]潘新民.微型計算機控制技術[M].電子工業出版社,2003,47-48.