本應(yīng)用筆記討論了采用微控制器的電池備份系統(tǒng)的功耗。大多數(shù)Maxim高速微控制器,包括DS87C520、DS89C450、DS80C400和DS5250,都采用多種電源管理方法。本應(yīng)用筆記探討了電源管理方法,如停止模式、空閑模式、最佳時(shí)鐘頻率和外設(shè)等。包含的示例代碼旨在突出顯示專門(mén)設(shè)計(jì)在這些微控制器中的新功能,以最大限度地降低功耗。
概述
電源管理在電池供電應(yīng)用中至關(guān)重要。微安的差異可以轉(zhuǎn)化為數(shù)月或數(shù)年的使用壽命,這可以決定市場(chǎng)上產(chǎn)品的成敗。Maxim微控制器的高集成度使其成為要求低功耗的便攜式或電池供電應(yīng)用的理想選擇。通過(guò)將處理器和外設(shè)組合到單個(gè)芯片上,消除了冗余硬件,并實(shí)現(xiàn)了節(jié)能。此外,高速微控制器系列中設(shè)計(jì)的電源管理功能進(jìn)一步降低了功耗。
影響微控制器功耗的最大因素是時(shí)鐘頻率。微處理器消耗的功率與其運(yùn)行速度成正比,因此以盡可能低的頻率運(yùn)行的器件將產(chǎn)生最大的節(jié)能效果。選擇的速度取決于系統(tǒng)要求,最明顯的是中斷服務(wù)時(shí)間。溫度也會(huì)影響功耗。半導(dǎo)體器件在較低溫度下消耗更大的功率。如果正在開(kāi)發(fā)的系統(tǒng)設(shè)計(jì)用于低溫,設(shè)計(jì)人員應(yīng)期望高于典型功耗值。系統(tǒng)設(shè)計(jì)也直接影響功耗,驅(qū)動(dòng)較大的外部負(fù)載會(huì)增加功耗。
本應(yīng)用筆記涵蓋了高速微控制器系列的大多數(shù)成員。解釋了它們的電源管理特性,并介紹了將功耗降至最低的技術(shù)。由于電源管理功能與許多外設(shè)功能(尤其是中斷和串行功能)結(jié)合使用,因此敦促用戶在開(kāi)始本節(jié)之前熟悉處理器的整體操作。本應(yīng)用筆記隨附的軟件示例可下載。
所有新的電源管理功能均可在不犧牲吞吐量或?qū)ν獠渴录捻憫?yīng)能力的情況下降低功耗。此系列的成員可能包含下面列出的一個(gè)或多個(gè)功能:
動(dòng)態(tài)時(shí)鐘速度控制
高速微控制器支持四種時(shí)鐘管理模式:停止、PMM1(電源管理模式 1)、PMM2(電源管理模式 2)和空閑。它們可以在這些模式之間動(dòng)態(tài)切換,允許用戶優(yōu)化器件的速度,同時(shí)最大限度地降低功耗。停止模式已比標(biāo)準(zhǔn) 8051 功能得到改進(jìn),現(xiàn)在支持從外部中斷恢復(fù)以及復(fù)位源。
折返
這些器件具有自動(dòng)“切換”功能,允許在電源管理模式 (PMM) 下運(yùn)行的設(shè)備在收到外部中斷或串行端口傳輸時(shí)切換到“高速檔”。這使處于省電模式的設(shè)備能夠快速響應(yīng)外部事件和/或操作其串行端口。沒(méi)有回切功能的傳統(tǒng)基于 8051 的設(shè)備無(wú)法快速處理中斷,而無(wú)需持續(xù)高速運(yùn)行設(shè)備和更高的功耗。
可選時(shí)鐘源
晶體振蕩器是任何微控制器的大量功耗,尤其是在低功耗工作期間。環(huán)形振蕩器用于從停止模式快速啟動(dòng),也可用于在正常工作期間提供大約 3 至 4MHz 的時(shí)鐘源。雖然上電時(shí)仍需要晶體振蕩器,但一旦晶體穩(wěn)定下來(lái),器件操作就可以切換到環(huán)形振蕩器,從而實(shí)現(xiàn)高達(dá)25 mA的節(jié)能。
帶隙基準(zhǔn)禁用
該選項(xiàng)可用于禁用帶隙基準(zhǔn),該基準(zhǔn)用于在停止模式下檢測(cè)電源故障。停止模式電流可以極大地使用此功能。
增強(qiáng)的狀態(tài)報(bào)告
雖然動(dòng)態(tài)切換內(nèi)部時(shí)鐘速度的能力是一個(gè)好處,但如果在錯(cuò)誤的時(shí)間執(zhí)行,它會(huì)嚴(yán)重干擾時(shí)序相關(guān)功能的運(yùn)行。狀態(tài)寄存器(狀態(tài);C5h),包含有關(guān)串行端口、晶體振蕩器以及高優(yōu)先級(jí)、低優(yōu)先級(jí)和電源故障中斷的狀態(tài)信息。該軟件可以根據(jù)此寄存器中的信息延遲或取消計(jì)劃的速度變化。
時(shí)鐘速度控制
描述
微控制器的工作頻率是決定功耗的最大因素。高速微控制器系列微控制器支持四種時(shí)鐘速度管理模式,通過(guò)減慢或停止內(nèi)部時(shí)鐘來(lái)節(jié)省功耗。這些模式使系統(tǒng)設(shè)計(jì)人員能夠以對(duì)性能影響最小的方式最大限度地節(jié)省功耗。
聚甲醛
電源管理模式 1 (PMM1) 允許用戶以較低的速度運(yùn)行以節(jié)省功耗。設(shè)置時(shí)鐘分頻器速率位 (PMR.7-6) 將強(qiáng)制器件從默認(rèn)的每機(jī)器周期 4 個(gè)時(shí)鐘(除以 4)變?yōu)槊總€(gè)機(jī)器周期 64 個(gè)時(shí)鐘(除以 64)。外部晶體繼續(xù)全速運(yùn)行。所有外圍設(shè)備和指令都將以這種降低的速度運(yùn)行。微控制器可以通過(guò)設(shè)置適當(dāng)?shù)臅r(shí)鐘分頻器速率位或利用回切功能來(lái)恢復(fù)4分頻操作。
聚甲醛
電源管理模式 2 (PMM2) 允許用戶以更慢的速度運(yùn)行,以提高節(jié)能效果。設(shè)置時(shí)鐘分頻器速率位 (PMR.7-6) 將強(qiáng)制器件從默認(rèn)的每機(jī)器周期 4 個(gè)時(shí)鐘(除以 4)變?yōu)槊總€(gè)機(jī)器周期 1024 個(gè)時(shí)鐘(除以 1024)。外部晶體繼續(xù)全速運(yùn)行。所有外圍設(shè)備和指令都將以這種降低的速度運(yùn)行。微控制器可以通過(guò)設(shè)置適當(dāng)?shù)臅r(shí)鐘分頻器速率位或利用回切功能來(lái)恢復(fù)全速(4分頻)操作。與 PMM1 相比,此模式可實(shí)現(xiàn)更大的節(jié)能效果。
停止模式
停止模式是可用的最低功耗狀態(tài)。它通過(guò)設(shè)置停止位 (PCON.1) 來(lái)啟動(dòng)。在此模式下,晶體振蕩器停止,所有內(nèi)部時(shí)鐘(包括看門(mén)狗定時(shí)器)停止。實(shí)時(shí)時(shí)鐘不受停止模式的影響。停止模式通過(guò)外部中斷、實(shí)時(shí)時(shí)鐘中斷、通過(guò)RST引腳的外部復(fù)位或上電復(fù)位退出。每次中斷都會(huì)導(dǎo)致設(shè)備向量到相應(yīng)的中斷例程以恢復(fù)執(zhí)行。
微控制器集成了一個(gè)環(huán)形振蕩器,允許從停止模式快速恢復(fù)。這為器件啟動(dòng)工作提供了一個(gè)瞬時(shí)可用的 4MHz 時(shí)鐘源。它可以工作到晶體穩(wěn)定或繼續(xù)用作時(shí)鐘源。環(huán)形振蕩器的穩(wěn)定性不如外部時(shí)鐘高,并且器件在環(huán)形振蕩器工作時(shí)不應(yīng)執(zhí)行需要高精度或串行端口數(shù)據(jù)傳輸?shù)亩〞r(shí)測(cè)量。有關(guān)使用環(huán)形振蕩器的更多信息,請(qǐng)參閱本文檔的時(shí)鐘源代碼控制部分。
空閑模式
空閑模式停止微控制器處理器內(nèi)核的運(yùn)行,但保持內(nèi)部時(shí)鐘、串行端口和定時(shí)器運(yùn)行。此模式通過(guò)設(shè)置 IDL 位 (PCON.0) 來(lái)調(diào)用,并可通過(guò)中斷或通過(guò) RST 引腳進(jìn)行外部復(fù)位退出。不建議在新設(shè)計(jì)中使用此模式,因?yàn)橥ㄟ^(guò)將器件放置在PMM2中并執(zhí)行NOP可以實(shí)現(xiàn)低功耗操作。它的包含提供了向后軟件兼容性。
電源管理模式
最大的節(jié)能來(lái)自使用電源管理模式。與其他技術(shù)不同,電源管理模式 1 和 2(PMM1 和 PMM2)允許用戶在不犧牲性能的情況下降低功耗。雖然電源管理功能是高能效設(shè)計(jì)的重要組成部分,但對(duì)微處理器的透徹了解將使系統(tǒng)設(shè)計(jì)人員能夠?qū)崿F(xiàn)最大的節(jié)能效果。
時(shí)鐘速度管理模式旨在根據(jù)外部活動(dòng)和性能需求逐步降低功耗。PMM1 和 PMM2 提供最低的功耗水平,同時(shí)仍允許完全計(jì)算和外設(shè)操作。圖1顯示了時(shí)鐘管理模式的進(jìn)展情況。如下文所述,PMM1 和 PMM2 之間的轉(zhuǎn)換必須通過(guò) 4 分頻模式進(jìn)行。
?
圖1.時(shí)鐘速度模式的進(jìn)展。
進(jìn)入和退出電源管理模式
軟件使用電源管理寄存器 (PMR) 中的位調(diào)用所需的電源管理模式。停止模式通過(guò)設(shè)置 STOP 位 (PCON.1) 來(lái)調(diào)用。器件速度由時(shí)鐘分頻器速率位 CD1、CD0 (PMR.7-6) 選擇,如下所示。
CD1CD0機(jī)器循環(huán)率
00保留
014 個(gè)時(shí)鐘(默認(rèn))
1064 個(gè)時(shí)鐘 (PMM1)
111024 個(gè)時(shí)鐘 (PMM2)
PMM1 和 PMM2 可通過(guò)配置時(shí)鐘分頻器速率位 CD1、CD0 或開(kāi)關(guān)功能退出。進(jìn)入或退出任一 PMM 只能通過(guò)除以 4 模式。例如,要從 PMM1(除以 64)到 PMM2(除以 1024)模式,需要先從 PMM1 切換到除以 4 模式,然后再?gòu)某?4 切換到 PMM2。執(zhí)行非法速度更改的嘗試將被忽略,位將保持不變。軟件有責(zé)任使用狀態(tài)寄存器(狀態(tài);C5h),然后再嘗試改變速度。在異步串行端口操作期間更改速度將破壞串行傳輸。
當(dāng)PMM被調(diào)用時(shí),外部晶體將繼續(xù)全速運(yùn)行,微控制器仍將在每個(gè)機(jī)器周期執(zhí)行四個(gè)內(nèi)部狀態(tài)。在PMM中,器件執(zhí)行外部時(shí)鐘的內(nèi)部分頻,PMM16為1(16×4 = 64)或PMM256(2×256 = 4)為1024,以達(dá)到所需的頻率,而不是每條指令實(shí)際執(zhí)行64或256個(gè)內(nèi)部狀態(tài)。例如,在 C2 期間發(fā)生的操作仍將這樣做。大多數(shù)應(yīng)用程序不會(huì)發(fā)現(xiàn)有必要關(guān)注這么多細(xì)節(jié),但提供了用于計(jì)算關(guān)鍵時(shí)序的信息。
?
圖2.PMM1 中的內(nèi)部 timimg 關(guān)系。
請(qǐng)注意,手動(dòng)或通過(guò)回切更改時(shí)鐘除數(shù)不會(huì)影響定時(shí)訪問(wèn)過(guò)程。定時(shí)訪問(wèn)與機(jī)器內(nèi)部周期相關(guān),而不是絕對(duì)時(shí)間參考。
定時(shí)器和PMM
定時(shí)器 0、1 和 2 將默認(rèn)上電,每個(gè)定時(shí)器時(shí)鐘周期為 12 個(gè)外部時(shí)鐘,以保持與原始 8051/8032 規(guī)范兼容。通過(guò)在時(shí)鐘控制寄存器 (CKCON;4Eh) 中設(shè)置相關(guān)位,可將定時(shí)器單獨(dú)配置為在器件以每分頻 8 分頻模式運(yùn)行時(shí),以每定時(shí)器時(shí)鐘周期 0 個(gè)外部時(shí)鐘的速率運(yùn)行。在PMM期間,定時(shí)器1、2和《》以相應(yīng)降低的時(shí)鐘速率運(yùn)行,因?yàn)槎〞r(shí)器從內(nèi)部時(shí)鐘派生其時(shí)基。這也將影響PMM中串行端口的操作,因?yàn)?/p>
CD1CD0OSC。每個(gè)機(jī)器周期的循環(huán)數(shù)每個(gè)計(jì)時(shí)器的 OSC 周期數(shù) 0/1/2 時(shí)鐘每個(gè)定時(shí)器2時(shí)鐘的OSC周期,波特率生成每個(gè)串行端口的 OSC 周期 時(shí)鐘模式 0OSC。每個(gè)串行端口的周期數(shù) 時(shí)鐘模式 2
TxM=1TxM=0T2M=1T2M=0SM2=0SM2=1SMOD=0SMOD=1
00保留
014124221246432
1064(下午1)192643232192641024512
111024 (PMM2)307210245125123072102416,3848192
看門(mén)狗定時(shí)器與內(nèi)部時(shí)鐘的時(shí)基相同;即,如果設(shè)備處于PMM1,則看門(mén)狗也將以64分頻模式運(yùn)行。這使看門(mén)狗定時(shí)器在PMM和4分頻模式之間切換時(shí)與處理器的操作保持同步。如果使用 PMM,使用看門(mén)狗定時(shí)器作為附加定時(shí)器的應(yīng)用程序應(yīng)考慮到這一點(diǎn)。
實(shí)時(shí)時(shí)鐘與 PMM 設(shè)置無(wú)關(guān)。它使用外部32 kHz晶體作為參考,可以在任何模式下訪問(wèn)。
手動(dòng)退出 PMM
除了回切功能外,還可以通過(guò)配置時(shí)鐘分頻器速率位來(lái)手動(dòng)退出PMM。進(jìn)入或退出任一PMM只能通過(guò)除以4模式,并且嘗試執(zhí)行非法速度更改將被忽略,位將保持不變。如果與計(jì)時(shí)相關(guān)的操作可能正在進(jìn)行中,則狀態(tài)寄存器 (STATUS;C5h)在切換或切換到PMM之前應(yīng)進(jìn)行詢問(wèn)以確定是否已完成。
在 PMM 中重置靈敏度
在PMM中,用于檢測(cè)外部復(fù)位脈沖的方法與在分頻4模式下使用的方法不同。在除以 4 模式(和標(biāo)準(zhǔn) 8051 架構(gòu))中,復(fù)位必須為高電平才能檢測(cè)到兩個(gè)機(jī)器周期。如果在 PMM 中為真,則必須在至少 128 或 2048 個(gè)時(shí)鐘周期內(nèi)置位復(fù)位。為了避免這種情況,在PMM中運(yùn)行的設(shè)備采用正邊緣檢測(cè)傳感器,而不是單機(jī)周期鑒定來(lái)檢測(cè)復(fù)位信號(hào)。這意味著使用PMM的設(shè)備更容易受到噪聲的影響,因此必須格外小心以保持復(fù)位信號(hào)無(wú)噪聲。
回切功能
回切功能允許用戶在事件發(fā)生時(shí)將微控制器快速恢復(fù)到更高的速度。啟用后,合格事件會(huì)導(dǎo)致器件自動(dòng)從除以 64 (PMM1) 或除以 1024 (PMM2) 切換到除以 4 操作,而無(wú)需軟件干預(yù)。這允許器件以最小的延遲響應(yīng)高優(yōu)先級(jí)或中斷驅(qū)動(dòng)的事件。以下源可以觸發(fā)回切:
外部中斷 0/1/2/3/4/5
檢測(cè)到串行起始位,串行端口 0/1
發(fā)送緩沖器已加載,串行端口 0/1
看門(mén)狗定時(shí)器復(fù)位
上電復(fù)位
外部復(fù)位
由于PMM、回切、外部中斷、定時(shí)器/計(jì)數(shù)器和串行端口之間存在密切關(guān)系,強(qiáng)烈建議系統(tǒng)設(shè)計(jì)人員在嘗試使用回切功能之前熟悉這些功能。
狀態(tài)寄存器
A 狀態(tài)寄存器(狀態(tài);添加了 C5h),以幫助軟件確定速度變化是否合適。狀態(tài)寄存器提供有關(guān)串行端口以及高優(yōu)先級(jí)、低優(yōu)先級(jí)和電源故障中斷的狀態(tài)信息,使器件能夠確定是否應(yīng)將器件切換到PMM。
當(dāng)使用回切功能退出或進(jìn)入PMM時(shí),狀態(tài)寄存器的優(yōu)勢(shì)變得顯而易見(jiàn)。在 PMM 中執(zhí)行中斷服務(wù)例程的設(shè)備不會(huì)執(zhí)行切換以響應(yīng)相同或更低優(yōu)先級(jí)的中斷。狀態(tài)寄存器可用于測(cè)試正在進(jìn)行的中斷服務(wù)例程,并且可以推遲進(jìn)入 PMM 直到完成,或采取其他操作過(guò)程。
啟用/啟動(dòng)回切
通過(guò)設(shè)置 SWB 位 (PMR.5) 啟用自動(dòng)切換回來(lái)。當(dāng)發(fā)生合格的折返事件時(shí),器件將退出任一 PMM,并返回到每個(gè)機(jī)器周期 4 個(gè)時(shí)鐘的默認(rèn)操作模式。清除SWB位將禁用外部中斷和串行端口導(dǎo)致將來(lái)切換的能力,但不會(huì)影響當(dāng)前速度。外部中斷導(dǎo)致回切必須滿足五個(gè)條件:
設(shè)備當(dāng)前必須位于 PMM1 或 PMM2 中。
必須設(shè)置 SWB 位 (PMR.5)。
必須通過(guò)設(shè)置 EA 位 (IE.7) 來(lái)啟用全局中斷。
必須啟用特定中斷。
特定中斷發(fā)生并得到確認(rèn)。
通過(guò)串行端口的回切略有不同。通常,回切是由中斷引起的。對(duì)于串行端口,這會(huì)帶來(lái)一個(gè)問(wèn)題,因?yàn)樗鼈儍H在接收或傳輸完整字時(shí)生成中斷。為了使串行端口以標(biāo)準(zhǔn)波特率正確接收或傳輸單詞,它必須全速運(yùn)行。如果微控制器在PMM中工作,它將永遠(yuǎn)不會(huì)完成接收以啟動(dòng)中斷或相應(yīng)的切換。
微控制器通過(guò)在接收到RX引腳上的下降沿(而不是接收器中斷)時(shí)啟動(dòng)回切(如果使能)來(lái)解決此問(wèn)題。這會(huì)在下一個(gè)內(nèi)部機(jī)器周期及時(shí)將設(shè)備切換回全速,以捕獲起始位和傳輸?shù)钠溆嗖糠帧U?qǐng)注意,串行端口啟動(dòng)回切的能力不依賴于使能串行端口中斷位(IE.4 或 IE.6),僅取決于特定的接收器使能位(SCON0.4 或 SCON1.4)。串行端口接收必須滿足四個(gè)條件才能導(dǎo)致回切:
設(shè)備當(dāng)前必須位于 PMM1 或 PMM2 中。
必須設(shè)置 SWB 位 (PMR.5)。
必須通過(guò)設(shè)置特定的接收器使能位(SCON0.4 或
SCON1.4)。
在特定 RX 引腳上檢測(cè)到下降沿。
回切功能還可與傳輸功能配合使用。如果滿足適當(dāng)?shù)臈l件,當(dāng)串行端口緩沖器(SBUF4;0h 或 SBUF99;C1h) 已加載。這樣用戶就無(wú)需在啟動(dòng)傳輸之前手動(dòng)將速度設(shè)置為除以 1。發(fā)射器中斷可用于在傳輸完成時(shí)發(fā)出信號(hào),以便軟件可以將設(shè)備返回到相應(yīng)的PMM。串行端口傳輸必須滿足三個(gè)條件才能導(dǎo)致回切:
設(shè)備當(dāng)前必須位于 PMM1 或 PMM2 中。
必須設(shè)置 SWB 位 (PMR.5)。
串行端口傳輸必須通過(guò)加載特定的串行端口緩沖區(qū)(SBUF0;99h 或 SBUF1;C1h)。
雖然串行端口發(fā)射和接收功能在PMM中都是可能的,但在這些模式下,不可能將波特率發(fā)生器配置為任何標(biāo)準(zhǔn)速率(300、1200、2400等),因此無(wú)法與標(biāo)準(zhǔn)外設(shè)通信。如果要在設(shè)計(jì)中使用串行端動(dòng)和PMM,強(qiáng)烈建議使用回切功能。
使用折返時(shí)的注意事項(xiàng)
折返時(shí)序
使用折返過(guò)程時(shí)的主要考慮因素之一是將設(shè)備從 PMM 恢復(fù)到全速所需的時(shí)間。這是計(jì)算與服務(wù)中斷相關(guān)的延遲的一個(gè)因素?;厍袑⒃趩?dòng)回切事件后第一條指令的 C1 周期發(fā)生。如果當(dāng)前正在進(jìn)行的指令是寫(xiě)入 IE、IP、EIP 或 EIE 寄存器,則中斷處理將延遲到以下指令完成。圖3顯示了雙周期指令期間中斷和回切之間的時(shí)序關(guān)系。
?
圖3.中斷驅(qū)動(dòng)的回切。
筆記:
PMM16 的內(nèi)部時(shí)鐘周期為 1 個(gè)外部時(shí)鐘周期,PMM256 的內(nèi)部時(shí)鐘周期為 2 個(gè)外部時(shí)鐘周期。
中斷的極性隨外部中斷數(shù)而變化。
示例顯示雙周期指令。中斷和回切的執(zhí)行將在確認(rèn)中斷的指令的最后一個(gè)機(jī)器周期結(jié)束時(shí)進(jìn)行。
上述時(shí)序關(guān)系的一個(gè)例外是,在啟用的串行端口接收器上收到下降沿后,串行端口回切將立即發(fā)生?;厍袑⒃谙陆笛刂蟮南乱粋€(gè)內(nèi)部時(shí)鐘周期開(kāi)始時(shí)發(fā)生。圖 4 顯示了串行端動(dòng)和回切之間的時(shí)序關(guān)系。
?
圖4.串行保護(hù)驅(qū)動(dòng)回切。
筆記:
PMM16 的內(nèi)部 Cx 周期為 1 個(gè)外部時(shí)鐘周期,PMM256 的內(nèi)部 Cx 周期為 2 個(gè)外部時(shí)鐘周期。
SPRA0 和 SPRA1 將在下降沿 RX 的 1 個(gè)機(jī)器周期內(nèi)發(fā)生變化。
示例顯示單周期指令。中斷和回切的執(zhí)行將在確認(rèn)中斷的指令的最后一個(gè)機(jī)器周期結(jié)束時(shí)進(jìn)行。
中斷優(yōu)先級(jí)
由于回切功能使用中斷來(lái)限定執(zhí)行,因此它受到中斷優(yōu)先級(jí)的影響。外部中斷在中斷服務(wù)例程啟動(dòng)時(shí)啟動(dòng)切換。如果正在進(jìn)行更高優(yōu)先級(jí)的中斷,則關(guān)聯(lián)的回切將保持掛起狀態(tài)。除非啟用或禁用特定中斷,否則無(wú)法為單個(gè)中斷源啟用或禁用回切功能。
以下示例將說(shuō)明如果不考慮中斷源的優(yōu)先級(jí),如何出現(xiàn)問(wèn)題。假設(shè)用戶在使用PMM的設(shè)計(jì)中同時(shí)使用定時(shí)器0和外部中斷1。在 PMM 中運(yùn)行時(shí),會(huì)發(fā)生計(jì)時(shí)器 0 中斷,設(shè)備開(kāi)始執(zhí)行中斷服務(wù)例程 (ISR)。在計(jì)時(shí)器 0 ISR 期間,發(fā)生外部中斷 1,發(fā)出需要快速處理的外部事件的信號(hào)。由于兩個(gè)中斷具有相同的優(yōu)先級(jí),因此外部中斷 1 將保持掛起狀態(tài),直到計(jì)時(shí)器 0 ISR 完成。盡管此類中斷優(yōu)先級(jí)在任何設(shè)計(jì)中都是正常考慮因素,但PMM中降低的運(yùn)行速度將進(jìn)一步增加與維護(hù)外部中斷1相關(guān)的延遲。通過(guò)將外部中斷 1 指定為高優(yōu)先級(jí)中斷并將計(jì)時(shí)器 0 保留為低優(yōu)先級(jí)中斷,可以避免這種情況。
串行端口啟動(dòng)的回切不使用中斷結(jié)構(gòu),因此不受中斷優(yōu)先級(jí)的影響。串行端口啟動(dòng)的回切通過(guò)特定的接收器使能位(SCON0.4或SCON1.4)啟用或禁用。串行端口啟動(dòng)回切的能力不依賴于啟用串行端口中斷位(IE.4 或 IE.6)。
串行端動(dòng)和 PMM
由于PMM的功能是改變微控制器的內(nèi)部時(shí)鐘頻率,因此串行端口等時(shí)序相關(guān)的外設(shè)可能會(huì)受到影響。用戶必須確保在切換到PMM時(shí)串行端口未接收或傳輸。最簡(jiǎn)單的方法是詢問(wèn)狀態(tài)寄存器 (STATUS.3-0) 中的串行端動(dòng)位。
在接收操作期間,起始位的下降沿將激活回切(如果已啟用)。將設(shè)置串行端動(dòng)監(jiān)視器位,然后串行端口將檢查有效的起始位。如果接收到起始位,串行接收將正常繼續(xù),并在接收到整個(gè)字時(shí)生成中斷(如果啟用)。為了最大限度地降低功耗,如果在除以 4 模式下不需要進(jìn)一步處理,則可以在串行端口中斷服務(wù)例程開(kāi)始時(shí)再次啟用 PMM。
可能會(huì)遇到由嘈雜的串行端口引起的“虛假”回切。在RX引腳上的第一個(gè)下降沿啟動(dòng)回切,并開(kāi)始尋找有效的起始位。如果未收到有效的起始位,系統(tǒng)將中止串行活動(dòng),清除活動(dòng)位,并且不會(huì)執(zhí)行串行端口中斷。但是,回切已經(jīng)啟動(dòng),設(shè)備現(xiàn)在正在全速運(yùn)行。要將器件返回到PMM,用戶需要手動(dòng)重置時(shí)鐘速率分頻器位。
圖 5 中所示的代碼片段說(shuō)明了一種可能測(cè)試,用于無(wú)效返回除以 4 模式。此測(cè)試可以插入到主代碼循環(huán)中,在該循環(huán)中將定期執(zhí)行,也可以成為計(jì)時(shí)器中斷例程的一部分。如果沒(méi)有中斷或串行端口處于活動(dòng)狀態(tài),則設(shè)備可能應(yīng)處于 PMM,而不是被 4 分頻模式。此代碼應(yīng)根據(jù)特定配置進(jìn)行自定義,即,如果應(yīng)該在低優(yōu)先級(jí)中斷中允許PMM,則在測(cè)試狀態(tài)寄存器時(shí)屏蔽該位。
?
圖5.無(wú)效的折返測(cè)試示例。
PMM 中的多處理器通信
如果使用多處理器通信協(xié)議,PMM 和回切功能的有效性將受到影響。微控制器包括支持同一串行端口上的多個(gè)處理器的功能。在串行端口模式 2 和 3 中,可以使用 SM2 標(biāo)志(SCON0.5 或 SCON1.5)來(lái)表示接收的字節(jié)是地址。從地址識(shí)別寄存器(SADDR0;A9h, 薩德1;AAh, SADEN0;B9h, SADEN1;BAh)可以編程為在接收的地址與用戶定義的模式不匹配時(shí)忽略傳輸(不導(dǎo)致接收器中斷)。
用于電源管理的多處理器通信的含義是,回切是通過(guò)檢測(cè)串行端口上的第一個(gè)下降沿而不是生成有效中斷來(lái)生成的。因此,應(yīng)被特定處理器忽略的無(wú)效地址仍將生成回切。通常,該部件可以在串行端口中斷服務(wù)例程開(kāi)始時(shí)返回到PMM。不幸的是,在上述情況下,不會(huì)生成中斷。為了緩解這個(gè)問(wèn)題,應(yīng)避免將多處理器通信方案與PMM結(jié)合使用。如果系統(tǒng)功耗考慮允許偶爾出現(xiàn)錯(cuò)誤的回切,則可以使用圖5所示的輪詢方案將器件放回PMM。
時(shí)鐘源控制
通過(guò)控制系統(tǒng)時(shí)鐘的來(lái)源,系統(tǒng)設(shè)計(jì)人員可以同時(shí)實(shí)現(xiàn)更高的性能和更低的功耗。為了提供最大的靈活性,微控制器將采用三個(gè)時(shí)鐘源工作:
外部晶體(使用內(nèi)部晶體振蕩器)
內(nèi)部環(huán)形振蕩器
外部晶體
最常見(jiàn)的時(shí)鐘源是外部晶體。微控制器集成了一個(gè)晶體放大器,設(shè)計(jì)用于在器件的工作范圍內(nèi)驅(qū)動(dòng)行業(yè)標(biāo)準(zhǔn)晶體。外部晶體為與時(shí)序相關(guān)的外設(shè)(如內(nèi)部定時(shí)器和串行端口)以及器件操作提供高精度時(shí)鐘源。微控制器需要一個(gè)基波模式、并聯(lián)諧振(也稱為反諧振)AT切割晶體。然而,晶體振蕩器的啟動(dòng)時(shí)間很長(zhǎng),這可能會(huì)在上電或從停止模式恢復(fù)時(shí)延遲器件的運(yùn)行。微控制器必須在上電復(fù)位后使用外部晶振或外部時(shí)鐘源開(kāi)始工作。
外部時(shí)鐘源
如果系統(tǒng)中已經(jīng)存在時(shí)鐘振蕩器,則可以將其用作外部時(shí)鐘源。外部時(shí)鐘振蕩器具有與內(nèi)部晶體振蕩器相同的啟動(dòng)延遲,并且沒(méi)有任何特殊優(yōu)勢(shì)。外部晶振或外部時(shí)鐘源可用于在上電復(fù)位或電源失效復(fù)位后為器件提供時(shí)鐘。
環(huán)形振蕩器
環(huán)形振蕩器是微控制器內(nèi)部的低功耗數(shù)字振蕩器。它可以用作主系統(tǒng)時(shí)鐘,而不是外部晶體或時(shí)鐘振蕩器,除非在上電復(fù)位后立即使用。啟用后,它為器件操作提供一個(gè) 4MHz 時(shí)鐘源。這通常比系統(tǒng)時(shí)鐘的頻率低,這提供了顯著的節(jié)能效果。一旦器件切換到環(huán)形振蕩器作為時(shí)鐘源,就可以禁用外部晶體放大器,從而進(jìn)一步降低功耗。
此外,環(huán)形振蕩器消除了與晶體振蕩器相關(guān)的延遲,并提供從停止模式幾乎瞬時(shí)的啟動(dòng)。當(dāng)用于從停止模式重新啟動(dòng)時(shí),環(huán)形振蕩器將至少工作 65,536 個(gè)時(shí)鐘周期,此時(shí)它可以自動(dòng)切換到外部晶體或繼續(xù)從環(huán)形振蕩器運(yùn)行。但是,環(huán)形振蕩器不能用于從上電狀態(tài)為器件提供時(shí)鐘。由于環(huán)形振蕩器的穩(wěn)定性不如外部時(shí)鐘高,因此在使用環(huán)形振蕩器作為時(shí)鐘源時(shí),不應(yīng)執(zhí)行定時(shí)測(cè)量或串行端口數(shù)據(jù)傳輸。
環(huán)形振蕩器在只需要零星突發(fā)處理的應(yīng)用中具有廣泛的適用性。這樣的系統(tǒng)偶爾會(huì)從停止模式喚醒,執(zhí)行一些活動(dòng),然后返回到停止模式。環(huán)形振蕩器允許系統(tǒng)從最低功耗狀態(tài)快速切換,執(zhí)行操作,然后返回到低功耗狀態(tài),而無(wú)需重新啟動(dòng)停止的外部晶體。圖6顯示了在有和沒(méi)有環(huán)形振蕩器的情況下從停止模式重新啟動(dòng)的優(yōu)勢(shì)。
?
圖6.環(huán)形振蕩器的優(yōu)點(diǎn)。
關(guān)系圖假定 Stop 之后的操作需要不到 18 毫秒才能完成。
與晶體放大器相比,由于環(huán)形振蕩電流降低,從而進(jìn)一步節(jié)省功耗。
即使在恢復(fù)停止模式后不久需要時(shí)序相關(guān)功能,環(huán)形振蕩器也可能是有益的。通常,與定時(shí)例程或串行端口傳輸一起需要進(jìn)行一些處理。在執(zhí)行 Stop 命令之前,器件應(yīng)切換到晶體作為時(shí)鐘源并設(shè)置 RGSL 位。從 Stop 恢復(fù)后,器件可以在從環(huán)形振蕩器運(yùn)行時(shí)執(zhí)行代碼,為時(shí)序相關(guān)操作做準(zhǔn)備。然后,器件可以環(huán)路,直到RGMD位被清除,表明晶體或外部時(shí)鐘源現(xiàn)在是時(shí)鐘源,并且可以開(kāi)始與時(shí)序相關(guān)的操作。
時(shí)鐘控制位
位名位置功能重置寫(xiě)入權(quán)限
XT/ “RG-bar”EXIF.3晶體/環(huán)形時(shí)鐘源 選擇 0 = 選擇環(huán)形振蕩器作為時(shí)鐘源 1 = 選擇
晶體或外部時(shí)鐘作為時(shí)鐘源
10 隨時(shí);當(dāng) XTUP= 1 且 XTOFF= 1 時(shí)為 0
RGMDEXIF.2環(huán)形振蕩器模式狀態(tài)。
0 = 晶體或外部時(shí)鐘是當(dāng)前時(shí)鐘源。
1 = 環(huán)形振蕩器是當(dāng)前時(shí)鐘源。0沒(méi)有
格格斯?fàn)朎XIF.1環(huán)形振蕩器選擇,停止模式。
0 = 恢復(fù)停止模式時(shí),晶體或外部時(shí)鐘將是時(shí)鐘源。
1 = 從停止模式
恢復(fù)時(shí),環(huán)形振蕩器將成為時(shí)鐘源 注意:晶體預(yù)熱期結(jié)束后,設(shè)備將切換到由 XT/“RG-bar”位指定的時(shí)鐘源。除通電復(fù)位后清除為 0 外,保持不變。無(wú)限制的
西托夫PMR.3晶體振蕩器禁用。
0 = 晶體振蕩器已啟用。
1 = 晶體振蕩器被禁用。設(shè)備由環(huán)形振蕩器工作。00 隨時(shí);1 當(dāng) XT/ “RG 條形”= 0
西圖普狀態(tài).4晶體振蕩器預(yù)熱狀態(tài)。
0 = 振蕩器預(yù)熱仍在進(jìn)行中。
1 = 振蕩器預(yù)熱完成。1沒(méi)有
晶體振蕩器啟動(dòng)延遲
當(dāng)晶體振蕩器在一段時(shí)間不工作后通電時(shí),需要很短的時(shí)間才能使脈沖的幅度足以提供穩(wěn)定的時(shí)鐘源。這可能導(dǎo)致時(shí)鐘信號(hào)丟失或損壞,從而可能中斷處理器操作。為了確保有效的時(shí)鐘信號(hào),晶體啟動(dòng)計(jì)數(shù)器在允許器件恢復(fù)工作之前檢測(cè)外部晶體或時(shí)鐘振蕩器的65,536次振蕩。這意味著使用較慢晶體的器件將具有更長(zhǎng)的晶體啟動(dòng)時(shí)間。晶體啟動(dòng)計(jì)數(shù)器比內(nèi)部時(shí)鐘電路更敏感,并且使用壞脈沖和好脈沖的計(jì)數(shù)來(lái)確定預(yù)熱周期。選擇計(jì)數(shù)器值以使大多數(shù)晶體有足夠的時(shí)間穩(wěn)定,然后再釋放器件以從外部晶體流出。只要清除 XTOFF 位,計(jì)數(shù)器就會(huì)復(fù)位。
晶體啟動(dòng)計(jì)數(shù)器的狀態(tài)可以通過(guò)讀取晶體振蕩器預(yù)熱狀態(tài)位 XTUP (STATUS.4) 來(lái)確定。請(qǐng)注意,此位將始終在上電復(fù)位時(shí)設(shè)置,因?yàn)橛?jì)數(shù)器必須超時(shí)才能使器件恢復(fù)運(yùn)行。出于同樣的原因,當(dāng)從停止模式恢復(fù)時(shí),XT/“RG-bar”位設(shè)置為 1 時(shí),也將設(shè)置此位。當(dāng)從環(huán)形振蕩器切換到晶體振蕩器時(shí),XTUP位可用于判斷晶體何時(shí)穩(wěn)定。在設(shè)置 XTUP 位之前切換到外部晶體的嘗試將被忽略。
在時(shí)鐘源之間切換
有時(shí),器件可能希望在環(huán)形振蕩器和晶體振蕩器之間切換。該器件可以隨時(shí)切換到環(huán)形振蕩器,因?yàn)榄h(huán)形振蕩器沒(méi)有啟動(dòng)延遲。清除晶體振蕩器/環(huán)形振蕩器選擇位,XT/“RG 條”(EXIF.3) 將啟用環(huán)形振蕩器。如果預(yù)計(jì)不會(huì)很快需要晶體振蕩器,則可以通過(guò)設(shè)置晶體振蕩器禁用位 XTOFF (PMR.3) 來(lái)禁用晶體振蕩器。這將提供顯著的節(jié)能。請(qǐng)注意,清除XT/“RG-bar”位不會(huì)自動(dòng)禁用晶體放大器。
由于外部晶體固有的啟動(dòng)延遲,將時(shí)鐘源從環(huán)形振蕩器切換到晶體振蕩器更為復(fù)雜。程序如下:
清除晶體振蕩器禁用位 XTOFF (PMR.3) 以重新啟動(dòng)晶體振蕩器。
等待晶體振蕩器預(yù)熱狀態(tài)位 XTUP (STATUS.4) 設(shè)置完畢,表示外部晶體預(yù)熱周期完成。
設(shè)置晶體振蕩器/環(huán)形振蕩器 選擇位 XT/RG (EXIF.3) 以選擇晶體作為時(shí)鐘源。
復(fù)位后的時(shí)鐘源
上電復(fù)位后,RGSL 位被清除,XT/“RG 條”位被設(shè)置。這迫使器件從外部晶振或外部時(shí)鐘源工作,而不管事件發(fā)生前的時(shí)鐘源如何。晶體啟動(dòng)計(jì)數(shù)器將被重置并開(kāi)始倒計(jì)時(shí),讓晶體在恢復(fù)運(yùn)行之前有時(shí)間穩(wěn)定下來(lái)。
在外部(硬件)和看門(mén)狗復(fù)位的情況下,XT/“RG-bar”位將保持不變。這允許器件從復(fù)位事件之前處于活動(dòng)狀態(tài)的同一時(shí)鐘源繼續(xù)。無(wú)論 XT/“RG-bar” 位的狀態(tài)如何,XTOFF 位在任何復(fù)位后都會(huì)被清除,從而開(kāi)始晶體振蕩器預(yù)熱。如果不使用晶體,則相應(yīng)的復(fù)位例程應(yīng)設(shè)置 XTOFF 位以禁用晶體振蕩器以節(jié)省功耗。
停止后的時(shí)鐘源
在停止模式下,內(nèi)部時(shí)鐘停止。在收到外部中斷或復(fù)位后,器件將在進(jìn)入停止模式之前使用 XTOFF、XT/“RG-bar” 和 RGSL 位的狀態(tài)來(lái)確定環(huán)形振蕩器和晶體放大器的狀態(tài)??赡艿呐渲萌绫?4 所示。
XT/ “RG-bar”西托夫格格斯?fàn)柾顺鐾V鼓J綍r(shí)的時(shí)鐘源晶體預(yù)熱期后的時(shí)鐘源恢復(fù)時(shí)啟動(dòng)延遲?晶體振蕩器狀態(tài)
00x環(huán)形振蕩器環(huán)形振蕩器不啟用
01x環(huán)形振蕩器環(huán)形振蕩器不56540
100晶體振蕩器晶體振蕩器是的啟用
101環(huán)形振蕩器晶體振蕩器不啟用
如果進(jìn)入停止模式之前的時(shí)鐘源是環(huán)形振蕩器,則器件將使用環(huán)形振蕩器恢復(fù)運(yùn)行,并在晶體預(yù)熱期后繼續(xù)從環(huán)形振蕩器運(yùn)行。如果器件從晶體振蕩器運(yùn)行進(jìn)入停止模式,則從停止模式恢復(fù)時(shí),環(huán)形振蕩器選擇、停止模式位、RGSL (EXIF.1) 確定時(shí)鐘源。晶體預(yù)熱期結(jié)束后,器件可以繼續(xù)從環(huán)形振蕩器工作,也可以切換到外部晶體或時(shí)鐘源。這是由進(jìn)入停止模式之前 XT/“RG-bar”位的狀態(tài)決定的。
應(yīng)該注意的是,如果在進(jìn)入停止模式之前設(shè)置了XT/“RG-bar”位,晶體放大器將自動(dòng)開(kāi)始其預(yù)熱期。如果器件從外部晶體或外部振蕩器運(yùn)行,或者如果它從環(huán)形振蕩器運(yùn)行,但晶體放大器仍在運(yùn)行,則會(huì)發(fā)生這種情況。(雖然這不是一個(gè)合乎邏輯的選擇,但這在理論上是可能的。然而,當(dāng)從環(huán)形振蕩器恢復(fù)并打算繼續(xù)從環(huán)形振蕩器恢復(fù)時(shí),不需要啟動(dòng)晶體預(yù)熱過(guò)程。為防止晶體預(yù)熱,請(qǐng)確保器件由環(huán)形振蕩器工作,并且在進(jìn)入停止模式之前設(shè)置了 XTOFF 位。
環(huán)形振蕩器對(duì)于從停止模式恢復(fù)后需要短時(shí)間處理的系統(tǒng)特別有用。從環(huán)操作允許系統(tǒng)喚醒,執(zhí)行短時(shí)間操作,并在更短的時(shí)間內(nèi)返回停止模式,這是外部晶體穩(wěn)定所需的時(shí)間。這提供了兩倍的節(jié)能:由于環(huán)形振蕩器的快速啟動(dòng),停止模式的超時(shí)時(shí)間減少,并且環(huán)形振蕩器本身通常比晶體放大器使用更少的功率。
環(huán)形振蕩器注意事項(xiàng)
高速微控制器系列中使用的環(huán)形振蕩器本質(zhì)上是具有傳播延遲的逆變器鏈。雖然它表現(xiàn)出快速啟動(dòng)時(shí)間,但它不具有壓電石英晶體振蕩器的穩(wěn)定性。環(huán)形振蕩器將在為器件指定的溫度和電壓范圍內(nèi)振蕩 3 至 4MHz。這種變化使得很難為計(jì)時(shí)器和時(shí)序敏感型操作生成穩(wěn)定的時(shí)基。由于主系統(tǒng)時(shí)鐘的變化,中斷延遲也將更難計(jì)算。
從環(huán)形振蕩器運(yùn)行時(shí),不建議以異步模式(模式 1、2 或 3)操作串行端口。串行端口使用內(nèi)部定時(shí)器來(lái)生成其波特率,并且產(chǎn)生的頻率不夠穩(wěn)定,無(wú)法支持異步串行傳輸。但是,由于主機(jī)處理器生成的同步時(shí)鐘,模式 0 下的同步串行傳輸是可能的。
環(huán)形振蕩器的使用不會(huì)損害實(shí)時(shí)時(shí)鐘、看門(mén)狗定時(shí)器或定時(shí)接入操作的操作。DS87C530內(nèi)置的實(shí)時(shí)時(shí)鐘由外部32 kHz晶體激勵(lì),該晶體與系統(tǒng)時(shí)鐘無(wú)關(guān)??撮T(mén)狗定時(shí)器和定時(shí)訪問(wèn)過(guò)程都與內(nèi)部時(shí)鐘周期有關(guān),而不是絕對(duì)時(shí)間參考,并且將正常工作。如果看門(mén)狗定時(shí)器需要絕對(duì)時(shí)間段,則建議使用外部時(shí)鐘源。
執(zhí)行“環(huán)形振蕩器回切”
回切功能允許器件在 PMM1 或 PMM2 中工作時(shí)“喚醒”以進(jìn)行串行端口操作。盡管無(wú)論時(shí)鐘源如何,器件都將執(zhí)行回切,但器件必須采用晶體或外部時(shí)鐘源工作,串行操作才能成功。在大多數(shù)情況下,如果預(yù)期串行端口操作,這將排除使用環(huán)形振蕩器或停止模式。但是,在收到串行傳輸時(shí),可以從環(huán)形振蕩器“折返”到晶體。
在串行傳輸?shù)那闆r下,環(huán)形振蕩器幾乎沒(méi)有問(wèn)題;系統(tǒng)可以簡(jiǎn)單地啟用晶體振蕩器,等待晶體穩(wěn)定,然后開(kāi)始傳輸。連續(xù)接待更加困難。由環(huán)形振蕩器工作的微控制器不可能在第一次嘗試時(shí)成功捕獲串行數(shù)據(jù)傳輸。一種可能的解決方案是采用握手協(xié)議來(lái)確認(rèn)接收器已準(zhǔn)備就緒,并且應(yīng)重新發(fā)送數(shù)據(jù)。這種方案的關(guān)鍵是檢測(cè)已嘗試串行操作并執(zhí)行一段將切換到晶體源的代碼。
推薦的方法利用外部中斷作為串行端動(dòng)監(jiān)視器。如果負(fù)邊沿觸發(fā)中斷(如 /INTO、/INT1、/INT3 或 /INT5)連接到 RX 引腳,則起始位的下降沿將產(chǎn)生中斷和回切。中斷服務(wù)例程將啟用晶體時(shí)鐘源并等待其穩(wěn)定,此時(shí)設(shè)備會(huì)將就緒信號(hào)傳輸回發(fā)起方。下面的代碼示例演示執(zhí)行此操作的一種方法。
此外,當(dāng)從環(huán)形振蕩器運(yùn)行時(shí)保持晶體放大器使能,可以避免與重新啟動(dòng)晶體相關(guān)的延遲。乍一看,這似乎適得其反,因?yàn)榕c單獨(dú)使用環(huán)形振蕩器相比,它略微增加了功耗。然而,當(dāng)使用相對(duì)高速的晶體操作器件時(shí),環(huán)形振蕩器速度的降低仍可節(jié)省凈功耗。
開(kāi)發(fā)電源管理框架
Maxim的電源管理方法允許系統(tǒng)設(shè)計(jì)人員在保持最佳性能的同時(shí)降低功耗。為了最大限度地節(jié)省成本,應(yīng)仔細(xì)分析器件工作條件并制定電源管理方案。
確定使用哪些電源管理模式、何時(shí)切換模式以及如何處理高優(yōu)先級(jí)任務(wù)取決于應(yīng)用程序。沒(méi)有一種方法適合所有可能的組合。通常,時(shí)鐘速度和源的選擇取決于分配的任務(wù),以及對(duì)與時(shí)序相關(guān)的操作(如串行端動(dòng))的需求。
采用電源管理的基本系統(tǒng)類別有兩種。第一種是休眠或幾乎所有運(yùn)行時(shí)間都處于待機(jī)狀態(tài)的系統(tǒng),例如停止或 PMM2。這些系統(tǒng)通常用于無(wú)人值守系統(tǒng)以收集數(shù)據(jù)或用作環(huán)境監(jiān)測(cè)器。它們的特點(diǎn)是在特定時(shí)間間隔內(nèi)相對(duì)不頻繁的 I/O 活動(dòng)。第二類系統(tǒng)通常在多個(gè)設(shè)備上執(zhí)行高速率的 I/O 活動(dòng),否則必須持續(xù)運(yùn)行。在這種情況下,休眠方法是不切實(shí)際的,因?yàn)樵O(shè)備將花費(fèi)大部分時(shí)間簡(jiǎn)單地從低功耗狀態(tài)重新啟動(dòng)。以下各節(jié)將更詳細(xì)地討論這兩種方法。
突發(fā)模式操作
一種常見(jiàn)的操作模式是讓設(shè)備在低功耗狀態(tài)下運(yùn)行,執(zhí)行簡(jiǎn)短的任務(wù),然后將設(shè)備放回低功耗狀態(tài),直到發(fā)生另一個(gè)事件。鍵盤(pán)操作或讀卡器活動(dòng)等操作屬于此類別。此類外設(shè)通常產(chǎn)生外部中斷,該中斷執(zhí)行切換或從停止模式恢復(fù)。
關(guān)于將什么指定為待機(jī)狀態(tài)的決定取決于將啟動(dòng)返回到活動(dòng)狀態(tài)的活動(dòng)類型。如果預(yù)期串行端動(dòng),則待機(jī)狀態(tài)必須是可以接收串行數(shù)據(jù)的狀態(tài),例如 PMM2??梢匀萑梯^長(zhǎng)中斷延遲的系統(tǒng)可以使用停止模式作為低功耗狀態(tài)。
對(duì)各種模式下功耗的檢查表明,當(dāng)使用突發(fā)模式方法時(shí),以除以4模式而不是PMM工作可以獲得最大的節(jié)能效果。 除以4模式的性能是PMM16的1倍,但消耗的電流僅為PMM4的4倍。除以 《》 模式的更高功率/性能比意味著子程序期間消耗的總能量更少。因此,從停止模式喚醒以執(zhí)行短時(shí)間活動(dòng)突發(fā)然后返回到停止的例程應(yīng)在除以 《》 模式下執(zhí)行此操作。
程序示例:遠(yuǎn)程數(shù)據(jù)記錄儀
以下程序說(shuō)明了運(yùn)行遠(yuǎn)程電池供電數(shù)據(jù)記錄設(shè)備的通用方案,該設(shè)備只需要偶爾使用。在本例中,DS87C530在停止模式下“休眠”,直到按下鍵盤(pán)并執(zhí)行某些操作。執(zhí)行操作后,設(shè)備將返回停止模式。該器件在大部分喚醒狀態(tài)下脫離環(huán)形振蕩器,除非預(yù)期或正在進(jìn)行串行傳輸。周期性地,實(shí)時(shí)時(shí)鐘中斷將導(dǎo)致器件從外部源獲取數(shù)據(jù),將其記錄在片內(nèi)SRAM中,然后返回停止模式。圖 7 顯示了設(shè)備工作原理的狀態(tài)圖。雖然本例使用DS87C530的內(nèi)部實(shí)時(shí)時(shí)鐘,但可以很容易地修改它,使其與PMM2中的內(nèi)部定時(shí)器或外部實(shí)時(shí)時(shí)鐘配合使用。
?
圖7.遠(yuǎn)程數(shù)據(jù)記錄儀示例狀態(tài)圖。
漸進(jìn)關(guān)斷
通常,設(shè)備需要在活動(dòng)很少的期間持續(xù)運(yùn)行。這可能是監(jiān)視系統(tǒng)狀態(tài)或?qū)﹃P(guān)鍵事件進(jìn)行計(jì)時(shí)。雖然這樣的系統(tǒng)可以容忍一些性能下降以節(jié)省電源,但它不能通過(guò)使用停止模式停止操作。電源管理模式允許軟件根據(jù)任務(wù)的數(shù)量和類型逐漸降低系統(tǒng)性能。此方法類似于個(gè)人計(jì)算機(jī)使用的方法,其中指定時(shí)間段不活動(dòng)將導(dǎo)致系統(tǒng)將其速度降低到下一個(gè)較低的性能級(jí)別。
何時(shí)切換模式以及切換哪些模式取決于用戶的應(yīng)用程序。構(gòu)建“電源路徑”是確定合適的速度和時(shí)鐘源的最簡(jiǎn)單方法。對(duì)于相對(duì)簡(jiǎn)單的系統(tǒng),只需要幾個(gè)狀態(tài)。電源管理模式 PMM1 和 PMM2 專門(mén)設(shè)計(jì)用于逐步降低功耗。
圖8顯示了電源管理功能可能出現(xiàn)的多種電源路徑。圖8a顯示了一個(gè)相對(duì)復(fù)雜的方案,該方案逐漸降低工作速度,同時(shí)保持時(shí)鐘振蕩器盡可能長(zhǎng)時(shí)間地工作以執(zhí)行與時(shí)序相關(guān)的功能。圖8b切換到環(huán)形振蕩器并逐漸降低器件的速度,但保持晶體放大器使能,以防器件需要快速響應(yīng)串行端動(dòng)。圖8c通過(guò)切換到環(huán)形振蕩器并禁用晶體放大器提供了最低功耗。
?
圖8.電源路徑示例。
程序示例:系統(tǒng)監(jiān)視器
以下程序說(shuō)明了操作持續(xù)監(jiān)視系統(tǒng)狀態(tài)的設(shè)備的基本方案。它的操作類似于個(gè)人計(jì)算機(jī)管理其電源的方式;如果在指定的時(shí)間段內(nèi)未檢測(cè)到任何活動(dòng),它將切換到下一個(gè)低功耗模式。
該程序監(jiān)視端口 1 上的外設(shè),并根據(jù)需要更新映射到外部存儲(chǔ)器的顯示器。監(jiān)視程序計(jì)時(shí)器用于輪詢系統(tǒng)的狀態(tài),由 F0 標(biāo)志指示。如果在計(jì)時(shí)器超時(shí)之前沒(méi)有活動(dòng),設(shè)備將繼續(xù)降低其速度。由于看門(mén)狗定時(shí)器周期受設(shè)備速度的影響,因此調(diào)整看門(mén)狗分頻比以保持盡可能恒定的間隔。所演示的方法還可用于檢測(cè)由串行端口噪聲引起的雜散回切,并將器件返回到PMM。
帶隙禁用
用于檢測(cè)電源故障的帶隙基準(zhǔn)電壓源消耗約150 μA電流。在停止模式下,這可能是消耗的總電流的可觀量。微控制器支持禁用帶隙基準(zhǔn)電壓源的選項(xiàng),從而消除了相關(guān)的電流消耗。禁用后,設(shè)備將無(wú)法生成電源故障中斷或電源故障重置。設(shè)備將繼續(xù)運(yùn)行,直到 V抄送低于 VRST,此時(shí)設(shè)備將停止運(yùn)行。如果沒(méi)有帶隙基準(zhǔn),器件無(wú)法檢測(cè)即將發(fā)生的功率損耗或執(zhí)行有序關(guān)斷。當(dāng)電源恢復(fù)時(shí),設(shè)備將執(zhí)行開(kāi)機(jī)復(fù)位。
設(shè)置帶隙選擇位,BGS (EXIF.0) 可在停止模式下啟用帶隙參考。默認(rèn)或復(fù)位條件為清除位,并在停止模式下禁用帶隙。請(qǐng)注意,此位只能使用定時(shí)訪問(wèn)寫(xiě)入來(lái)更改。在全功率、PMM 或空閑模式下,它無(wú)法控制基準(zhǔn)電壓源。
審核編輯:郭婷
評(píng)論
查看更多