摘要:MAXQ3210是一款高性能、低功耗16位RISC微控制器,非常適合環境監測和報警系統。器件內置5V至9V穩壓器、喚醒定時器、停機模式和環形振蕩器,能夠工作在低功耗模式。集成模擬比較器、壓電揚聲器驅動器和精密電壓基準大大降低了系統元件數量。本應用筆記說明如何使用MAXQ3210構建一個水位監測和音頻報警系統,還提供了完整的匯編程序。
本應用筆記提供了一個利用MAXQ3210微控制器實現水位監測及音頻報警的系統,該系統利用礦物質對水的電導率的影響來檢測水位,并在必要時給出報警信號。本文介紹的方案還不能直接用作最終產品,只是說明有效利用MAXQ3210功能的案例。實例中使用的水位檢測機制并未在極端環境下進行可靠性測試,也沒有對其長期工作的有效性進行評估。本應用筆記提供的只是一個簡單案例,可以對自來水進行有效的監測。
本應用筆記中的程序針對MAXQ3210編寫,并進行了測試,也可以運行在包含類似資源的其它MAXQ?器件,如MAXQ3212。例程開發環境是MAX-IDE 1.0版和MAXQ3210評估板修訂版B版。關于評估套件的詳細信息,請參見MAXQ3210EVKIT。
以下部分說明MAXQ3210的一些功能及在本應用如何有效利用這些功能,并對這些功能的結構、設置進行說明。
圖1. 水監測探頭
圖2. 水監測原理圖
水監測傳感器探頭與處理器的連接原理圖如圖2所示。傳感器一端連接至MAXQ3210的內部模擬比較器輸入端CMPI,P0.5。該輸入還與1.0MΩ電阻相連,電阻的另一端接處理器的端口引腳,P0.6。軟件將P0.6配置為輸出,并在系統初始化部分將其置為高電平。由于比較器具有高輸入阻抗,這種配置在正常條件下使CMPI接近于VCC (例如,傳感器電極沒有浸入水中)。傳感器的另一端連接至端口P0.4,P0.4配置為輸出引腳并置為低電平。當兩個傳感器電極都浸入水中時,水的電導率強行比較器輸入下拉至地。發生這種情況時,比較器輸出CMPO改變。關于模擬比較器及其工作的詳細信息將在本文的后續內容討論。
實際工作環境下,水位變化非常慢。因此,處理器在絕大部分時間內可處于停機模式,只需在較長的時間間隔內喚醒一次簡單的傳感器檢測操作。實例中,選擇一分鐘作為傳感器的采樣周期。該時間間隔既不會錯過報警,也能夠有效利用處理器的停機狀態,充分延長電池的使用壽命。如果這個周期對于特定的應用過長或過短,可將軟件中的喚醒延時常數(WUDel)改為所要求的數值,然后重新編譯程序。以下喚醒定時器周期公式給出了這個時間間隔的計算方式:
當處理器時鐘控制寄存器的STOP位,CKCN.4,置1時,處理器立即進入停機模式。如發生以下任何條件,處理器將退出停機模式:
通過WUT寄存器,處理器及其軟件可訪問20位定時器的前16位,低4位只允許定時器硬件訪問。盡管如此,任何情況下只要軟件對WUT寄存器進行寫操作,其低4位也將清零。喚醒定時器的周期由以式給出:
喚醒定時器周期 = (源時鐘周期) x WUT[19:4] x 16
其中WUT[19:4]是20位定時器的前16位。注意,由于在WUT寄存器沒有包含定時器的低4位,周期數必須乘以16。通過使用這個公式,可看出一般在使用頻率為8kHz的環形振蕩器時,最大喚醒周期大約為131秒。上文中選擇一分鐘為休眠周期,將倒計數值30,000 (07530h)裝載到WUT即可產生一分鐘的休眠時間。假設喚醒定時器對環形振蕩器進行計數。
配置喚醒定時器時需要對定時器控制寄存器進行一次寫操作,將喚醒寄存器(WTE)的使能位WUTC.0置位以使能定時器。同時,喚醒定時器(WTCS)的時鐘選擇位WUTC.2必須置1,定時器才能對處理器的環形振蕩器進行計數。因此,應用程序必須向定時器控制寄存器(WUTC)寫入十六進制數05初始化定時器。喚醒定時器標志(WTF)的WUTC.1位由定時器硬件置位,但必須由中斷服務程序清除,以防止重復響應同一中斷。
CMO = 0當(VREF < CMPI)時
CMO = 1當(VREF > CMPI)時
由此可見,正常狀態下比較器輸出CMPO為0。當水監測傳感器的電極浸入水中時,兩電極之間的導電性將比較器輸入拉至地電位。這種狀態下,基準電壓高于CMPI,比較器輸出CMO變為高電平。由于比較器的高輸入阻抗,正常情況(無報警)下,只有非常小的電流流入比較器輸入端。當水監測傳感器電極浸入水中時,水的電導率和1.0MΩ電阻可以限制傳感器電極之間的電流。
為降低功耗,初始程序將環形振蕩器配置為處理器的系統時鐘。將環形振蕩器選擇(RGSL)位CKCN.6置1實現。將該位置位,而處理器運行在晶體振蕩器時(處于系統初始化階段),時鐘源將立即切換到環形振蕩器,這時沒有4個時鐘周期的延遲。
環形振蕩器的工作頻率設置在8kHz,實際頻率可能因不同器件而變化。頻率還會隨著溫度和電源電壓的變化而變化,因此,如果應用需要精確定時,則需考慮這些變化因素。在本應用中,頻率的精確性并不重要。
由于處理器在停機模式時,晶體振蕩器不工作,本應用中喚醒定時器必須設置為工作在環形振蕩器下(WTCS = WUTC.2 = 1)。系統也可以使處理器工作在晶體振蕩器下,而喚醒定時器則工作在環形振蕩器下。考慮到對喚醒定時器寄存器的讀/寫操作存在時序差異,本文沒有采用這種方法。
另外一個需要注意事項是開發板上的MAX5160LEUA數字電位器,當跳線J11短路時,這個器件連接至電壓比較器的輸入端CMPI,該設計為在輸入端加載各種不同的電壓提供了便利。電位器的內部電阻鏈的末端H連接至評估板電源VCC5;另一端L連接至地,滑動端W連接至CMPI。數字電位器的H-L端電阻為50kΩ,阻值比CMPI的高阻輸入(FET輸入)低得多。在本應用中,開發板的短路器J11被去除。數字電位器沒有與CMPI連接,以充分利用其輸入端的高阻特性。
雖然對本應用并不重要,但在實際工作環境下,不同類型、品牌的電池在使用時的限制有很大差異。MAXQ3210的低電池電壓檢測門限設置在大約7.2V,這個設定值適合絕大多數堿性電池的應用。一塊新的9V堿性電池在檢測到低電池電壓后會在一段合理的時間內正常報警,而有些電池在極端環境下可能允許的報警時間非常短。
對于任何最終投產的產品設計,都必須考慮、檢驗電池類型及外部工作環境。所提供的應用軟件、評估板的揚聲器將通過聲控報警指示電池電量過低,直至電池電量降至系統復位狀態。此時,電池將被耗盡,為了繼續工作就必須更換電池。
測試本應用筆記方案時,為了節省電池功耗,去除了開發板的電阻R1和R2。這兩個電阻分別是發光二極管LED D1和D2的限流電阻,該應用不需要LED。
加入Maxim微控制器討論組http://discuss.dalsemi.com/ (English only),您可以與同行和專家一起討論MAXQ微控制器的使用經驗和應用問題。
概述
MAXQ3210微控制器是一款功能強大的RISC微控制器,器件所具備的功能和特性使其非常適合電池供電的監控和音頻報警系統。微控制器內部集成了5V至9V穩壓器、壓電揚聲器驅動器和模擬比較器,大大降低了系統的元件數量。另外,停機模式、喚醒模式等多種低功耗特性使其在9V電池供電時能有效延長工作時間。本應用筆記提供了一個利用MAXQ3210微控制器實現水位監測及音頻報警的系統,該系統利用礦物質對水的電導率的影響來檢測水位,并在必要時給出報警信號。本文介紹的方案還不能直接用作最終產品,只是說明有效利用MAXQ3210功能的案例。實例中使用的水位檢測機制并未在極端環境下進行可靠性測試,也沒有對其長期工作的有效性進行評估。本應用筆記提供的只是一個簡單案例,可以對自來水進行有效的監測。
本應用筆記中的程序針對MAXQ3210編寫,并進行了測試,也可以運行在包含類似資源的其它MAXQ?器件,如MAXQ3212。例程開發環境是MAX-IDE 1.0版和MAXQ3210評估板修訂版B版。關于評估套件的詳細信息,請參見MAXQ3210EVKIT。
工作原理
本應用筆記將詳細討論MAXQ3210的功能及特性,MAXQ3210的內部比較器允許使用最少外圍器件實現簡單的水位監測系統。通過使用處理器的低功耗休眠模式和喚醒定時器,使電池供電監測報警系統在絕大部分時間處于停機模式,只是周期性地喚醒系統檢測水位,判斷是否發出報警信號。以下部分說明MAXQ3210的一些功能及在本應用如何有效利用這些功能,并對這些功能的結構、設置進行說明。
水監測傳感器探頭
水監測傳感器探頭如圖1所示,如上所述,該傳感器不是針對最終產品設計的。它由一片塑膠材料固定屏蔽夾子形狀的電極。電極之間的距離可以任選或由具體材料決定。傳感器通過一個間距為0.1的4引腳連接器直接連接到MAXQ3210評估板的J4 (引腳9-P0.4、11-P0.5/CMPI和13-P0.6)。1.0MΩ電阻(圖中靠近連接器的導線部分)作為傳感器電極的一個上拉電阻,該電阻直接焊接到連接器的一個引腳。圖1. 水監測探頭
圖2. 水監測原理圖
水監測傳感器探頭與處理器的連接原理圖如圖2所示。傳感器一端連接至MAXQ3210的內部模擬比較器輸入端CMPI,P0.5。該輸入還與1.0MΩ電阻相連,電阻的另一端接處理器的端口引腳,P0.6。軟件將P0.6配置為輸出,并在系統初始化部分將其置為高電平。由于比較器具有高輸入阻抗,這種配置在正常條件下使CMPI接近于VCC (例如,傳感器電極沒有浸入水中)。傳感器的另一端連接至端口P0.4,P0.4配置為輸出引腳并置為低電平。當兩個傳感器電極都浸入水中時,水的電導率強行比較器輸入下拉至地。發生這種情況時,比較器輸出CMPO改變。關于模擬比較器及其工作的詳細信息將在本文的后續內容討論。
停機模式的重要性
除斷電狀態外,停機模式是MAXQ3210的最低功耗模式。停機模式下禁止處理器內部環形振蕩器、喚醒定時器(如果使能)以外的所有電路工作。片上時鐘、定時器和外設電路都將停止工作,程序也會停止運行。一旦進入停機模式,MAXQ3210的絕大部分時間處于靜止狀態,其功耗主要由漏電流決定。結合喚醒定時器使用停機模式,可實現低功耗工作。實際工作環境下,水位變化非常慢。因此,處理器在絕大部分時間內可處于停機模式,只需在較長的時間間隔內喚醒一次簡單的傳感器檢測操作。實例中,選擇一分鐘作為傳感器的采樣周期。該時間間隔既不會錯過報警,也能夠有效利用處理器的停機狀態,充分延長電池的使用壽命。如果這個周期對于特定的應用過長或過短,可將軟件中的喚醒延時常數(WUDel)改為所要求的數值,然后重新編譯程序。以下喚醒定時器周期公式給出了這個時間間隔的計算方式:
當處理器時鐘控制寄存器的STOP位,CKCN.4,置1時,處理器立即進入停機模式。如發生以下任何條件,處理器將退出停機模式:
- P1.1//RESET出現低電平有效復位(如果沒有禁止)
- 上電復位(如果沒有禁止)
- P0.6/INT出現外部中斷(如果使能)
- 喚醒定時器計時到0(如果使能)及中斷被響應
喚醒定時器
MAXQ3210的喚醒定時器是一個20位的定時器,可設置為系統時鐘遞減計數,也可以設置為對處理器內部環形振蕩器計數。應用軟件將初始值裝入喚醒定時器寄存器(WUT),隨后定時器從這個設定值開始遞減計數。當定時器計數值達到0時,休眠周期結束,喚醒定時器控制(WTCN.1)寄存器的中斷標志位(WTF)置位。如果中斷使能,該標志將觸發一次中斷,使處理器退出中斷模式。如果屏蔽中斷,處理器將不退出停機模式。通過WUT寄存器,處理器及其軟件可訪問20位定時器的前16位,低4位只允許定時器硬件訪問。盡管如此,任何情況下只要軟件對WUT寄存器進行寫操作,其低4位也將清零。喚醒定時器的周期由以式給出:
喚醒定時器周期 = (源時鐘周期) x WUT[19:4] x 16
其中WUT[19:4]是20位定時器的前16位。注意,由于在WUT寄存器沒有包含定時器的低4位,周期數必須乘以16。通過使用這個公式,可看出一般在使用頻率為8kHz的環形振蕩器時,最大喚醒周期大約為131秒。上文中選擇一分鐘為休眠周期,將倒計數值30,000 (07530h)裝載到WUT即可產生一分鐘的休眠時間。假設喚醒定時器對環形振蕩器進行計數。
配置喚醒定時器時需要對定時器控制寄存器進行一次寫操作,將喚醒寄存器(WTE)的使能位WUTC.0置位以使能定時器。同時,喚醒定時器(WTCS)的時鐘選擇位WUTC.2必須置1,定時器才能對處理器的環形振蕩器進行計數。因此,應用程序必須向定時器控制寄存器(WUTC)寫入十六進制數05初始化定時器。喚醒定時器標志(WTF)的WUTC.1位由定時器硬件置位,但必須由中斷服務程序清除,以防止重復響應同一中斷。
模擬比較器
MAXQ3210內置1位模數比較器及其2.5V的電壓基準,這些電路是本應用的關鍵。比較器有兩個輸入端,+和-,如圖2所示。比較器輸出是兩個輸入端模擬電壓之差的函數。本應用中,2.5V基準連接至“+”輸入端,“-”輸入端連接至傳感器的一端。如圖所示,“-”輸入端通過一個1.0MΩ電阻由設置為高電平的端口P0.5上拉至高電平。因此,在正常狀態下,“-”輸入端電壓接近于5V,高于“+”輸入端2.5V基準電壓。比較器的極性選擇(CPOL)位CMPC.1在本應用中設置為0。比較器輸出結果CMO如下:CMO = 0當(VREF < CMPI)時
CMO = 1當(VREF > CMPI)時
由此可見,正常狀態下比較器輸出CMPO為0。當水監測傳感器的電極浸入水中時,兩電極之間的導電性將比較器輸入拉至地電位。這種狀態下,基準電壓高于CMPI,比較器輸出CMO變為高電平。由于比較器的高輸入阻抗,正常情況(無報警)下,只有非常小的電流流入比較器輸入端。當水監測傳感器電極浸入水中時,水的電導率和1.0MΩ電阻可以限制傳感器電極之間的電流。
揚聲器驅動
MAXQ3210提供了一個板上3引腳壓電揚聲器驅動接口,該接口可直接驅動壓電揚聲器。3引腳接口的引腳配置如下:- HORNB (揚聲器銅片):這個輸出連接至壓電揚聲器的金屬電極。
- HORNS (揚聲器銀片):這個輸出連接至壓電揚聲器的陶瓷電極。當壓電揚聲器驅動使能時,這個輸出為HORNB提供互補輸出。
- FEED:該輸入引腳連接至壓電揚聲器的反饋電極。
環形振蕩器
MAXQ3210內置一個環形振蕩器,作為系統上電復位或退出停機模式的默認時鐘源。環形振蕩器使能后立即開始振蕩,不象晶體振蕩器至少需要65536個時鐘周期才能達到穩定狀態。從停機模式喚醒時,如果系統延遲65,536個時鐘,在沒有執行指令(例如,沒有任務運行)等待這個周期結束期間將會消耗大量功率。退出停機模式時,使用環形振蕩器可以避免這種功耗。實際上,退出停機模式時,環形振蕩器也需要4個時鐘周期達到穩定狀態,但與晶體振蕩器相比,該時間間隔短得多。為降低功耗,初始程序將環形振蕩器配置為處理器的系統時鐘。將環形振蕩器選擇(RGSL)位CKCN.6置1實現。將該位置位,而處理器運行在晶體振蕩器時(處于系統初始化階段),時鐘源將立即切換到環形振蕩器,這時沒有4個時鐘周期的延遲。
環形振蕩器的工作頻率設置在8kHz,實際頻率可能因不同器件而變化。頻率還會隨著溫度和電源電壓的變化而變化,因此,如果應用需要精確定時,則需考慮這些變化因素。在本應用中,頻率的精確性并不重要。
由于處理器在停機模式時,晶體振蕩器不工作,本應用中喚醒定時器必須設置為工作在環形振蕩器下(WTCS = WUTC.2 = 1)。系統也可以使處理器工作在晶體振蕩器下,而喚醒定時器則工作在環形振蕩器下。考慮到對喚醒定時器寄存器的讀/寫操作存在時序差異,本文沒有采用這種方法。
低電池電壓檢測
MAXQ3210配備了低電池電壓檢測電路,將低電池電壓檢測(LBDE)使能位PWCN.1置1,一旦輸入電源VDD降至低電池電壓門限VBF以下,低電池電壓中斷標志位(LBF) PWCN.3將由處理器的硬件置位。如果中斷使能,該中斷標志位將觸發一次中斷,但該中斷在此應用中沒有使用。每次處理器退出停機模式并檢測水位傳感器時,會檢測一次中斷標志位。如果電池電量過低,揚聲器將每次發出8聲蜂鳴聲,然后停止一分鐘,并如此循環。評估板注意事項
為本應用編寫的程序已在MAXQ3210評估板上進行過測試。在這個開發環境下工作時,需要注意以下事項。第一,需注意處理器工作在環形振蕩器下,通過串口至JTAG板實現與評估板的通信,由處理器調試/JTAG總線完成。JTAG時鐘不能高于處理器時鐘的1/8。如果工作在環形振蕩器的處理器違反這條規定,JTAG接口板將無法與評估板進行通訊。JTAG接口板沒有從評估板上收到恰當信息時,PC機軟件將認為通訊失敗。發生這種情況時,PC機顯示一個錯誤消息,調試器被掛起。在將時鐘源更改為環形振蕩器的程序之前插入一個長延時可以避免這種情況。上電復位時環形振蕩器選擇位RGSL清零。插入這段延時,調試器就有時間在環形振蕩器正常工作之前獲得開發板的控制權。提供延時的程序在源文件中被‘加注釋’,但作為一個解決方案實例被保留在文件中。另外一個需要注意事項是開發板上的MAX5160LEUA數字電位器,當跳線J11短路時,這個器件連接至電壓比較器的輸入端CMPI,該設計為在輸入端加載各種不同的電壓提供了便利。電位器的內部電阻鏈的末端H連接至評估板電源VCC5;另一端L連接至地,滑動端W連接至CMPI。數字電位器的H-L端電阻為50kΩ,阻值比CMPI的高阻輸入(FET輸入)低得多。在本應用中,開發板的短路器J11被去除。數字電位器沒有與CMPI連接,以充分利用其輸入端的高阻特性。
雖然對本應用并不重要,但在實際工作環境下,不同類型、品牌的電池在使用時的限制有很大差異。MAXQ3210的低電池電壓檢測門限設置在大約7.2V,這個設定值適合絕大多數堿性電池的應用。一塊新的9V堿性電池在檢測到低電池電壓后會在一段合理的時間內正常報警,而有些電池在極端環境下可能允許的報警時間非常短。
對于任何最終投產的產品設計,都必須考慮、檢驗電池類型及外部工作環境。所提供的應用軟件、評估板的揚聲器將通過聲控報警指示電池電量過低,直至電池電量降至系統復位狀態。此時,電池將被耗盡,為了繼續工作就必須更換電池。
測試本應用筆記方案時,為了節省電池功耗,去除了開發板的電阻R1和R2。這兩個電阻分別是發光二極管LED D1和D2的限流電阻,該應用不需要LED。
例程
該應用筆記相關的軟件包在an3885_sw.zip中,可從Maxim的ftp網站下載該文件,網址是:ftp://ftp.dalsemi.com/pub/microcontroller/app_note_software/。這個文件包含源碼文件Alarm.asm和MAXQ3210寄存器地址的定義文件maxq3210.inc。.zip文件中還包含了MAX-IDE工程文件Alarm.prj和‘裝載’十六進制文件Alarm.hex。將這些文件單獨放入一個文件夾,軟件就能夠在MAXQ3210評估板上編譯、運行。結論
MAXQ3210微控制器所包含的諸多功能使其不僅適用于化學檢測器、報警系統以及白色家電等注重成本的電池供電應用,還適用于那些要求高性能、低功耗的應用。微控制器內部集成的5V至9V穩壓器、壓電揚聲器驅動器和模擬比較器使系統元器件數量最少。另外,當系統使用單節9V電池供電時,系統內置8kHz的環形振蕩器、低電池電壓檢測電路、20位喚醒定時器和低功耗停機模式等功能可有效支持系統的低功耗工作,延長系統的工作時間。加入Maxim微控制器討論組http://discuss.dalsemi.com/ (English only),您可以與同行和專家一起討論MAXQ微控制器的使用經驗和應用問題。
評論
查看更多