概述
微處理器用于大規(guī)模系統(tǒng)設(shè)計(jì)時(shí),通常需要各種外部器件的支持。這些外部器件為微處理器提供多項(xiàng)任務(wù)支持:為微處理器提供滿足電壓、電流需求的穩(wěn)壓電源、監(jiān)控其它電源電壓、提供外部時(shí)鐘、控制上電和斷電順序或執(zhí)行其它任務(wù)。這些外部器件通常稱為微處理器監(jiān)控器,是專為特殊監(jiān)控任務(wù)而設(shè)計(jì)的IC。使用一個(gè)低功耗微控制器可以取代專用的微處理器監(jiān)控電路,支持上述各種任務(wù)。根據(jù)其性能,一個(gè)微控制器可以提供多個(gè)器件所支持的服務(wù),且由于監(jiān)控功能可通過(guò)軟件編程,具有很大的靈活性。
本應(yīng)用筆記介紹了使用帶有壓電揚(yáng)聲器驅(qū)動(dòng)、穩(wěn)壓器和比較器的低功耗微控制器MAXQ3210實(shí)現(xiàn)典型微處理器監(jiān)控功能的方法。MAXQ3210可在單機(jī)配置下實(shí)現(xiàn)各種功能,采用9V電池供電,使用其內(nèi)部低速振蕩器可以省去外部時(shí)鐘電路。MAXQ3210的小封裝尺寸(24引腳TSSOP)使其成為傳統(tǒng)設(shè)計(jì)或其它空間受限產(chǎn)品的理想選擇。
電池供電便攜系統(tǒng)
MAXQ3210內(nèi)置9V至5V轉(zhuǎn)換的線性穩(wěn)壓器,可理想用于便攜式、電池供電的微控制器或微處理器系統(tǒng)。由于MAXQ3210具有低電池電壓檢測(cè),使系統(tǒng)能夠在低電池電壓狀態(tài)下提供智能化管理。配合5V微處理器工作時(shí),只要微處理器所需的供電電流在MAXQ3210線性穩(wěn)壓器的供電范圍內(nèi)(最大值約為50mA,詳細(xì)信息請(qǐng)參見MAXQ3210數(shù)據(jù)資料),MAXQ3210可直接使用其穩(wěn)壓器的輸出引腳REGOUT (圖1)為微處理器供電。當(dāng)微處理器電流非常低時(shí),還可以將MAXQ3210的端口引腳設(shè)置為標(biāo)準(zhǔn)高電平輸出(PD = 1,PO = 1),直接為微處理器供電。每個(gè)端口都能提供至少4mA的電流,壓降小于0.4V。只要所有端口引腳的電流總和不超過(guò)最大額定值(約為25mA,詳細(xì)信息請(qǐng)參見數(shù)據(jù)資料),可將多個(gè)端口引腳連接在一起增強(qiáng)供電電流。使用端口直接為微處理器供電時(shí),MAXQ3210能夠根據(jù)需要接通、關(guān)斷微處理器的電源,從而延長(zhǎng)電池壽命。注意:當(dāng)使用REGOUT為微處理器供電時(shí),電源仍可在MAXQ3210控制下接通、關(guān)斷,但需要一個(gè)外部FET或其它開關(guān)器件。
當(dāng)所支持的微處理器需要的端電壓不是5V (例如3V、2.5V或其它)時(shí),MAXQ3210的REGOUT輸出可通過(guò)線性穩(wěn)壓器產(chǎn)生微處理器所需要的電壓。通過(guò)使用帶有使能/禁止輸入的線性穩(wěn)壓器,MAXQ321仍然能夠完全關(guān)斷微處理器的電源,以延長(zhǎng)電池壽命。
圖1. 使用MAXQ3210為5V微處理器供電的原理圖
設(shè)計(jì)過(guò)程中對(duì)電池壽命和系統(tǒng)總吸入電流要求苛刻時(shí),MAXQ3210可在非常低的電流狀態(tài)下工作,以節(jié)省能量。MAXQ3210不僅具有功能完善的MAXQ?電源管理模式(分頻、PMM1模式和STOP模式),有效節(jié)省能量,還包含了一個(gè)8kHz的振蕩器,可作為一個(gè)極低功耗的時(shí)鐘源使用。上電時(shí),如果沒(méi)有外部晶體或高頻時(shí)鐘源,MAXQ3210將運(yùn)行在8kHz振蕩器,使其工作電流降至微安級(jí)。由于對(duì)響應(yīng)時(shí)間要求并不嚴(yán)格,即使在8kHz下工作時(shí),MAXQ3210仍可實(shí)現(xiàn)本應(yīng)用筆記中的監(jiān)控功能。
復(fù)位和電源監(jiān)控
MAXQ3210提供上電復(fù)位(POR)和欠壓檢測(cè)功能,使其能夠在供電電源穩(wěn)定時(shí)退出復(fù)位狀態(tài)。欠壓檢測(cè)可以使微控制器從電源跌落狀態(tài)下恢復(fù)工作。MAXQ3210還可以為沒(méi)有電源監(jiān)控功能的微處理器提供類似的POR和欠壓檢測(cè)。將MAXQ3210的一個(gè)端口接至微處理器的外部RESET引腳,使MAXQ3210在電源低于門限設(shè)置時(shí)復(fù)位微處理器,并在供電電源恢復(fù)正常時(shí)使微處理器退出復(fù)位狀態(tài)。如果微處理器在5V電源下工作,只要MAXQ3210處于POR或欠壓狀態(tài),MAXQ3210都將使微處理器復(fù)位。如果微處理器工作在更低的電源電壓(例如3.3V),MAXQ3210的模擬比較器能夠?qū)⑽⑻幚砥鞯墓╇婋娫磁cVREF引腳的任意電壓(可達(dá)3.5V)進(jìn)行比較(關(guān)于模擬比較器的詳細(xì)信息,請(qǐng)參考MAXQ3210數(shù)據(jù)資料)。當(dāng)微處理器的供電電源跌落至基準(zhǔn)電壓以下時(shí),比較器將產(chǎn)生中斷給MAXQ3210,使微處理器復(fù)位并在電源恢復(fù)正常以前保持復(fù)位狀態(tài)。
因?yàn)樗泄δ芏际峭ㄟ^(guò)軟件實(shí)現(xiàn)的,所以微處理器從電源恢復(fù)到退出復(fù)位狀態(tài)的時(shí)間間隔可以設(shè)置為任意時(shí)間周期。如果系統(tǒng)有多個(gè)供電電源或需要按照特定順序上電,MAXQ3210可作為上電定時(shí)器,按照每個(gè)動(dòng)作的指定延遲時(shí)間順序控制器件的上電過(guò)程。
給系統(tǒng)增加一個(gè)外部復(fù)位按鍵可初始化復(fù)位順序。將復(fù)位按鈕接至MAXQ3210的一個(gè)端口,使MAXQ3210完成基于軟件的去抖功能,并產(chǎn)生寬度可編程的復(fù)位脈沖,以響應(yīng)一次按鍵復(fù)位。
添加喚醒定時(shí)器
便攜式電池供電系統(tǒng)中,節(jié)省電源及電池壽命是設(shè)計(jì)的關(guān)鍵。為保持低電流耗損,此類系統(tǒng)一般盡可能工作在低功耗狀態(tài)。系統(tǒng)周期性地(或在用戶按鍵請(qǐng)求下)喚醒,進(jìn)行測(cè)量或運(yùn)行其它任務(wù),然后返回休眠狀態(tài)。不工作的器件,最好關(guān)閉其供電電源。MAXQ3210提供一個(gè)長(zhǎng)周期喚醒定時(shí)器,有助于節(jié)省功耗??稍O(shè)定在8kHz環(huán)形振蕩器下工作的喚醒定時(shí)器,使MAXQ3210進(jìn)入低功耗狀態(tài)— 停止模式,并在長(zhǎng)達(dá)2分鐘的預(yù)設(shè)時(shí)間間隔后自動(dòng)喚醒。退出停止模式后,MAXQ3210按需求喚醒或使系統(tǒng)中的其它器件上電。以下MAXQ3210程序代碼演示了如何進(jìn)入停止模式,然后在60秒后自動(dòng)喚醒。
mainLoop: ;; Perform application tasks here... ;; ;; Start the wakeup timer for 60 seconds. move CKCN.6, #1 ; Select ring oscillator mode waitRing: move C, CKCN.5 jump NC, waitRing ; Wait for RGMD=1 (running from ring) move WUT, #30000 ; 1/8kHz * 30000 * 16 = 60 seconds move WUTC, #0101b ; Start the wakeup timer (running from ring) move IV, #wakeUpInt ; Set interrupt handler for wakeup interrupt move IMR.0, #1 ; Enable interrupts from module 0 move IC.0, #1 ; Globally enable interrupts move CKCN.4, #1 ; Go into Stop mode, wait for wakeup int nop jump mainLoop ; Back for another round ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; wakeUpInt: move CKCN.6, #1 ; Select ring oscillator mode wakeUp_ring: move C, CKCN.5 jump NC, wakeUp_ring ; Wait for RGMD=1 (running from ring) move WUTC, #0 ; Clear wakeup timer flag move CKCN.6, #0 ; Select crystal mode wakeUp_xtal: move C, CKCN.5 jump C, wakeUp_xtal ; Wait for RGMD=0 (running from crystal) reti將MAXQ3210的一個(gè)端口連接至微處理器,可通知其作好斷電準(zhǔn)備。MAXQ3210通知斷電后,微處理器根據(jù)執(zhí)行任務(wù)的不同立即進(jìn)入低功耗停止模式或等待斷電。
MAXQ3210從停止模式喚醒時(shí),既可使微處理器上電(如果微處理器完全關(guān)斷),也可使用外部中斷或類似機(jī)制通知微處理器,使其從低功耗狀態(tài)下喚醒。
添加看門狗復(fù)位
與MAXQ3210的喚醒定時(shí)一樣,微控制器的內(nèi)置看門狗復(fù)位電路可以擴(kuò)展為微處理器的一個(gè)外部硬件看門狗復(fù)位電路。MAXQ3210中,看門狗作為一個(gè)安全裝置,防止瞬態(tài)脈沖干擾時(shí)程序運(yùn)行失控。一旦啟動(dòng)看門狗定時(shí)器,必須通過(guò)周期性地置位一個(gè)寄存器位使其復(fù)位。如果MAXQ3210停止置位寄存器位,且定時(shí)器溢出,看門狗將使MAXQ3210自動(dòng)復(fù)位。該自動(dòng)復(fù)位使MAXQ3210恢復(fù)到一個(gè)已知的起始狀態(tài)并重新啟動(dòng)運(yùn)行。將MAXQ3210的看門狗復(fù)位擴(kuò)展給微處理器只需要兩個(gè)連接:將微控制器的一個(gè)端口接至微處理器的外部RESET;將微處理器的一個(gè)端口返回到MAXQ3210端口。MAXQ3210自動(dòng)使能看門狗,只要收到來(lái)自微處理器的信號(hào)就復(fù)位看門狗。微處理器負(fù)責(zé)周期性地觸發(fā)此引腳,防止MAXQ3210的看門狗超時(shí),超時(shí)周期可編程(詳細(xì)信息,請(qǐng)參考MAXQ3210用戶指南補(bǔ)充材料(English only)。)
作為微處理器的外部看門狗,MAXQ3210設(shè)定看門狗超時(shí)情況下觸發(fā)一個(gè)中斷。如果看門狗超時(shí),意味著微處理器未能及時(shí)觸發(fā)微控制器的端口,微控制器需要復(fù)位。MAXQ3210響應(yīng)看門狗中斷,重啟看門狗,通過(guò)外部的RESET引腳復(fù)位微處理器,重新開始一次循環(huán)。
電平和接口
監(jiān)控狀態(tài)下,MAXQ3210與微處理器之間通信時(shí),必須考慮兩個(gè)器件的I/O電平。如果兩個(gè)器件都在5V電壓下工作,端口引腳通??梢灾苯舆B接,請(qǐng)務(wù)必參考器件的數(shù)據(jù)資料。MAXQ3210輸出信號(hào)給低電壓微處理器(例如3.6V的器件)時(shí)也可以直接連接。如果微處理器引腳含有保護(hù)二極管,MAXQ3210的5V輸出可以通過(guò)限流電阻直接連接至低電壓引腳。也可以選擇使用漏極開路連接方法:兩引腳間引出一個(gè)上拉電阻連接至低電壓微處理器的電源,并使MAXQ3210的端口強(qiáng)制下拉(PD = 1,PO = 0)或?yàn)槿龖B(tài)(PD = 0,PO = 0)模式。
由低電壓微處理器引腳驅(qū)動(dòng)的MAXQ3210的輸入時(shí)同樣需要謹(jǐn)慎操作,這是因?yàn)榈碗妷何⑻幚砥鞑荒茯?qū)動(dòng)其端口引腳至足夠高的電平,以使MAXQ3210的寄存器置位。如果僅需要一個(gè)輸入(如圖1),低電壓信號(hào)可以連接到MAXQ3210的模擬比較器。其它可能的方法有,使用帶有漏極開路配置的外部下拉FET,或使用電平轉(zhuǎn)換器,如MAX3370。
關(guān)于此問(wèn)題的更多討論,請(qǐng)參考應(yīng)用筆記3007,邏輯電平轉(zhuǎn)換。
評(píng)論
查看更多