利用MAXQ3210構(gòu)建水位監(jiān)測報(bào)警系統(tǒng)
喚醒定時(shí)器
本文引用地址:http://butianyuan.cn/article/83211.htmMAXQ3210的喚醒定時(shí)器是一個(gè)20位的定時(shí)器,可設(shè)置為系統(tǒng)時(shí)鐘遞減計(jì)數(shù),也可以設(shè)置為對處理器內(nèi)部環(huán)形振蕩器計(jì)數(shù)。應(yīng)用軟件將初始值裝入喚醒定時(shí)器寄存器(WUT),隨后定時(shí)器從這個(gè)設(shè)定值開始遞減計(jì)數(shù)。當(dāng)定時(shí)器計(jì)數(shù)值達(dá)到0時(shí),休眠周期結(jié)束,喚醒定時(shí)器控制(WTCN.1)寄存器的中斷標(biāo)志位(WTF)置位。如果中斷使能,該標(biāo)志將觸發(fā)一次中斷,使處理器退出中斷模式。如果屏蔽中斷,處理器將不退出停機(jī)模式。
通過WUT寄存器,處理器及其軟件可訪問20位定時(shí)器的前16位,低4位只允許定時(shí)器硬件訪問。盡管如此,任何情況下只要軟件對WUT寄存器進(jìn)行寫操作,其低4位也將清零。喚醒定時(shí)器的周期由以式給出:
喚醒定時(shí)器周期 = (源時(shí)鐘周期) x WUT[19:4] x 16
其中WUT[19:4]是20位定時(shí)器的前16位。注意,由于在WUT寄存器沒有包含定時(shí)器的低4位,周期數(shù)必須乘以16。通過使用這個(gè)公式,可看出一般在使用頻率為8kHz的環(huán)形振蕩器時(shí),最大喚醒周期大約為131秒。上文中選擇一分鐘為休眠周期,將倒計(jì)數(shù)值30,000 (07530h)裝載到WUT即可產(chǎn)生一分鐘的休眠時(shí)間。假設(shè)喚醒定時(shí)器對環(huán)形振蕩器進(jìn)行計(jì)數(shù)。
配置喚醒定時(shí)器時(shí)需要對定時(shí)器控制寄存器進(jìn)行一次寫操作,將喚醒寄存器(WTE)的使能位WUTC.0置位以使能定時(shí)器。同時(shí),喚醒定時(shí)器(WTCS)的時(shí)鐘選擇位WUTC.2必須置1,定時(shí)器才能對處理器的環(huán)形振蕩器進(jìn)行計(jì)數(shù)。因此,應(yīng)用程序必須向定時(shí)器控制寄存器(WUTC) 寫入十六進(jìn)制數(shù)05初始化定時(shí)器。喚醒定時(shí)器標(biāo)志(WTF)的WUTC.1位由定時(shí)器硬件置位,但必須由中斷服務(wù)程序清除,以防止重復(fù)響應(yīng)同一中斷。
模擬比較器
MAXQ3210內(nèi)置1位模數(shù)比較器及其2.5V的電壓基準(zhǔn),這些電路是本應(yīng)用的關(guān)鍵。比較器有兩個(gè)輸入端,+和-,如圖2所示。比較器輸出是兩個(gè)輸入端模擬電壓之差的函數(shù)。本應(yīng)用中,2.5V基準(zhǔn)連接至“+”輸入端,“-”輸入端連接至傳感器的一端。如圖所示,“-”輸入端通過一個(gè)1.0M電阻由設(shè)置為高電平的端口P0.5上拉至高電平。因此,在正常狀態(tài)下,“-”輸入端電壓接近于5V,高于“+”輸入端2.5V基準(zhǔn)電壓。比較器的極性選擇(CPOL)位CMPC.1在本應(yīng)用中設(shè)置為0。比較器輸出結(jié)果CMO如下:
CMO = 0當(dāng)(VREF
CMO = 1當(dāng)(VREF>CMPI)時(shí)
由此可見,正常狀態(tài)下比較器輸出CMPO為0。當(dāng)水監(jiān)測傳感器的電極浸入水中時(shí),兩電極之間的導(dǎo)電性將比較器輸入拉至地電位。這種狀態(tài)下,基準(zhǔn)電壓高于CMPI,比較器輸出CMO變?yōu)楦唠娖?。由于比較器的高輸入阻抗,正常情況(無報(bào)警)下,只有非常小的電流流入比較器輸入端。當(dāng)水監(jiān)測傳感器電極浸入水中時(shí),水的電導(dǎo)率和1.0M電阻可以限制傳感器電極之間的電流。
揚(yáng)聲器驅(qū)動(dòng)
MAXQ3210提供了一個(gè)板上3引腳壓電揚(yáng)聲器驅(qū)動(dòng)接口,該接口可直接驅(qū)動(dòng)壓電揚(yáng)聲器。3引腳接口的引腳配置如下:
HORNB (揚(yáng)聲器銅片):這個(gè)輸出連接至壓電揚(yáng)聲器的金屬電極。
HORNS (揚(yáng)聲器銀片):這個(gè)輸出連接至壓電揚(yáng)聲器的陶瓷電極。當(dāng)壓電揚(yáng)聲器驅(qū)動(dòng)使能時(shí),這個(gè)輸出為HORNB提供互補(bǔ)輸出。
壓電揚(yáng)聲器采用自驅(qū)動(dòng),使用揚(yáng)聲器控制寄存器的揚(yáng)聲器使能(HREN)位HRNC.0開啟或關(guān)閉壓電揚(yáng)聲器驅(qū)動(dòng)器。當(dāng)HRNC.0置1時(shí),揚(yáng)聲器驅(qū)動(dòng)器被激活,揚(yáng)聲器將發(fā)出聲音報(bào)警。當(dāng)HRNC.0位清零時(shí),揚(yáng)聲器不發(fā)聲。在本應(yīng)用實(shí)例中,在傳感器電極浸入水中時(shí),揚(yáng)聲器將在一定的時(shí)間間隔內(nèi)發(fā)出5聲蜂鳴聲。如果檢測到低電池電壓,揚(yáng)聲器將每次發(fā)出8聲蜂鳴聲,然后停止一分鐘。這種模式將一直持續(xù)到電池電壓過低導(dǎo)致系統(tǒng)復(fù)位,或外部觸發(fā)復(fù)位(外部復(fù)位沒有禁止時(shí)會發(fā)生這種情況)。
環(huán)形振蕩器
MAXQ3210內(nèi)置一個(gè)環(huán)形振蕩器,作為系統(tǒng)上電復(fù)位或退出停機(jī)模式的默認(rèn)時(shí)鐘源。環(huán)形振蕩器使能后立即開始振蕩,不象晶體振蕩器至少需要65536個(gè)時(shí)鐘周期才能達(dá)到穩(wěn)定狀態(tài)。從停機(jī)模式喚醒時(shí),如果系統(tǒng)延遲65,536個(gè)時(shí)鐘,在沒有執(zhí)行指令(例如,沒有任務(wù)運(yùn)行)等待這個(gè)周期結(jié)束期間將會消耗大量功率。退出停機(jī)模式時(shí),使用環(huán)形振蕩器可以避免這種功耗。實(shí)際上,退出停機(jī)模式時(shí),環(huán)形振蕩器也需要4個(gè)時(shí)鐘周期達(dá)到穩(wěn)定狀態(tài),但與晶體振蕩器相比,該時(shí)間間隔短得多。
為降低功耗,初始程序?qū)h(huán)形振蕩器配置為處理器的系統(tǒng)時(shí)鐘。將環(huán)形振蕩器選擇(RGSL)位CKCN.6置1實(shí)現(xiàn)。將該位置位,而處理器運(yùn)行在晶體振蕩器時(shí)(處于系統(tǒng)初始化階段),時(shí)鐘源將立即切換到環(huán)形振蕩器,這時(shí)沒有4個(gè)時(shí)鐘周期的延遲。
評論