關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > I2C串行芯片X1288及其在電子電能表中的應(yīng)用

I2C串行芯片X1288及其在電子電能表中的應(yīng)用

——
作者:萬 全 朱志杰 唐圣學(xué) 時間:2007-09-13 來源:國外電子元器件 收藏
摘要:介紹了一種基于的多功能串行芯片的性能特點(diǎn)和工作原理,給出了設(shè)計(jì)中的應(yīng)用方法,同時給出了和AT89C52的連接電路。實(shí)際應(yīng)用表明:X1288能簡化電路設(shè)計(jì)并可提高硬件的工作效率。

  關(guān)鍵詞:X1288;;

1 引言

 ?。兀保玻福甘敲绹兀椋悖铮蚬旧a(chǎn)的一種集E2PROM、實(shí)時時鐘、日歷、CPU監(jiān)控和兩路報(bào)警于一體的多功能集成電路芯片。X1288的時鐘采用一種價格低廉的32.768kHz晶振,具有百分秒、秒、分、時、日、月、年及星期信息,并可設(shè)定兩個報(bào)警時間,其時鐘和報(bào)警寄存器的雙通道結(jié)構(gòu)使得它能在讀寫數(shù)據(jù)時仍保持時鐘的準(zhǔn)確性。此外,X1288還可提供32k字節(jié)的E2PROM陣列,并具有電源和CPU監(jiān)控功能。

 ?。兀保玻福复行酒话悴捎茫桑玻每偩€來實(shí)現(xiàn)與主控制器的數(shù)據(jù)交換。I2C是由Philips公司開發(fā)的一種用于內(nèi)部IC控制的雙向二線串行總線,通過該總線可很好地解決現(xiàn)代電子系統(tǒng)中眾多IC之間,及IC與外界的通信需要,并可大大簡化電路設(shè)計(jì),提高硬件電路的工作效率。

2 X1288的引腳定義

 ?。兀保玻福感酒哂校保赌_SOIC或14腳TSSOP小體積封裝形式。圖1為14腳TSSOP封裝的引腳示意圖,各引腳的定義如下:

 ?。兀?、X2:這兩個引腳可分別用作片內(nèi)振蕩器的反相放大器的輸入和輸出端。應(yīng)用時需外接一個32.768kHz的石英晶體,其作用是為系統(tǒng)時鐘/振蕩器提供時間基準(zhǔn)。

 ?。遥牛樱牛裕簭?fù)位信號輸出端。當(dāng)看門狗超時或電壓跌落到固定的VTRIP門限時,此引腳將向主處理器發(fā)送一個低電平有效的漏極開路輸出信號,以使電路系統(tǒng)快速復(fù)位。

 ?。樱模粒捍袛?shù)據(jù)端,為漏極開路輸出的雙向引腳,用于數(shù)據(jù)的輸入輸出。實(shí)際應(yīng)用時需接上拉電阻,并應(yīng)與其它漏極或集電極開路輸出端線相或。該端的輸入緩沖器總是處于激活狀態(tài),輸出電路可通過一個斜率控制的下拉控制輸出信號的下降時間。設(shè)計(jì)時通常把電路設(shè)計(jì)成400kHz的二線接口。

 ?。樱茫蹋捍袝r鐘端口。

 ?。校龋冢桑遥眩嚎删幊填l率/中斷輸出端。當(dāng)編程為頻率輸出時,該端接到內(nèi)部振蕩器的輸出腳,以輸出頻率為32.768kHz、4096Hz或1Hz的信號,也可以無信號輸出。當(dāng)編程為中斷輸出時,該端可在報(bào)警發(fā)生時激活,以向主機(jī)請求中斷。

 ?。郑拢粒茫耍簜溆秒娫摧斎攵?。當(dāng)VCC小于VBACK-0.2V時,電源控制電路將切換至VBACK供電;而當(dāng)VCC超過VBACK時,又會自動切回VCC供電方式,圖2所示是其電源控制過程示意圖。

{{分頁}}
3?。兀保玻福傅闹饕拇嫫骷捌涔δ?/STRONG>

 ?。兀保玻玻钢械臅r鐘/控制寄存器(CCR)位于從E2PROM陣列中分離出來的一個區(qū)域,地址位于[000]0h~[003]Fh之間。CCR一般被分成5段,可分別用于狀態(tài)寄存器(1字節(jié))、實(shí)時時鐘(8字節(jié))、控制寄存器(4字節(jié))、報(bào)警寄存器1和報(bào)警寄存器0(各8字節(jié))。

3.1 狀態(tài)寄存器(SR)

  狀態(tài)寄存器是易失性的,其地址是003Fh。表1所列是其命令格式,各命令字的具體含義如下:

  表1 狀態(tài)寄存器(SR)

