Infineon-PSoC4/6低功耗模式簡介(一)

1、模式匯總
        PSoC 具有 5 種工作功耗模式。按照功耗優化程度和功能的順序,這些模式分別為:活動、睡眠、深度睡眠、休眠和停止模式。表 1 顯示的是每種功耗模式下的典型電流和喚醒時間。

表 1. 功耗模式規範


  ※ 注意:表1 所顯示的數值是典型值。而對於特定條件下的值,請參考器件系列數據手冊。

 不同低功耗模式的差別主要表示在 CPU 和外設的可用性、喚醒和復位源、功耗模式的切換行為以及功耗優化程度等方面。表 2 顯示的是 PSoC 的資源以及它們在不同功耗模式下的可用性。


表 2. 資源在 PSoC 功耗模式下的可用性

                     ① 保持:外設的配置和狀態得到保持。器件進入活動模式時,外設繼續運行。
                     ② 凍結:系統中所有 GPIO 的配置、模式和狀態都被鎖定。無法修改 GPIO 的狀態,直到器件再次進入活動模式,並且引腳被解鎖為止。
                     ③ 一些器件支持被稱為“深度睡眠”的低功耗模式。
                     ④ 進入深度睡眠模式前通過調用組件的_Sleep()函數和通過退出深度睡眠模式後調用_WakeUP()函數來保持基於 UDB 的所有組件的狀態。
                     ⑤ 當 PSoC器件處於休眠狀態時,它會通過復位事件來重新初始化所有組件。


2、低功耗模式的詳細信息
         
PSoC 的四種低功耗模式
            ◆ 活動模式是正常的工作模式。在這種模式下,所有外設都可用,CPU 處於活動狀態。
            ◆ 在睡眠模式下,除 CPU 外,所有外設均可用。
            ◆ 在深度睡眠模式下,將禁用 CPU、大多數外設和 MHz 時鐘。
            ◆ 在休眠模式下,將禁用所有時鐘,但仍保持邏輯狀態。
            ◆ 在停止模式下,將暫停 CPU、時鐘以及所有外設的運行,但仍會保持或凍結 GPIO 的各種狀態。

       2.1睡眠模式
            在睡眠模式下,PSoC 的 ARM® Cortex®-M0/M0+ CPU 不執行指令,會等待中斷髮生。SRAM 得到保持,但是 CPU 不能對它進行讀取或寫入操作。通過 DMA,可以訪問支持 DMA 的部分。另外,其他外設和時鐘都會繼續運行。


       2.1.1 睡眠模式的喚醒源
            可使用器件內的任何中斷源將器件從睡眠模式喚醒。所有外設均可保持活動狀態,並生成中斷。

       2.1.2 睡眠模式的轉換
            通過調用 API 函數 CySysPmSleep(),可以進入睡眠模式。通過該函數,可以將器件配置為睡眠狀態。不需要調用其他 API。當觸發某個中斷時,器件將退出睡眠模式。退出睡眠模式後,PSoC 再次進入活動模式。睡眠喚醒源的配置只需使能它們的中斷即可。

       2.1.3 睡眠模式使用情況
            當 ADC、CapSense®、數字通信等外設或其他資源需要保持活動狀態,但不要求 CPU 活動時,應該使用睡眠模式。這樣可以降低 ADC 轉換和數字通信傳輸操作等事件中所消耗的電流。

       2.2 深度睡眠模式
            在深度睡眠模式下,高頻率時鐘和需要高頻率時鐘的外設都被禁用。高頻時鐘包括:內部主振盪器(IMO)、外部晶體振盪器(ECO),以及鎖相環(PLL)。請注意,ECO 和 PLL 不適用於所有 PSoC 器件。內部低速度振盪器(ILO)時鐘仍保持活動狀態,並能為看門狗定時器(可用作睡眠定時器來將系統從深度睡眠模式喚醒)提供時鐘脈衝。一些 PSoC 器件還帶有監視晶振(WCO),該晶振可在深度睡眠模式下工作。I2C 模塊可以繼續作為從設備工作,以監控 I2C 總線,從而允許在 I2C 地址匹配時喚醒器件。

       2.2.1 深度睡眠模式喚醒源
            I2C 地址匹配、看門狗定時器、GPIO 中斷、CTB/CTBm 比較器中斷以及低功耗比較器中斷均能將器件從深度睡眠喚醒。看門狗定時器模塊包含了可被單獨配置以生成中斷、復位或兩者的多個定時器。這樣 WDT 便能夠作為睡眠定時器使用。

       2.2.2 深度睡眠模式的轉換
            通過調用 CySysPmDeepSleep() API 函數,可以進入深度睡眠模式。通過該函數,可將器件配置為深度睡眠模式。如果您不想關閉可在深度睡眠模式下工作的組件,從而節省功耗和/或保持其當前狀態的話,那麼便不需要調用其他任何  API 函數。在該情況下,從深度睡眠模式喚醒後,調用 CySysPmDeepSleep()和_WakeUp()前,要使用組件的指定 API _Sleep()來保持組件的當前狀態。喚醒後,在進入深度睡眠模式和調用_Start()函數前,可根據您的應用加快調用_Stop()函數。
            當觸發中斷時,器件將退出深度睡眠模式。退出深度睡眠模式後, PSoC 4 將再次進入活動模式。睡眠喚醒源的配置只需要使能它們的中斷即可。

       2.2.3 深 度睡 眠模式 的使用 情況
            如果不需要使用 PSoC 的高性能模擬和數字外設,但仍需要通過看門狗定時器或 I2C 地址匹配事件來定期喚醒器件,那麼應採用深度睡眠模式。通過常規喚醒間隔,可以定期使用處於活動模式的外設,例如:使用 ADC 來讀取數據或掃描 CapSense 按鍵輸入。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論