利用MAXQ3210構(gòu)建水位監(jiān)測報(bào)警系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
概述
MAXQ3210微控制器是一款功能強(qiáng)大的RISC微控制器,器件所具備的功能和特性使其非常適合電池供電的監(jiān)控和音頻報(bào)警系統(tǒng)。微控制器內(nèi)部集成了5V至9V穩(wěn)壓器、壓電揚(yáng)聲器驅(qū)動器和模擬比較器,大大降低了系統(tǒng)的元件數(shù)量。另外,停機(jī)模式、喚醒模式等多種低功耗特性使其在9V電池供電時(shí)能有效延長工作時(shí)間。
本應(yīng)用筆記提供了一個(gè)利用MAXQ3210微控制器實(shí)現(xiàn)水位監(jiān)測及音頻報(bào)警的系統(tǒng),該系統(tǒng)利用礦物質(zhì)對水的電導(dǎo)率的影響來檢測水位,并在必要時(shí)給出報(bào)警信號。本文介紹的方案還不能直接用作最終產(chǎn)品,只是說明有效利用MAXQ3210功能的案例。實(shí)例中使用的水位檢測機(jī)制并未在極端環(huán)境下進(jìn)行可靠性測試,也沒有對其長期工作的有效性進(jìn)行評估。本應(yīng)用筆記提供的只是一個(gè)簡單案例,可以對自來水進(jìn)行有效的監(jiān)測。
本應(yīng)用筆記中的程序針對MAXQ3210編寫,并進(jìn)行了測試,也可以運(yùn)行在包含類似資源的其它MAXQ器件,如MAXQ3212。例程開發(fā)環(huán)境是MAX-IDE 1.0版和MAXQ3210評估板修訂版B版。關(guān)于評估套件的詳細(xì)信息,請參見MAXQ3210EVKIT。
工作原理
本應(yīng)用筆記將詳細(xì)討論MAXQ3210的功能及特性,MAXQ3210的內(nèi)部比較器允許使用最少外圍器件實(shí)現(xiàn)簡單的水位監(jiān)測系統(tǒng)。通過使用處理器的低功耗休眠模式和喚醒定時(shí)器,使電池供電監(jiān)測報(bào)警系統(tǒng)在絕大部分時(shí)間處于停機(jī)模式,只是周期性地喚醒系統(tǒng)檢測水位,判斷是否發(fā)出報(bào)警信號。
以下部分說明MAXQ3210的一些功能及在本應(yīng)用如何有效利用這些功能,并對這些功能的結(jié)構(gòu)、設(shè)置進(jìn)行說明。
水監(jiān)測傳感器探頭
水監(jiān)測傳感器探頭如圖1所示,如上所述,該傳感器不是針對最終產(chǎn)品設(shè)計(jì)的。它由一片塑膠材料固定屏蔽夾子形狀的電極。電極之間的距離可以任選或由具體材料決定。傳感器通過一個(gè)間距為0.1的4引腳連接器直接連接到MAXQ3210評估板的J4 (引腳9-P0.4、11-P0.5/CMPI和13-P0.6)。1.0M電阻(圖中靠近連接器的導(dǎo)線部分)作為傳感器電極的一個(gè)上拉電阻,該電阻直接焊接到連接器的一個(gè)引腳。
圖1. 水監(jiān)測探頭
圖2. 水監(jiān)測原理圖
水監(jiān)測傳感器探頭與處理器的連接原理圖如圖2所示。傳感器一端連接至MAXQ3210的內(nèi)部模擬比較器輸入端CMPI,P0.5。該輸入還與1.0M電阻相連,電阻的另一端接處理器的端口引腳,P0.6。軟件將P0.6配置為輸出,并在系統(tǒng)初始化部分將其置為高電平。由于比較器具有高輸入阻抗,這種配置在正常條件下使CMPI接近于VCC (例如,傳感器電極沒有浸入水中)。傳感器的另一端連接至端口P0.4,P0.4配置為輸出引腳并置為低電平。當(dāng)兩個(gè)傳感器電極都浸入水中時(shí),水的電導(dǎo)率強(qiáng)行比較器輸入下拉至地。發(fā)生這種情況時(shí),比較器輸出CMPO改變。關(guān)于模擬比較器及其工作的詳細(xì)信息將在本文的后續(xù)內(nèi)容討論。
停機(jī)模式的重要性
除斷電狀態(tài)外,停機(jī)模式是MAXQ3210的最低功耗模式。停機(jī)模式下禁止處理器內(nèi)部環(huán)形振蕩器、喚醒定時(shí)器(如果使能)以外的所有電路工作。片上時(shí)鐘、定時(shí)器和外設(shè)電路都將停止工作,程序也會停止運(yùn)行。一旦進(jìn)入停機(jī)模式,MAXQ3210的絕大部分時(shí)間處于靜止?fàn)顟B(tài),其功耗主要由漏電流決定。結(jié)合喚醒定時(shí)器使用停機(jī)模式,可實(shí)現(xiàn)低功耗工作。
實(shí)際工作環(huán)境下,水位變化非常慢。因此,處理器在絕大部分時(shí)間內(nèi)可處于停機(jī)模式,只需在較長的時(shí)間間隔內(nèi)喚醒一次簡單的傳感器檢測操作。實(shí)例中,選擇一分鐘作為傳感器的采樣周期。該時(shí)間間隔既不會錯(cuò)過報(bào)警,也能夠有效利用處理器的停機(jī)狀態(tài),充分延長電池的使用壽命。如果這個(gè)周期對于特定的應(yīng)用過長或過短,可將軟件中的喚醒延時(shí)常數(shù)(WUDel)改為所要求的數(shù)值,然后重新編譯程序。以下喚醒定時(shí)器周期公式給出了這個(gè)時(shí)間間隔的計(jì)算方式:
當(dāng)處理器時(shí)鐘控制寄存器的STOP位,CKCN.4,置1時(shí),處理器立即進(jìn)入停機(jī)模式。如發(fā)生以下任何條件,處理器將退出停機(jī)模式:
P1.1/RESET出現(xiàn)低電平有效復(fù)位(如果沒有禁止)
上電復(fù)位(如果沒有禁止)
P0.6/INT出現(xiàn)外部中斷(如果使能)
喚醒定時(shí)器計(jì)時(shí)到0(如果使能)及中斷被響應(yīng)
處理器由于喚醒定時(shí)中斷而退出停機(jī)模式不會影響處理器的配置,其中包括時(shí)鐘控制位設(shè)置。外部復(fù)位引起的退出停機(jī)模式則不同,處理器將恢復(fù)到默認(rèn)上電狀態(tài)。因此,在進(jìn)入停機(jī)模式之前,處理器應(yīng)該初始化為標(biāo)準(zhǔn)工作狀態(tài),以便在退出停機(jī)模式時(shí)恢復(fù)到原配置。喚醒定時(shí)器中斷及其中斷服務(wù)程序(ISR)除了使處理器退出停機(jī)模式外,還將啟動其它系統(tǒng)功能(如,檢測傳感器、使揚(yáng)聲器發(fā)聲、低電池電壓檢測等)。
喚醒定時(shí)器
MAXQ3210的喚醒定時(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<CMPI)時(shí)
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ū)動
MAXQ3210提供了一個(gè)板上3引腳壓電揚(yáng)聲器驅(qū)動接口,該接口可直接驅(qū)動壓電揚(yáng)聲器。3引腳接口的引腳配置如下:
HORNB (揚(yáng)聲器銅片):這個(gè)輸出連接至壓電揚(yáng)聲器的金屬電極。
HORNS (揚(yáng)聲器銀片):這個(gè)輸出連接至壓電揚(yáng)聲器的陶瓷電極。當(dāng)壓電揚(yáng)聲器驅(qū)動使能時(shí),這個(gè)輸出為HORNB提供互補(bǔ)輸出。
壓電揚(yáng)聲器采用自驅(qū)動,使用揚(yáng)聲器控制寄存器的揚(yáng)聲器使能(HREN)位HRNC.0開啟或關(guān)閉壓電揚(yáng)聲器驅(qū)動器。當(dāng)HRNC.0置1時(shí),揚(yáng)聲器驅(qū)動器被激活,揚(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í)鐘周期的延遲。
環(huán)形振蕩器的工作頻率設(shè)置在8kHz,實(shí)際頻率可能因不同器件而變化。頻率還會隨著溫度和電源電壓的變化而變化,因此,如果應(yīng)用需要精確定時(shí),則需考慮這些變化因素。在本應(yīng)用中,頻率的精確性并不重要。
由于處理器在停機(jī)模式時(shí),晶體振蕩器不工作,本應(yīng)用中喚醒定時(shí)器必須設(shè)置為工作在環(huán)形振蕩器下(WTCS = WUTC.2 = 1)。系統(tǒng)也可以使處理器工作在晶體振蕩器下,而喚醒定時(shí)器則工作在環(huán)形振蕩器下??紤]到對喚醒定時(shí)器寄存器的讀/寫操作存在時(shí)序差異,本文沒有采用這種方法。
低電池電壓檢測
MAXQ3210配備了低電池電壓檢測電路,將低電池電壓檢測(LBDE)使能位PWCN.1置1,一旦輸入電源VDD降至低電池電壓門限VBF以下,低電池電壓中斷標(biāo)志位(LBF) PWCN.3將由處理器的硬件置位。如果中斷使能,該中斷標(biāo)志位將觸發(fā)一次中斷,但該中斷在此應(yīng)用中沒有使用。每次處理器退出停機(jī)模式并檢測水位傳感器時(shí),會檢測一次中斷標(biāo)志位。如果電池電量過低,揚(yáng)聲器將每次發(fā)出8聲蜂鳴聲,然后停止一分鐘,并如此循環(huán)。
評估板注意事項(xiàng)
為本應(yīng)用編寫的程序已在MAXQ3210評估板上進(jìn)行過測試。在這個(gè)開發(fā)環(huán)境下工作時(shí),需要注意以下事項(xiàng)。第一,需注意處理器工作在環(huán)形振蕩器下,通過串口至JTAG板實(shí)現(xiàn)與評估板的通信,由處理器調(diào)試/JTAG總線完成。JTAG時(shí)鐘不能高于處理器時(shí)鐘的1/8。如果工作在環(huán)形振蕩器的處理器違反這條規(guī)定,JTAG接口板將無法與評估板進(jìn)行通訊。JTAG接口板沒有從評估板上收到恰當(dāng)信息時(shí),PC機(jī)軟件將認(rèn)為通訊失敗。發(fā)生這種情況時(shí),PC機(jī)顯示一個(gè)錯(cuò)誤消息,調(diào)試器被掛起。在將時(shí)鐘源更改為環(huán)形振蕩器的程序之前插入一個(gè)長延時(shí)可以避免這種情況。上電復(fù)位時(shí)環(huán)形振蕩器選擇位RGSL清零。插入這段延時(shí),調(diào)試器就有時(shí)間在環(huán)形振蕩器正常工作之前獲得開發(fā)板的控制權(quán)。提供延時(shí)的程序在源文件中被‘加注釋’,但作為一個(gè)解決方案實(shí)例被保留在文件中。
另外一個(gè)需要注意事項(xiàng)是開發(fā)板上的MAX5160LEUA數(shù)字電位器,當(dāng)跳線J11短路時(shí),這個(gè)器件連接至電壓比較器的輸入端CMPI,該設(shè)計(jì)為在輸入端加載各種不同的電壓提供了便利。電位器的內(nèi)部電阻鏈的末端H連接至評估板電源VCC5;另一端L連接至地,滑動端W連接至CMPI。數(shù)字電位器的H-L端電阻為50k,阻值比CMPI的高阻輸入(FET輸入)低得多。在本應(yīng)用中,開發(fā)板的短路器J11被去除。數(shù)字電位器沒有與CMPI連接,以充分利用其輸入端的高阻特性。
雖然對本應(yīng)用并不重要,但在實(shí)際工作環(huán)境下,不同類型、品牌的電池在使用時(shí)的限制有很大差異。MAXQ3210的低電池電壓檢測門限設(shè)置在大約7.2V,這個(gè)設(shè)定值適合絕大多數(shù)堿性電池的應(yīng)用。一塊新的9V堿性電池在檢測到低電池電壓后會在一段合理的時(shí)間內(nèi)正常報(bào)警,而有些電池在極端環(huán)境下可能允許的報(bào)警時(shí)間非常短。
對于任何最終投產(chǎn)的產(chǎn)品設(shè)計(jì),都必須考慮、檢驗(yàn)電池類型及外部工作環(huán)境。所提供的應(yīng)用軟件、評估板的揚(yáng)聲器將通過聲控報(bào)警指示電池電量過低,直至電池電量降至系統(tǒng)復(fù)位狀態(tài)。此時(shí),電池將被耗盡,為了繼續(xù)工作就必須更換電池。
測試本應(yīng)用筆記方案時(shí),為了節(jié)省電池功耗,去除了開發(fā)板的電阻R1和R2。這兩個(gè)電阻分別是發(fā)光二極管LED D1和D2的限流電阻,該應(yīng)用不需要LED。
結(jié)論
MAXQ3210微控制器所包含的諸多功能使其不僅適用于化學(xué)檢測器、報(bào)警系統(tǒng)以及白色家電等注重成本的電池供電應(yīng)用,還適用于那些要求高性能、低功耗的應(yīng)用。微控制器內(nèi)部集成的5V至9V穩(wěn)壓器、壓電揚(yáng)聲器驅(qū)動器和模擬比較器使系統(tǒng)元器件數(shù)量最少。另外,當(dāng)系統(tǒng)使用單節(jié)9V電池供電時(shí),系統(tǒng)內(nèi)置8kHz的環(huán)形振蕩器、低電池電壓檢測電路、20位喚醒定時(shí)器和低功耗停機(jī)模式等功能可有效支持系統(tǒng)的低功耗工作,延長系統(tǒng)的工作時(shí)間。