關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 高精度的實時時間芯片X1288的原理及應用

        高精度的實時時間芯片X1288的原理及應用

        作者: 時間:2004-12-27 來源:網絡 收藏
        摘要:介紹的實時的主要特點、工作及實際應用。給出具體的內部框圖、計時精度調節定時的PCB設計和讀寫操作的基本程序。

        關鍵詞:RTC 精度調節

        引言

        是Xicor公司最新推出的高精度多功能。除了提供高精度的時間外,還提供了片內的32K8位的EEPROM、看門狗、2個警告和備和電源的自動切換、頻率輸出等大量實用的功能。由于它使用的外部晶振可以選用低價格的32.768kHz晶體振蕩器,所以芯片的價格便宜。它提供的時間分辨率為1/100s,以及小于510 -6的年變化率,使得它得以在手機、POS設備、智能儀表、控制裝置及其它電子領域中得以廣泛的應用,而且還可以作為低精度儀表的時間校準。

        1 X1288簡介

        X1288的引腳如圖1所示。

        X1288共有兩種封裝形式:一種是16引腳的SOIC封裝(表面幀式),另一種為14引腳的TSSOP封裝(雙列直插式)。

        圖1

        X1,X2:外接32.768kHz晶振的引腳。

        RESET:復位信號輸出,作為看門狗時使用。

        Vss:數字地。

        SDA:用于串行傳輸數據的輸入與輸出雙向引腳。引腳為開漏輸出,因此需要接上拉電阻,線上的傳輸速度最高達400kHz。

        SCL:串行時鐘輸入腳。

        PHZ/IRQ:多功能復用引腳。

        功能1――可編程的頻率輸出。可以輸出32.768kHz、100Hz、1Hz或不激活四種狀態。

        功能2――中斷輸出。提醒上位機一個定時警告已產生,低電平表示激活。

        VBACK:后備支撐電源引腳輸入端。

        Vcc:主電源。

        NC:無內部連接。

        2 X1288的內部框圖及其工作

        X1288內部由振蕩電路、分頻電路、計時單元、晶振補償單元、時間保存寄存器、警告寄存器、256Kb EEPROM、狀態寄存器、控制寄存器、串行接口譯碼器、控制譯 碼單元、看門狗定時器、低電平復位電路等組成。內部框圖如圖2所示。

        圖2

        由于上位機是通過控制X1288的各寄存器對芯片進行操作的。因此,主要介紹內部寄存器及實現高精度定時的調節原理。

        X1288內部共有可用的寄存器64個,其中0x00~0x37和0x3f已經使用。分別為狀態寄存器、時間寄存器、控制寄存器、報警寄存器0、報警寄存器1。

        2.1 主要寄存器介紹

        狀態寄存器(SR)是易失性的,其地址是03H,命令格式如下:

        位7位6位5位4位3位2位1位0缺省值
        BATAL1AL000RWELWELRTCF01h

        BAT:后備電源標志。BAT為“1”,表明器件在使用后備電源。

        AL1、AL0:報警選擇位。X1288中有兩個報警寄存器。若其中的某一報警時間與實時時鐘相同時,相應的AL1和AL0位將變為“1”;當讀取SR的值后,該位又變為“0”。

        RWEL:時鐘/控制寄存器寫入控制位。對控制寄存器進行寫操作時,必須先使該位為“1”。

        WEL:控制寄存器和內部的EEPROM的寫入控制位。在對它們進行寫操作時,必須先使該位為“1”。但是要對它進行寫,先要寫RWE1位為“1”,即先寫“02H”到狀態寄存器,再寫“06H”到狀態寄存器才可以。

        RTCF:掉電標志位。當全部電源包括Vcc和VBACK失效后,該閏變為“1”;而在系統再次上電后,如果要對RTC進行第一次有效寫操作,則應首先使該位為“0”。

        2.2 計時精度調節原理

        為了實現高精度的定時,X1288主要通過芯片內部的晶振補償單元的數字微調寄存器和模擬微調寄存器來實現。這兩個寄存器為非易失性的,掉電之后數據也不會丟失。數字微調寄存器(DTR)應用3位DTR2、DTR1、DTR0來調節每秒的計算次數和平均錯誤,獲得更好的精度。其中DTR2為符號位:DTR2=0,頻率補償為正;DTR2=1,頻率補償為負。DTR1、DTR0是數值位,DTR1提供1010 -6的調整范圍。DTR0提供2010 -6的調節范圍。三個位組合起來提供-3010 -6~+3010 -6的調節。模擬微調寄存器(ATR)共有ATR5~ATR0的6個模擬微調位,用于調節芯片內加載電容的大小。加載電容的大小為3.25pF~18.75pF。內部電容大小的計算公式如下:

        CATR=(ATR value0.25pF)+11.0pF

        典型可調節的晶振頻率范圍上下偏差為+11610 -6~-3710 -6。兩個微調寄存器相結合,最大可調節+14610 -6,實現高精度的定時微調。

        圖3

        3 應用

        3.1 X1288與CPU連接的原理圖

        X1288與89C92的連接比較簡單,如圖3所示。有點要注意的是,在SCL、SDA和RESET引腳要接上拉電阻。

        3.2 為實現高精度定時的PCB設計

        由于X1288的晶振輸入引腳X1的輸入阻抗非常高,會從電路板上的其它電路中拾取高頻信號;同時,輸入引腳X2接晶振的另外一個引腳,它也是一個敏感節點。另外,高頻的噪聲信號能夠從兩個節點注入晶振電路,產生雙倍的時鐘或雜亂的時鐘信號,嚴重影響定時器的精確定。因此,需要小心設計的電路的布線,以避免哭聲信號的拾取。在設計中,連接到X1、X2的晶振引腳要盡可能的短,而且最好在晶振周圍布上寬的地線,以減少噪聲的侵入。但是,在X1、X2引腳邊要避免布地線,以防止增加X1、X2引腳的輸入負載電容。還有,在Vcc與地線之間一定要接上一個非極性的電容。典型的布線如圖4所示。

        3.3 軟件介紹

        X1288與CPU的接口方式,遵循標準的I2C總線協議格式。即首先主器件發出啟動信號,其次是命令幀、地址幀和數據幀格式。所有的命令、數據和地址字節首先傳輸最高位。關于I2C總線的格式在各種論文中已有詳細描述。以下是C51對X1288進行基本操作的程序。

        (1)讀X1288的程序

        uchar Read_x1288(void)/*讀一個字節的數據*/

        { 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=temp0xfe; /*否則temp的最低位清0*/

        if(BitCounter-1)

        {temp=temp1;}

        BitCounter--;

        }while(BitCounter);

        Scl_x1288=Low;

        return(temp);};

        (2)寫x1288的程序

        void Write_x1288(uchar TempData)/*寫數據子程序*/

        {uchar BitCounter=8; /*位數控制*/

        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=temp1;

        BitCounter--;

        }while(BitCounter);

        Scl_x1288=Low;}

        4 小結

        實驗證明,X1288多功能高精度與其它時鐘芯片相比,有精度高、功能全、使用靈活簡單,性能價格比極高的特點。在實際應用中,作為低精度計時器的校時,也完全可行。它具有很高的應用價值。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 游戏| 察雅县| 桃园市| 荔浦县| 南和县| 邛崃市| 洞头县| 雷山县| 望江县| 沿河| 万安县| 伊吾县| 金坛市| 雷山县| 龙井市| 蓝田县| 罗源县| 阳西县| 武穴市| 东源县| 湖南省| 芦溪县| 会昌县| 遂昌县| 鄂托克旗| 哈尔滨市| 绥芬河市| 北宁市| 合作市| 揭阳市| 高淳县| 新竹市| 鄂州市| 桦南县| 洱源县| 连江县| 天全县| 体育| 庐江县| 大邑县| 花莲县|