低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊電源管理和低功耗優化,隨著物聯網產品的廣泛應用,人們在日常生活中可以看到越來越多的物聯網產品,如智能手表、智能插座、智能燈泡、智能音箱等。在這些各種各樣的物聯網產品中,一些物聯網設備,由于使用電池供電或者能耗認證要求等原因,不得不考慮降低物聯網設備的功耗。例如,在美國加利福尼亞州的能耗認證CEC Tile20規范中,要求智能燈泡的設備待機功耗不能高于0.2W。智能手表在使用電池供電的同時也希望有更長的工作時間。低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊在這類的物聯網產品的開發過程中,開發者就需要在產品開發時將功耗作為重要的考慮因素,要盡大可能利用芯片的特性并結合應用邏輯來降低產品的整體功耗。這需要開發者十分了解所用芯片的功耗特性,并能在實際的物聯網工程中熟練使用相關的芯片。這就要求在開發過程中,在通信協議方面,低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊必須使用功耗更低的無線通信技術,如 Bluetooth LE;在電路實現方面,則必須采用低功耗設計。
在低功耗場景中,平均電流往往決定了電池供電設備的使用壽命,以及能否通過能耗認證。而平均電流取決于不同級別低功耗模式的電流、運行狀態下的工作電流、進入或退出低功耗模式的時間和CPU處理能力等方面。ESP32-C3在低功耗場景中也有對應的芯片級支持ESP32-C3采用了先進的電源管理技術,并能在不同的功耗模式之間進行切換,低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊同時還提供了智能化的低功耗外設,以減少CPU喚醒次數,從而進一步降低整體功耗。
ESP32-C3電源管理,ESP-IDF中集成了電源管理功能,該功能允許系統根據應用程序的需求,調整外圍總線(APB)頻率、CPU頻率,并配置芯片自動進入 Light-sleep 模式。低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊芯片在空閑時可自動進入Light-sleep模式,能夠盡可能地減少應用程序運行的功耗。ESP32-C3 的各種低功耗模式將在 12.2節中詳細討論。此外,啟用電源管理功能將會增加中斷延遲,中斷延遲的增加與多個因素有關,如CPU頻率、是否需要進行頻率切換等。
應用程序具有獲取/釋放電源管理鎖以控制電源管理運行的能力。當應用程序獲取電源管理鎖時,電源管理算法操作會受到限制。當電源管理鎖被釋放時,這些限制就被移除了。低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊電源管理鎖具有獲取/釋放計數器,如果電源管理鎖已被多次獲取,則需要釋放相同的次數,以消除相關限制。
電源管理鎖 描述
ESP_PM CPU_FREO MAX 請求CPU頻率為esp_pm_configure()函數中設置的大值。對于ESP32-C3,該值可以設置為40MHz、80MHz或160MHZ
ESP_PM_APB_FREO_MAX 請求APB頻率保持大頻率。對于ESP32-C3,大頻率是80MHz
ESP_PM_NO_LIGHT_SLEEP 禁止自動切換到Light-sleep模式
應用程序可以通過獲取或釋放電源管理鎖的方式,以適應不需要電源管理的場景。例如,對從APB 獲得時鐘的外設,其驅動可以要求在使用該外設時,將APB 頻率設置為80MHZ:操作系統可以要求 CPU 在有任務準備開始時以高頻率運行:一些外設可能需要中斷才能啟用,因此其驅動程序也會要求禁用 Light-sleep 模式。因為請求較高的APB 頻率或CPU 頻率,以及禁用 Light-sleep 模式會增加功耗,所以在低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊實際應用中,應當將使用電源管理鎖的時間降到小。
動態調頻,當啟用電源管理功能后,外圍總線 (APB) 頻率和CPU 頻率可能會在運行過程中發生改變,這被稱為動態調頻(Dynamic Frequency Scaling,DFS)。啟用電源管理后,動態調頻也隨之啟用,APB頻率可在一個RTOS 滴答周期內被多次更改。有些外設在正常運行時不受APB頻率變化的影響,但有些外設可能會出現問題。例如,Timer Group 外設定時器會繼續計數,但定時器計數的速度將隨 APB 頻率的變化而變化。所以在開發中,讀者應該了解哪些外設會受到動態調頻的影響,哪些外設不會受到動態調頻的影響。低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊隨著 ESP-IDF 開發的不斷完善,一些外設驅動程序也不會受到動態調頻的影響。
下面的外設在使用特定的時鐘源時不會受到動態調頻的影響:
(1)UART。如果使用 REE_TICK 作為時鐘源,則UART 不會受到動態調頻的影響;使用其他時鐘源時,將會受到動態調頻的影響。
(2)LEDC。如果使用 REF_TICK 作為時鐘源,則 LEDC 不會受到動態調頻的影響;使用其他時鐘源時,將會受到動態調頻的影響。
(3)RMT。如果使用 REE_TICK 或者 XTAL 作為時鐘源則RMT 不會受到動態調頻的影響。
目前以下外設驅動程序不會受到動態調頻的影響,低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊外設驅動程序會在數據傳輸期間使用ESP_PM APB EREQ MAX 電源管理鎖,并在數據傳輸完成后釋放該電源管理鎖,無須應用程序單獨獲取電源管理鎖。
(1)SPI主機。
(2) I2C。
(3)I2S(如果使用APLL時鐘,則12S會獲取ESP_PM_NO_LIGHT_SLEEP 電源管理鎖)。
(4)SPI從機。從調用 spi slave initialize()函數到調用spi_slave_free()函數期間不會受到動態調頻的影響。
(5)Wi-Fi。從調用esp wifistart()數到調用esp_wifi_stop()函數期間不會受到動態調頻的影響。如果啟用了 Wi-Fi的 Modem-sleep 模式,則芯片在射頻模塊關閉時將釋放ESPPMAPBFREQMAX 電源管理鎖。
(6)TWAI。從調用twai driver install()函數到調用twai_driver_uninstall()函數期間不會受到動態調頻的影響。
(7)Bluetooth。從調用esp bt controller enable()函數到調用esp_bt_controllerdisable()函數期間不會受到動態調頻的影響。低功耗無線模塊樂鑫官網ESP32-C3無線收發模塊如果啟用了 Bluetooth的Modem-sleep 模式則芯片在射頻模塊關閉時將釋放 ESP PMAPBEREQ MAX 電源管理鎖,但依然占用ESP_PM_NO_LIGHT SLEEP 電源管理鎖,除非CONFIG BTDM CTRL LOW_POWER CLOCK選擇的是32kHz的外部晶體振蕩器。
以下外設驅動程序會受到動態調頻的影響,因此需要在應用程序中添加代碼完成獲取或釋放電源管理鎖的操作:
(1) PCNT。
(2) Sigma-delta。
(3)Timer Group。