時(shí)鐘芯片SD2200ELP與AVR單片機TWI接口控制的設計
在提升機制動(dòng)閘瓦間隙實(shí)時(shí)在線(xiàn)檢測的設計中,需要保存故障時(shí)間和故障數據。
大部分儀器儀表中都要使用時(shí)鐘芯片,但是很多的實(shí)時(shí)時(shí)鐘芯片(如PCF8563)沒(méi)有掉電保護,須外接晶振和電池,比較麻煩。而深圳興威帆電子技術(shù)有限公司生產(chǎn)的SD2200ELP是內置32 KBE2PROM的串行實(shí)時(shí)時(shí)鐘芯片,不需要外接器件支持,連線(xiàn)簡(jiǎn)單、可靠,提供的數據精確,斷電后也能繼續工作。微控制器采用Atmel公司的ATmegal6單片機,利用AT-megai6的硬件TWI接口可直接對SD2200ELP進(jìn)行操作,無(wú)需軟件模擬I2C方式,使用方便、可靠。
1 SD2200L簡(jiǎn)介
SD2200L系列(包括SD2200B/C/D/E/FLP)是一種具有內置晶振、支持I2C總線(xiàn)的高精度實(shí)時(shí)時(shí)鐘芯片。SD2200ELP是SD2200L系列中的一種,該芯片可保證時(shí)鐘精度為±5ppm(在-10~50℃下),即年誤差小于2.5min。芯片內置時(shí)鐘精度調整功能,可以在很寬的范圍內校正時(shí)鐘的偏差;內置32KB串行非易失性E2PROM;可在3.0~5.5V下工作,擦寫(xiě)次數可達100萬(wàn)次,數據保存時(shí)間為十年;內置一次性電池,可保證在外部掉電情況下時(shí)鐘使用壽命超過(guò)五年。SD2200L系列內部結構如圖l所示。
2 硬件設計
SD2200ELP既有實(shí)時(shí)芯片的功能,又可以存儲數據到內置E2PRROM中。因為SD2200ELP是I2C總線(xiàn)接口方式,所以其硬件接口設計非常簡(jiǎn)單,可以大大簡(jiǎn)化單片機外圍器件。AVR的TWI總線(xiàn)實(shí)質(zhì)上就是I2C總線(xiàn),只是名稱(chēng)不一樣。圖2中INTl腳為SD2200ELP的定時(shí)中斷輸出,與ATmegal6的外部中斷INTl相連接(INTl配置為下降滑觸發(fā)方式),SDA、SCL為兩線(xiàn)式串行引腳,分別與ATmegal6的TWl(PCl、PCO)相連。
3 軟件設計
如果外圍器件是I2C接口類(lèi)型,而單片機沒(méi)有I2C接口,那么必須用軟件模擬的方式來(lái)實(shí)現。AVR單片機功能很強,它帶有TWI接口,可以直接利用ATmegal6的硬件I2C接口來(lái)對外圍I2C器件進(jìn)行操作,非常方便、有效。這樣可以節省模擬I2C程序,為用戶(hù)編程省去很多麻煩。下面是使用ATmegal6對內置E2PROM的實(shí)時(shí)時(shí)鐘芯片SD2200ELP讀/寫(xiě)的程序設計,均是在ICCAVR開(kāi)發(fā)環(huán)境下編寫(xiě)。
3.1 ATrnegal6的TWI總線(xiàn)接口
兩線(xiàn)接口TWI很適合于典型的處理器應用。TWI協(xié)議允許系統設計者只用兩根雙向傳輸線(xiàn)就可以將128個(gè)不同的設備互連到一起。這兩根線(xiàn)是時(shí)鐘線(xiàn)SCL和數據線(xiàn)SDA。外部硬件只需2個(gè)上拉電阻,每根線(xiàn)上1個(gè)。所有連接到總線(xiàn)上的設備都有自己的地址。TWI協(xié)議解決了總線(xiàn)仲裁的問(wèn)題,TWI總線(xiàn)的連接如圖3所示。
TWI總線(xiàn)可以工作于4種不同的模式:主機發(fā)送器(MT)、主機接收器(MR)、從機發(fā)送器(ST)以及從機接收器(SR)。在后面將介紹的連續讀E2PROM操作中就使用了MT和MR模式。
3.2 實(shí)時(shí)時(shí)鐘讀取
實(shí)時(shí)時(shí)鐘操作指令格式如下:
其中高4位稱(chēng)為“器件代碼”,它代表實(shí)時(shí)時(shí)鐘的器件地址,固定為“0110”。C2、C1、C0構成對實(shí)時(shí)時(shí)鐘操作的8條指令。
評論