關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 時鐘芯片SD2200ELP與AVR單片機的接口設計

        時鐘芯片SD2200ELP與AVR單片機的接口設計

        作者: 時間:2007-09-24 來源:網絡 收藏
        摘要 是深圳興威帆電子技術有限公司生產的高精度實時時鐘芯片。本文給出了時鐘芯片與ATmegal6的接口設計,并實現了的TWI總線對進行時鐘和E2PROM的讀/寫操作的C語言程序,具有很強的實用性和通用性。
        關鍵詞 SD2200ELP ATmegal6 實時時鐘 I2C E2PROM

        在提升機制動閘瓦間隙實時在線檢測的設計中,需要保存故障時間和故障數據。大部分儀器儀表中都要使用時鐘芯片,但是很多的實時時鐘芯片(如PCF8563)沒有掉電保護,須外接晶振和電池,比較麻煩。而深圳興威帆電子技術有限公司生產的SD2200ELP是內置32 KBE2PROM的串行實時時鐘芯片,不需要外接器件支持,連線簡單、可靠,提供的數據精確,斷電后也能繼續工作。微控制器采用Atmel公司的ATmegal6單片機,利用AT-megai6的硬件TWI接口可直接對SD2200ELP進行操作,無需軟件模擬I2C方式,使用方便、可靠。

        1 SD2200L簡介
        SD2200L系列(包括SD2200B/C/D/E/FLP)是一種具有內置晶振、支持I2C總線的高精度實時時鐘芯片。SD2200ELP是SD2200L系列中的一種,該芯片可保證時鐘精度為5ppm(在-10~50℃下),即年誤差小于2.5min。芯片內置時鐘精度調整功能,可以在很寬的范圍內校正時鐘的偏差;內置32KB串行非易失性E2PROM;可在3.0~5.5V下工作,擦寫次數可達100萬次,數據保存時間為十年;內置一次性電池,可保證在外部掉電情況下時鐘使用壽命超過五年。SD2200L系列內部結構如圖l所示。

        2 硬件設計
        SD2200ELP既有實時芯片的功能,又可以存儲數據到內置E2PRROM中。因為SD2200ELP是I2C總線接口方式,所以其硬件接口設計非常簡單,可以大大簡化單片機外圍器件。的TWI總線實質上就是I2C總線,只是名稱不一樣。圖2中INTl腳為SD2200ELP的定時中斷輸出,與ATmegal6的外部中斷INTl相連接(INTl配置為下降滑觸發方式),SDA、SCL為兩線式串行引腳,分別與ATmegal6的TWl(PCl、PCO)相連。

        3 軟件設計
        如果外圍器件是I2C接口類型,而單片機沒有I2C接口,那么必須用軟件模擬的方式來實現。單片機功能很強,它帶有TWI接口,可以直接利用ATmegal6的硬件I2C接口來對外圍I2C器件進行操作,非常方便、有效。這樣可以節省模擬I2C程序,為用戶編程省去很多麻煩。下面是使用ATmegal6對內置E2PROM的實時時鐘芯片SD2200ELP讀/寫的程序設計,均是在ICCAVR開發環境下編寫。

        3.1 ATrnegal6的TWI總線接口
        兩線接口TWI很適合于典型的處理器應用。TWI協議允許系統設計者只用兩根雙向傳輸線就可以將128個不同的設備互連到一起。這兩根線是時鐘線SCL和數據線SDA。外部硬件只需2個上拉電阻,每根線上1個。所有連接到總線上的設備都有自己的地址。TWI協議解決了總線仲裁的問題,TWI總線的連接如圖3所示。

        TWI總線可以工作于4種不同的模式:主機發送器(MT)、主機接收器(MR)、從機發送器(ST)以及從機接收器(SR)。在后面將介紹的連續讀E2PROM操作中就使用了MT和MR模式。

        3.2 實時時鐘讀取
        實時時鐘操作指令格式如下:

        其中高4位稱為“器件代碼”,它代表實時時鐘的器件地址,固定為“0110”。C2、C1、C0構成對實時時鐘操作的8條指令。
        實時數據寄存器是一個56位的存儲器,它以BCD碼方式存儲,包括年、月、日、星期、時、分、秒的數據。實時數據的讀/寫操作都通過發送或接收年(實時數據讀寫方式1)數據的第一位“LSB”開始執行的。


        3.3 E2PROM的讀/寫
        SD2200ELP的E2PROM操作指令與實時時鐘的器件代碼是不一樣的。當CPU要對SD12200L中的E2PROM進行操作時,首先發出開始信號給SD2200L,然后CPU發出包括4位器件代碼10lO、3位頁選碼000、1位讀/寫指令的8位數據(即“從器件地址”)。一位讀/寫指令表明進行何種操作(讀操作為1,寫操作為O)。其格式如下:

        3.3.1 對E2PROM的頁寫操作
        寫操作可分為:單字節寫操作和頁寫操作。單字節寫操作指每次只寫入一個字節的數據;頁寫操作指一次可以寫入多個字節的數據。值得注意的是,SD2200L是一個系列,不同類型對應著不同數量的E2PROM。例如在頁寫操作下,SD2200ELP單個寫周期內E2PROM可以被寫入64字節的數據。在某監測儀器應用中,需要保存故障值和故障發生時間,故采用頁寫方式。頁寫E2PROM程序流程圖如圖4所示。

        3.3. 2 對E2PROM連續讀操作
        讀操作有3種方式:立即地址讀操作、隨機地址讀操作和連續讀操作。ATmegal6為完成從SD2200ELP內置串行E2PROM中讀取數據,必須將幾種TWI模式組合起來。由于內置E2PPROM的存儲容量大小不同,因此在進行讀操作時,其操作方式有所不同。在查詢故障值和故障時間時,需要讀出保存在E2PRoM的數據,故采用連續讀操作。與頁寫操作類似,SD2200ELP最多連續讀64字節的數據。連續讀操作程序流程圖如圖5所示。

        讀/寫E2PROM需用到的5個公用函數:

        4 總結
        SD2200ELP可以方便地結合AVR單片機的TWI總線實現日期顯示功能。并且因其內置32 KBE2PROM,可以保存時間和相應數據;具有電路簡單、占用資源少、程序簡潔、調試方便、功耗低等特點。經過實際的現場運行證實了該設計方法是可靠、有效的。對本文的設計方案和程序稍加修改后,可以用在各種需要此功能的數字控制和監控檢測系統中。(具體程序見網站WWW.mesnet.com.cn――編者注)



        關鍵詞: 2200 ELP AVR SD

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 襄城县| 宜都市| 伊金霍洛旗| 韩城市| 东阳市| 游戏| 永平县| 九江市| 大洼县| 应城市| 梁平县| 西丰县| 昌黎县| 河池市| 子长县| 松江区| 玉山县| 四川省| 梧州市| 武定县| 南溪县| 吐鲁番市| 五原县| 商丘市| 肥西县| 龙川县| 唐河县| 鱼台县| 黎川县| 内丘县| 赤壁市| 兰西县| 买车| 新宁县| 贡山| 东山县| 宜川县| 乌兰县| 莆田市| 银川市| 渭南市|