通常說來,SoC相對于傳統(tǒng)MCU而言能支持更多低功耗模式。其原因在于SoC集成度高,有更多片上組件和多種電源配置,以支持不同的工作需求。電源模式的數(shù)量與每種模式下的可用資源根據(jù)器件會有所不同。舉例來說,在某種低功耗模式下,某個器件能在僅保持寄存器和RAM內容的情況下給所有其它組件斷電,而另一種器件則只是給CPU斷電,而讓其它資源繼續(xù)運行。不同制造商會對這些模式采取不同的命名方法。在本文中,我們將以賽普拉斯的PSoC 4器件為例來詳細介紹各種電源模式。
以下電源模式也得到其它制造商的大多數(shù)設備的支持:
●工作模式
●休眠模式
●深度休眠模式
●冬眠模式
●停止模式
下面我們來看看這些電源模式的具體情況:
1.工作模式:在此模式下,CPU和所有片上其它資源都正常工作運行。該模式是系統(tǒng)整體功耗的最主要組成部分。在此模式下,如果不使用的話,可將芯片上的各種外設分別斷電。
2.休眠:這是控制器另一種常見的電源模式。該模式主要與CPU有關。當CPU進入休眠狀態(tài)后,其時鐘移除。CPU這時對總功耗的唯一影響就是靜態(tài)功耗,因為這時已經(jīng)沒有時鐘開關切換工作,也就不會有動態(tài)功耗。ADC和比較器等其它外設在此模式下可用。
3. 深度休眠:此電源模式下即便是系統(tǒng)時鐘也被禁用,所以在此模式下所有高頻資源都不可用。不過,這些資源的當前狀態(tài)不受影響,也就是說CPU寄存器、 SRAM等的當前狀態(tài)不受影響。由于高頻時鐘被禁用,因此能節(jié)約開關消耗的功率。通常情況下,深度休眠模式提供低頻時鐘運行的選項,低頻時鐘可用來驅動定時器等低頻資源。此外,該模式也允許開發(fā)人員使用I2C從設備等通信協(xié)議塊,其無需器件自身生成時鐘。由于進入此模式的主要方法就是禁用系統(tǒng)主時鐘,因此這是可以實現(xiàn)的。然而,模塊仍然可通電。該模式對功耗的影響主要在于片上所有時鐘的靜態(tài)功耗。
4.冬眠:在此模式下,所有時鐘都關閉,包括低速振蕩器。片上所有資源,除了用于外部事件觸發(fā)喚醒的資源以外全都斷電。由于本模式下幾乎所有組件都斷電,因此該模式能減少靜態(tài)和動態(tài)功耗組件,從而實現(xiàn)最低功耗。
5.停止:顧名思義,停止模式就是所有外設斷電,即使是RAM和CPU寄存器的內容也不保持。在PSoC 4等類似器件中,這種模式下僅保持IO引腳的狀態(tài)。從這種模式下喚醒會進入芯片重啟動。
當分析一款應用的功耗時,必須查看所有電源模式下的功耗情況。
必須明確某種模式下能提供喚醒源。舉例來說,需要某種中斷才能從休眠模式喚醒,在冬眠模式下則需要I2C地址匹配中斷以喚醒器件。需要了解每種模式下有哪些資源工作,能提供什么喚醒資源。舉例來說,系統(tǒng)中可用比較器中斷作為喚醒源,在超出設定閾值情況下可用模擬輸入喚醒系統(tǒng)。就圖1所示的應用而言,喚醒需要采用GPIO中斷或者甚至硬復位,因為RTC會隨時運行,而且控制器不需要保持此前的狀態(tài)。
冬眠和停止模式下,功耗可低至100nA。對于RTC本身而言,您會很容易找到功耗很低的RTC(僅消耗100-200nA)。假設控制器直接驅動LCD,我們可認為LCD的關閉狀態(tài)功耗為零。
這就使得圖1所示系統(tǒng)中的平均功耗在300nA的范圍內。如果我們假設設計方案采用CR2032作為電源,電池容量約為225mAh。就300nA的電流來說,電池僅在器件始終處于斷電模式下能支持70到80年的工作。
每次按下按鍵,控制器都會喚醒。這會將控制器的功耗提升到500μA-1mA的范圍。假設功耗為1mA左右,控制器從RTC獲取數(shù)據(jù)并顯示在LCD 上。控制器執(zhí)行這項工作只需很短的時間,但顯示屏要保持較長工作時間(假設說顯示屏亮起10秒鐘確保用戶看到數(shù)據(jù))。作為直接驅動LCD,控制器必須保持較長的工作時間,也就是要消耗更多電荷。在此情況下,賽普拉斯的PSoC4等器件可提供低功耗模式,能讓設備關閉所有其它外設,僅運行驅動LCD所需的模塊。在這種器件中,LCD驅動運行在特定的低功耗模式下,這種模式被稱為數(shù)字關聯(lián)模式。其結果就是大幅減少電流消耗。
圖2:各種狀態(tài)下的電流消耗
每次按鍵都會經(jīng)歷如圖2所示的電流曲線。曲線下方區(qū)域是單次按鍵的典型功耗。消耗的電荷計算如下:
Q = (1mA*1ms) + (20μA*10s)
根據(jù)上面的數(shù)據(jù),我們可計算出給定電源能支持多少次按鍵。
工作模式下所花的時長非常重要,因為這種模式下耗電最大。一個選項是讓MCU保持工作模式,但CPU時鐘速度較低,從而降低工作模式下的耗電。不過,這會導致更高的平均功耗,因為工作模式所花的時間取決于時鐘頻率。此時由于MCU必須處于工作模式,因此功耗取決于MCU處理數(shù)據(jù)所花的時間。更快速的 MCU能很快完成任務,從而延長處于低功耗模式下的時間,也就能讓系統(tǒng)減少功耗。系統(tǒng)設計人員可根據(jù)系統(tǒng)要求明確最佳配置。
在本系列文章的下一部分,我們將以更大型系統(tǒng)為例作講解,并介紹如何降低平均功耗。此外,我們還將探討一些降低平均功耗的系統(tǒng)級技巧。