地址 名稱 7 6 5 4 3 2 1 0 缺省值
003Fh SR BAT AL1 AL0 0 0 RWEL WEL RTCF 01h

 ?。拢粒裕汉髠潆娫礃?biāo)志位。當(dāng)BAT為“1”時,表明器件在使用后備電源。

 ?。粒蹋?、AL0:報(bào)警選擇位。X1288中有兩個報(bào)警寄存器,若其中的某一報(bào)警時間與實(shí)時時鐘相同時,相應(yīng)的AL1或AL0位將變?yōu)椤埃薄?;?dāng)讀取SR的值后,該位又變?yōu)椤埃啊薄?/P>

 ?。遥祝牛蹋簳r鐘/控制寄存器(CCR)寫入控制位。對CCR進(jìn)行寫操作時,必須先使該位為“1”。

 ?。祝牛蹋海茫茫液停牛玻校遥希偷膶懭肟刂莆?。在對CCR和E2PROM進(jìn)行寫操作時,必須先使該位為“1”。同理,如果要寫入時鐘和控制寄存器,也必須先寫“02h”至SR(使RWEL為“1”),再寫“06h” (使WEL為“1”)。

 ?。遥裕茫疲旱綦姌?biāo)志位。當(dāng)全部電源(包括VCC和VBACK)失效后,該位變?yōu)?“1”;而在系統(tǒng)再次上電后,如果要對RTC進(jìn)行第一次有效寫操作,則應(yīng)首先將使該位為“0”。

  需要說明的是,雖然SR中的第3、4位沒有使用,但這些位必須置“0”。

3.2 實(shí)時時鐘(RTC)

  實(shí)時時鐘寄存器的地址0030h~0037h分別對應(yīng)秒、分、時、日、月、年、星期和百分秒,并采用BCD碼表示。通過啟動一條讀命令并確定相應(yīng)的地址,即可讀取時間信息。因?yàn)闀r鐘是連續(xù)運(yùn)行的,而每次讀操作都需要一定的時間,這就有可能在讀操作過程中使時間發(fā)生改變。本器件是由讀命令將時間鎖存在分立的鎖存器中,因而可以避免讀操作過程中時間發(fā)生變化。當(dāng)一次讀出并不是由讀操作引起時,系統(tǒng)將發(fā)出報(bào)警。

  可以通過向RTC寄存器中寫入數(shù)據(jù)來設(shè)定時間和日期。通過一次不完全連續(xù)的寫操作可避免改變當(dāng)前時間,在RTC數(shù)據(jù)輸入字節(jié)之前的ACK位時,時鐘的下降沿會將當(dāng)前的時間值裝載到分立的緩沖器中,以使時鐘繼續(xù)運(yùn)行。而此時新的串行輸入數(shù)據(jù)將取代緩沖器的值。當(dāng)有效的寫操作結(jié)束后,系統(tǒng)產(chǎn)生停止位時,這個新值才被裝載到RTC寄存器中。向RTC寫入單個字節(jié)并不對其它字節(jié)的數(shù)據(jù)產(chǎn)生影響。

  當(dāng)X1288在VCC和VBACK都失效以后,即使再次上電后,其時鐘也將停止增加,直到在時鐘寄存器中進(jìn)行至少一個字節(jié)的寫操作以后。

  讀出和設(shè)定時鐘應(yīng)注意:百分秒寄存器(SSEC)是只讀的;小時寄存器(HR)中的MIL位是12/24時制選擇位“1”為24時制,“0”為12時制,H21位是AM/PM標(biāo)志位“1”代表PM,“0”代表AM;星期中的七天只用三位(DY0~2)來計(jì)數(shù),其值在0~6之間循環(huán),數(shù)字所代表星期中的哪一天可由設(shè)計(jì)者決定,缺省值為0。

3.3 控制寄存器

  表2所示是4個控制寄存器的命令字列表,其中的DTR是數(shù)字化微調(diào)寄存器,它的作用是調(diào)整每秒的計(jì)數(shù)值和ppm誤差,以便在長時間內(nèi)獲得更好的計(jì)時精度。DTR2是符號位,“1”為正補(bǔ)償,“0”為負(fù)補(bǔ)償;DTR1、DTR0可分別提供10ppm、20ppm的補(bǔ)償。由DTR0~DTR2三位可表示-30ppm~+30ppm的補(bǔ)償范圍。

  表2 控制寄存器

地址 名稱 7 6 5 4 3 2 1 0 缺省值
0013h DTR 0 0 0 0 0 DTR2 DTR1 DTR0 00h
0012h ATR 0 0 ATR5 ATR4 ATR3 ATR2 ATR1 ATR0 00h
0011h INT IM AL1E AL0E FO1 FO0 只讀 只讀 只讀 00h
0010h BL BP2 BP1 BP0 WD1 WD0 只讀 只讀 只讀 00h

 ?。粒裕壹拇嫫饔脕砦⒄{(diào)X1和X2之間的片內(nèi)負(fù)載電容,其范圍從+116ppm~-37ppm,具體電容值的大小可由下式計(jì)算:

  CART=[(ATR的十進(jìn)制值)

電能表相關(guān)文章:電能表原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