高精度的實(shí)時(shí)時(shí)間芯片X1288的原理及應(yīng)用
關(guān)鍵詞:RTC X1288 高精度 精度調(diào)節(jié)
引言
X1288是Xicor公司最新推出的高精度多功能時(shí)間芯片。除了提供高精度的時(shí)間外,還提供了片內(nèi)的32K×8位的EEPROM、看門狗、2個(gè)警告和備和電源的自動切換、頻率輸出等大量實(shí)用的功能。由于它使用的外部晶振可以選用低價(jià)格的32.768kHz晶體振蕩器,所以芯片的價(jià)格便宜。它提供的時(shí)間分辨率為1/100s,以及小于5×10 -6的年變化率,使得它得以在手機(jī)、POS設(shè)備、智能儀表、控制裝置及其它電子領(lǐng)域中得以廣泛的應(yīng)用,而且還可以作為低精度儀表的時(shí)間校準(zhǔn)。
1 X1288簡介
X1288的引腳如圖1所示。
X1288共有兩種封裝形式:一種是16引腳的SOIC封裝(表面幀式),另一種為14引腳的TSSOP封裝(雙列直插式)。
圖1
X1,X2:外接32.768kHz晶振的引腳。
RESET:復(fù)位信號輸出,作為看門狗時(shí)使用。
Vss:數(shù)字地。
SDA:用于串行傳輸數(shù)據(jù)的輸入與輸出雙向引腳。引腳為開漏輸出,因此需要接上拉電阻,線上的傳輸速度最高達(dá)400kHz。
SCL:串行時(shí)鐘輸入腳。
PHZ/IRQ:多功能復(fù)用引腳。
功能1——可編程的頻率輸出??梢暂敵?2.768kHz、100Hz、1Hz或不激活四種狀態(tài)。
功能2——中斷輸出。提醒上位機(jī)一個(gè)定時(shí)警告已產(chǎn)生,低電平表示激活。
VBACK:后備支撐電源引腳輸入端。
Vcc:主電源。
NC:無內(nèi)部連接。
2 X1288的內(nèi)部框圖及其工作原理
X1288內(nèi)部由振蕩電路、分頻電路、計(jì)時(shí)單元、晶振補(bǔ)償單元、時(shí)間保存寄存器、警告寄存器、256Kb EEPROM、狀態(tài)寄存器、控制寄存器、串行接口譯碼器、控制譯 碼單元、看門狗定時(shí)器、低電平復(fù)位電路等組成。內(nèi)部框圖如圖2所示。
圖2
由于上位機(jī)是通過控制X1288的各寄存器對芯片進(jìn)行操作的。因此,主要介紹內(nèi)部寄存器及實(shí)現(xiàn)高精度定時(shí)的調(diào)節(jié)原理。
X1288內(nèi)部共有可用的寄存器64個(gè),其中0x00~0x37和0x3f已經(jīng)使用。分別為狀態(tài)寄存器、時(shí)間寄存器、控制寄存器、報(bào)警寄存器0、報(bào)警寄存器1。
2.1 主要寄存器介紹
狀態(tài)寄存器(SR)是易失性的,其地址是03H,命令格式如下:
位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 | 缺省值 |
BAT | AL1 | AL0 | 0 | 0 | RWEL | WEL | RTCF | 01h |
BAT:后備電源標(biāo)志。BAT為“1”,表明器件在使用后備電源。
AL1、AL0:報(bào)警選擇位。X1288中有兩個(gè)報(bào)警寄存器。若其中的某一報(bào)警時(shí)間與實(shí)時(shí)時(shí)鐘相同時(shí),相應(yīng)的AL1和AL0位將變?yōu)椤?”;當(dāng)讀取SR的值后,該位又變?yōu)椤?”。
RWEL:時(shí)鐘/控制寄存器寫入控制位。對控制寄存器進(jìn)行寫操作時(shí),必須先使該位為“1”。
WEL:控制寄存器和內(nèi)部的EEPROM的寫入控制位。在對它們進(jìn)行寫操作時(shí),必須先使該位為“1”。但是要對它進(jìn)行寫,先要寫RWE1位為“1”,即先寫“02H”到狀態(tài)寄存器,再寫“06H”到狀態(tài)寄存器才可以。
RTCF:掉電標(biāo)志位。當(dāng)全部電源包括Vcc和VBACK失效后,該閏變?yōu)椤?”;而在系統(tǒng)再次上電后,如果要對RTC進(jìn)行第一次有效寫操作,則應(yīng)首先使該位為“0”。
2.2 計(jì)時(shí)精度調(diào)節(jié)原理
為了實(shí)現(xiàn)高精度的定時(shí),X1288主要通過芯片內(nèi)部的晶振補(bǔ)償單元的數(shù)字微調(diào)寄存器和模擬微調(diào)寄存器來實(shí)現(xiàn)。這兩個(gè)寄存器為非易失性的,掉電之后數(shù)據(jù)也不會丟失。數(shù)字微調(diào)寄存器(DTR)應(yīng)用3位DTR2、DTR1、DTR0來調(diào)節(jié)每秒的計(jì)算次數(shù)和平均錯誤,獲得更好的精度。其中DTR2為符號位:DTR2=0,頻率補(bǔ)償為正;DTR2=1,頻率補(bǔ)償為負(fù)。DTR1、DTR0是數(shù)值位,DTR1提供10×10 -6的調(diào)整范圍。DTR0提供20×10 -6的調(diào)節(jié)范圍。三個(gè)位組合起來提供-30×10 -6~+30×10 -6的調(diào)節(jié)。模擬微調(diào)寄存器(ATR)共有ATR5~ATR0的6個(gè)模擬微調(diào)位,用于調(diào)節(jié)芯片內(nèi)加載電容的大小。加載電容的大小為3.25pF~18.75pF。內(nèi)部電容大小的計(jì)算公式如下:
CATR=(ATR value×0.25pF)+11.0pF
典型可調(diào)節(jié)的晶振頻率范圍上下偏差為+116×10 -6~-37×10 -6。兩個(gè)微調(diào)寄存器相結(jié)合,最大可調(diào)節(jié)+146×10 -6,實(shí)現(xiàn)高精度的定時(shí)微調(diào)。
圖3
3 應(yīng)用
3.1 X1288與CPU連接的原理圖
X1288與89C92的連接比較簡單,如圖3所示。有點(diǎn)要注意的是,在SCL、SDA和RESET引腳要接上拉電阻。
3.2 為實(shí)現(xiàn)高精度定時(shí)的PCB設(shè)計(jì)
由于X1288的晶振輸入引腳X1的輸入阻抗非常高,會從電路板上的其它電路中拾取高頻信號;同時(shí),輸入引腳X2接晶振的另外一個(gè)引腳,它也是一個(gè)敏感節(jié)點(diǎn)。另外,高頻的噪聲信號能夠從兩個(gè)節(jié)點(diǎn)注入晶振電路,產(chǎn)生雙倍的時(shí)鐘或雜亂的時(shí)鐘信號,嚴(yán)重影響定時(shí)器的精確定。因此,需要小心設(shè)計(jì)的電路的布線,以避免哭聲信號的拾取。在設(shè)計(jì)中,連接到X1、X2的晶振引腳要盡可能的短,而且最好在晶振周圍布上寬的地線,以減少噪聲的侵入。但是,在X1、X2引腳邊要避免布地線,以防止增加X1、X2引腳的輸入負(fù)載電容。還有,在Vcc與地線之間一定要接上一個(gè)非極性的電容。典型的布線如圖4所示。
3.3 軟件介紹
X1288與CPU的接口方式,遵循標(biāo)準(zhǔn)的I2C總線協(xié)議格式。即首先主器件發(fā)出啟動信號,其次是命令幀、地址幀和數(shù)據(jù)幀格式。所有的命令、數(shù)據(jù)和地址字節(jié)首先傳輸最高位。關(guān)于I2C總線的格式在各種論文中已有詳細(xì)描述。以下是C51對X1288進(jìn)行基本操作的程序。
(1)讀X1288的程序
uchar Read_x1288(void)/*讀一個(gè)字節(jié)的數(shù)據(jù)*/
{ uchar temp=0;
uchar BitCounter=8;
Scl_x1288=Low;
do{
Scl_x1288=Low;
_nop_();_nop_();
Scl_x1288=High;
_nop_();_nop_();
if(Sda_x1288) /*如果Sda=1;*/
temp=temp|0x01|; /*temp的最低位置1*/
else
temp=temp&0xfe; /*否則temp的最低位清0*/
if(BitCounter-1)
{temp=temp<<1;}
BitCounter--;
}while(BitCounter);
Scl_x1288=Low;
return(temp);};
(2)寫x1288的程序
void Write_x1288(uchar TempData)/*寫數(shù)據(jù)子程序*/
{uchar BitCounter=8; /*位數(shù)控制*/
uchar temp; /*中間變量控制*/
temp=TempData;
Scl_x1288=Low;
do{
Scl_x1288=Low;
_nop_();_nop_();
Sda_x1288=((temp & 0x80)?1:0);
_nop_();_nop_();
Scl_x1288=High;
_nop_();_nop_();
temp=temp<<1;
BitCounter--;
}while(BitCounter);
Scl_x1288=Low;}
4 小結(jié)
實(shí)驗(yàn)證明,X1288多功能高精度時(shí)間芯片與其它時(shí)鐘芯片相比,有精度高、功能全、使用靈活簡單,性能價(jià)格比極高的特點(diǎn)。在實(shí)際應(yīng)用中,作為低精度計(jì)時(shí)器的校時(shí),也完全可行。它具有很高的應(yīng)用價(jià)值。