實(shí)時(shí)時(shí)鐘ISL1208原理與應(yīng)用
1.引言
本文引用地址:http://m.butianyuan.cn/article/172203.htmINTERSIL公司推出的ISL1208是一種I2C接口、低成本、低功耗實(shí)時(shí)時(shí)鐘,它帶有定時(shí)與晶體補(bǔ)償、時(shí)鐘/日歷、電源失效指示器、周期或輪詢報(bào)警、智能后備電池切換和后備電池供電的SRAM等功能。振蕩器采用外部低成本32.768KHz晶振,日歷可精確到2099 年,閏年自動(dòng)修正。其強(qiáng)大的報(bào)警功能,可被設(shè)置成任意時(shí)間點(diǎn)報(bào)警或固定頻率輸出。若采用3.0V/3.6V鋰電池供電,供電電流僅為400nA,最多可持續(xù)供電長達(dá)10年。另外,后備電源輸入引腳Vbat還允許斷電時(shí)使用大容量后備電容供電以保證正常工作幾個(gè)月左右。
2. ISL1208簡介
ISL1208引腳如圖1所示:
其中:引腳X1、X2接外部晶振輸入端,可直接以32. 768kHz的晶體源驅(qū)動(dòng);Vbat接后備電源/電容,該引腳不用時(shí)接地;SDA為串行數(shù)據(jù)輸入輸出端;SCL為串行時(shí)鐘輸入端;IRQ/Fout為中斷 /頻率輸出端,可用作中斷/頻率輸出;Vdd和GND為電源和接地端。
3. ISL1208內(nèi)部結(jié)構(gòu)及其工作原理
ISL1208內(nèi)部結(jié)構(gòu)框圖如圖2。由圖可知,ISL1208主要包括:I2C接口控制單元、實(shí)時(shí)時(shí)鐘控制邏輯、時(shí)鐘分頻器、電源管理單元和寄存器單元。其中寄存器單元被分成四段:實(shí)時(shí)時(shí)鐘、控制與狀態(tài)、報(bào)警寄存器和用戶SRAM;這四段寄存器各自含有不同的功能:實(shí)時(shí)時(shí)鐘和報(bào)警寄存器用于寫入/讀出時(shí)間值和報(bào)警值,其寫入形式為BCD碼;控制與狀態(tài)寄存器可完成對其他寄存器讀寫控制、報(bào)警與頻率輸出控制、模擬與數(shù)字微調(diào)控制等功能,其存儲(chǔ)映射圖如表1。
控制與狀態(tài)寄存器(Control and Status)
控制與狀態(tài)寄存器包括狀態(tài)寄存器、中斷與報(bào)警寄存器、模擬微調(diào)與數(shù)字微調(diào)寄存器。
狀態(tài)寄存器(SR):用來控制RTC失效、電池模式、報(bào)警觸發(fā)、時(shí)鐘計(jì)數(shù)器寫保護(hù)、晶體振蕩器使能以及狀態(tài)位的自動(dòng)復(fù)位或者提供相應(yīng)的狀態(tài)信息。在時(shí)鐘上電時(shí),需將寫RTC使能位WRTC置“1”,以便啟動(dòng)時(shí)鐘計(jì)數(shù)。
中斷控制寄存器(INT):主要用于控制時(shí)鐘的周期性和單事件報(bào)警。其中頻率輸出控制位FO3-FO0使能/禁止頻率輸出功能,并選擇IRQ/FOUT引腳的輸出頻率(2-5Hz-215Hz)。在頻率模式被激活時(shí)它將覆蓋IRQ/FOUT引腳上的報(bào)警模式。報(bào)警使能位ALME使能/禁止報(bào)警功能,中斷/報(bào)警模式位IM使能單周期定時(shí)事件(IM=0)/周期定時(shí)事件(IM=1)。
模擬微調(diào)寄存器(ATR):ATR0至ATR5為六位模擬微調(diào)位,可調(diào)整片內(nèi)負(fù)載電容(CX1、CX2)的值,這一電容值用于RTC的頻率補(bǔ)償,其每一位都有不同的電容調(diào)節(jié)比重。有效的片內(nèi)串聯(lián)負(fù)載電容CLOAD 的范圍從4.5pF至20.25pF,中間值為12.5pF(默認(rèn))。CLOAD可通過X1/X2引腳之間兩個(gè)數(shù)字控制電容器CX1和CX2調(diào)節(jié)。
數(shù)字微調(diào)寄存器(DTR):數(shù)字微調(diào)位DTR0、DTR1和DTR2用來調(diào)整每秒鐘的平均計(jì)數(shù)值和平均誤差以獲取更好的精度。其中DTR2為符號位(DTR2=0頻率補(bǔ)償>0,DTR2=1頻率補(bǔ)償0),DTR1和DTR0為刻度位:DTR1提供40ppm 調(diào)整,DTR0提供20ppm調(diào)整。用以上三位可以表示-60ppm至+60ppm的補(bǔ)償范圍。
4. 應(yīng)用舉例
4.1 硬件結(jié)構(gòu)
ISL1208具有I2C接口,使其便于與各類處理器連接且硬件結(jié)構(gòu)十分簡單,傳輸速率最高可達(dá)400Hz。硬件結(jié)構(gòu)如圖 3。其中時(shí)鐘輸入口SCL、數(shù)據(jù)輸入輸出口SDA分別與AT89C51的P1.6、P1.7腿相連,中斷輸出口IRQ/Fout接外部中斷INT0。 AT89C51通過RS232口與計(jì)算機(jī)相連,通過計(jì)算機(jī)對實(shí)時(shí)時(shí)鐘產(chǎn)生控制。Vbat引腳接后備電容器。
4.2 軟件設(shè)計(jì)
由于ISL1208為I2C接口,因此其接口協(xié)議也滿足I2C規(guī)范,這里不再累述。需要提到一點(diǎn)是:在每次訪問寄存器時(shí),應(yīng)先輸入一個(gè)有效的辨識(shí)字節(jié)。該字節(jié)高7位(1101111)為器件辨識(shí)符。辨識(shí)字節(jié)的最后一位定義進(jìn)行讀/寫操作,當(dāng)其為“1”時(shí)選擇讀,為“0”時(shí)選擇寫。圖4為ISL1208讀/寫時(shí)序圖。
對于ISL1208來說,由于其內(nèi)部結(jié)構(gòu)設(shè)計(jì),可以很容易的實(shí)現(xiàn)2nHz中斷輸出和每分、每天至每年一次報(bào)警,但要求具體幾分鐘、幾小時(shí)報(bào)警一次還需在程序的編制上要比較注意。以下程序?yàn)橥ㄟ^計(jì)算機(jī)、單片機(jī)來控制ISL1208每5秒鐘產(chǎn)生一次中斷程序,上位機(jī)程序由MATLAB編寫[4],單片機(jī)程序由C語言編寫,由于篇幅有限僅列出部分單片機(jī)程序:
分頻器相關(guān)文章:分頻器原理
評論