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