樂鑫esp32 c3藍牙芯片功耗模組智能照明電源管理實戰,在了解 ESP32-C3 電源管理和低功耗模式后,就可以在開發實際的物聯網項目時選擇合適的電源管理方案進行低功耗優化。本文將繼續圍繞智能照明工程,介紹如何運用樂鑫esp32 c3藍牙芯片功耗模組電源管理方案和低功耗模式進行低功耗優化。
在智能照明工程中,為了使智能照明產品通過低功耗認證,同時節約能源,需要盡可能降低芯片在運行時的功耗。結合之前的內容,考慮在 Deep-sleep 模式下,LEDC無法正常工作,并且 Wi-Fi和 Bluetooth LE 連接無法保持,從而無法接收用戶的控制命令。所以在該智能照明產品中通常結合使用樂鑫esp32 c3藍牙芯片功耗模組Wi-Fi Modem-sleep 模式、Bluetooth LE Modem-sleep 模式電源管理、自動進入 Light-sleep 模式,這種組合可將智能照明產品功耗降至低。使用這種組合后:
在開燈狀態下,通過獲取電源管理鎖保證 LED PWM 工作正常同時 Wi-Fi和 Bluetooth LE保持連接以接收用戶的控制命令,并且通過使用 Wi-Fi 的 Modem-sleep 模式和 Bluetooth LE的Modem-sleep模式,能降低射頻電路工作時間以降低功耗。
在關燈狀態下,通過釋放電源管理鎖,能讓 CPU 在空閑時進入 Light-sleep 模式,以便進步降低功耗。
下面將進一步介紹如何在智能照明工程中使用這種組合,分為兩步:
第一步:樂鑫esp32 c3藍牙芯片功耗模組配置電源管理功能、啟用自動進入 Light-sleep 模式、打開 Wi-Fi的 Modem-sleep 模式和Bluetooth LE的Modem-sleep 模式。
第二步:在應用程序中完成電源管理鎖的相關操作,使LED 調光驅動正常工作。
配置電源管理功能
(1)啟用電源管理(Power Management)功能和自動進入 Light-sleep 模式。在啟用電源管理功能時,先需要在 menuconfig 中配置相應的選項;其次要在應用程序中調用 esp_pm_configure()函數,使用樂鑫esp32 c3藍牙芯片功耗模組時對應的參數是esp_pm config_esp32c3_t。
(2)配置Wi-Fi & Bluetooth modem sleep。配置 Wi-Fi& Bluetooth modem sleep的步驟如下:
第一步,配置Bluetooth modem sleep,只需要在menuconfig中配置這個選項。
第二步,配置 Wi-Fi的Modem-sleep 模式,需要在初始化 Wi-Fi后,調用樂鑫esp32 c3藍牙芯片功耗模組esp wifi_set_ps(wifi_ps_type_t type)函數完成 Modem-sleep 模式的配置。在本書介紹的智能照明工程中的用法如下:
1.#define LISTEN_INTERVAL 3
2.wifi_config_t wifi_config = (
3. .sta ={
4. .ssid="SSID",
5. .password="Password",
6. .listen_interval = LISTEN_INTERVAL,
7. },
8. };
9. ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
10. ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
11. ESP_ERROR_CHECK(esp_wifi start());
12.
13.ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_MAX_MODEM));
使用電源管理鎖
當LEDC 使用除 REE_TICK 之外的時鐘源時,是受動態調頻影響的,應用程序需要添加代碼完成獲取/釋放電源管理鎖的操作,LEDC 才能正常工作。因此,在應用中需要使用電源管理鎖來保證在 LEDC 工作時,APB 時鐘不發生變化。樂鑫esp32 c3藍牙芯片功耗模組具體用法為:在初始化LED驅動程序時,初始化ESP_PM_APB_EREQ_MAX類型的電源管理鎖;當LED開始工作時(開燈),獲取該電源管理鎖;在 LED 停止工作時(關燈),釋放該電源管理鎖。在本文介紹的智能照明工程中的用法如下:
1.staticesp_pm_lock_handle_t s_pm_apb_lock= NULL;
2.
3.if (s_pm_apb_lock == NULL) {
4.if(esp pmlock create(ESP PMAPB FREQ MAX,0,"l apb",
5.&s_pm_apb_lock) != ESP OK) {
6.ESP_LOGE(TAG,"esp pm lock create failed");
7.}
8.}
9.
10.while (1) {
11.ESP_ERROR CHECK(esp_pm_lock_acquire(s_pm_apb_lock));
12.ESP_LOGI(TAG,"light turn on");
13.for (ch=0;ch< LEDC_TEST_CH_NUM;ch++) {
14.ledc_set_duty(ledc_channel[ch].speed mode,
15.ledc_channel[ch].channel,LEDC_TEST_DUTY);
16.ledc_update_duty(ledc_channel[ch],speed mode,
17.ledc channel[ch].channel);
18.}
19.vTaskDelay(pdMS_TO_TICKS(5 *1000));
20.
21.ESP_LOGI(TAG,"light turn off");
22.for (ch= 0;ch <LEDC_TEST_CH_NUM;ch++) (
23.ledc_set_duty(ledc_channel[ch].speed_mode,
24.ledc_channel[ch].channel, 0);
25.ledc_update_duty(ledc channel[ch].speed_moder
26.ledc channel[ch].channel);
27.}
28.ESP_ERROR_CHECK(esp pm lock release(s pm_apb_lock));
29.vTaskDelay(pdMS TO TICKS(5 *1000));,
30.}
驗證功耗表現
在完成電源管理和低功耗優化配置后,可以測試樂鑫esp32 c3藍牙芯片功耗模組實際的功耗表現,了解其是否滿足功耗要求根據認證要求,實際測試的對象既可以是整個照明燈具,也可以是無線模組。當測試無線模組時,可以使用直流電源作為無線模組的電源,在兩者之間串接功率分析儀,用于功耗數據的收集、分析。本文所用的功率分析儀是 Joulescope: Precision DC EnergyAnalyzer。在與功耗相關的認證要求中,針對智能照明設備,通常需要測量關燈狀態、Wi-Fi 保持連接狀態時的平均電流。
介紹了 ESP32-C3 支持的電源管理和 Modem-sleep、Light-sleep、Deep-sleep 等模式,以及它們的功能和用法。除此之外,本文還介紹了如何進行低功耗調試。本文以智能照明工程為例,介紹如何使用電源管理功能和低功耗模式,并測量實際的功耗。