基于MSP430F11X的低功耗低成本實時時鐘
前言
本文引用地址:http://2s4d.com/article/172017.htm實時時鐘(RTC)可應(yīng)用于多種領(lǐng)域--從鐘表到時間標(biāo)記事件,甚至到產(chǎn)生事件。對于通信工程、電力自動化、工業(yè)控制等自動化程度高的領(lǐng)域大多數(shù)情況下很多設(shè)備都處于無人值守的情況,都希望能把故障發(fā)生的時間和相關(guān)信息記錄下來,以便具體分析。目前市面上有很多專用RTC器件,這些器件往往靈活性差,系統(tǒng)集成度低。而MSP430F11X系列單片機具有低成本、低電流損耗、使用靈活簡單及擴展性好等優(yōu)點,使之成為專用RTC器件在某些特殊場合的理想替代品。
本系統(tǒng)采用了TI公司超低功耗16位微處理器--MSP430F111,具有極低功耗特性、極強的抗干擾能力和極高的性價比。整個系統(tǒng)僅用兩個普通電池(工作電壓為3V)就可以長期工作,無需其他電源,大大拓寬了應(yīng)用范圍。
系統(tǒng)工作原理和實現(xiàn)
本系統(tǒng)的主要難點在于如何產(chǎn)生一個穩(wěn)定的系統(tǒng)時鐘。所有MSP430器件既包含一個數(shù)字控制的RC型振蕩器,又包含一個晶體振蕩器。一般RC型振蕩器用于 CPU時鐘,而晶體振蕩器則用于外圍器件。在實時時鐘的應(yīng)用中,晶體振蕩器可作為用作時基的定時器/計數(shù)器的時鐘源。因此,不存在對RC型振蕩器很普遍的不穩(wěn)定問題。
將MSP430制作成RTC的過程很簡單,包括一個定時器/計數(shù)器提供1s的中斷以及一個小型CPU子程序來計算中斷。在中斷之間,CPU可以處于休眠狀態(tài)或執(zhí)行其他功能。實際操作過程中還應(yīng)包括一個用于主機處理器從MSP430 RTC中抽取時間的接口子程序,以及其他系統(tǒng)功能,如電池監(jiān)控、系統(tǒng)監(jiān)控、通訊接口等。
MSP430F111是MSP430F11X系列中的一個很簡單、價格也很便宜的器件,具有14個通用I/O引腳、2個16位定時器、2KB 閃速存儲器、128B RAM和基本時鐘模塊。
時鐘的產(chǎn)生
RTC中采用在LF工作方式下具有32768Hz晶振的LFXT1振蕩器來產(chǎn)生時鐘。LFXT1振蕩器的輸出用于提供ACLK,然后ACLK則用作定時器/計數(shù)器的時鐘源,而定時器/計數(shù)器用作RTC的時基。
DCO產(chǎn)生CPU時鐘MCLK。實際上CPU和外圍器件定時器/計數(shù)器異步運行。只要CPU能在下一個中斷到達之前計算每個來自定時器/計數(shù)器的中斷,RTC的精度就不受影響。
定時器/計數(shù)器的選擇
MSP430F111 包含2個定時器:看門狗定時器和定時器A。定時器A用作時基,設(shè)計成能連續(xù)計數(shù)并每隔1s時間提供一次中斷。由于定時器A用ACLK作為自己的時鐘源,而 ACLK的工作晶振頻率精確為32768Hz,所以定時器A可簡單的計數(shù)到32768,然后開始翻轉(zhuǎn)到0,每次數(shù)到32768時便給出一個中斷。而CPU 則可簡單的計算來自定時器A的中斷。
外部接口
因為現(xiàn)在可以方便的得到各種RTC的接口,其中絕大部分可以應(yīng)用于 MSP430,如I2C、并行接口、UART及串行接口等。TI有現(xiàn)成的程序代碼模塊以實現(xiàn)與 MSP430的接口,并易于集成。這樣,建立一個基于MSP430的完整RTC就成為一件簡單的事,即選擇一個接口。
電路描述
圖1為RTC的電路圖,此處唯一需要的外部元件是32768Hz的晶體。
圖1 RTC的電路圖
電流損耗
MSP430F111 在正常工作方式下(3V,1MHz)的典型電流消耗是330μA。而在低功耗方式(休眠方式)下的典型電流損耗為1.5μA(3V)。器件從低功耗方式下喚醒的時間小于6μs,并且時鐘程序大約可在130μs內(nèi)執(zhí)行。由于極低的電流消耗以及處于有效方式的時間極短,采用'F111作為一個RTC僅消耗極少的電流,因此其電池壽命最長。
晶體的精度和選擇
RTC的精度僅取決于為晶體振蕩器而選擇的晶體的精度。我們可以根據(jù)自己期望的精度而購買適當(dāng)?shù)木w。
晶體的精度主要受下面兩個因素影響:晶體的頻率容限和指定的負(fù)載電容。
晶體的容限是很顯而易見的。晶體頻率的容限越小,RTC的精度越高。
評論