资讯详情

ESP32 测试(五): Light-sleep 模式下的电流功耗测试及特性(使用 Wi-Fi)

一. 测试目的

开发人员经常提出建议 ESP32 Light-sleep 本文将在连接模式下测试电流功耗问题 Wi-Fi 的情况下 Light-sleep 模式下的 ESP32 电流功耗。


二. 测试环境

采用以下测试环境,确保测试结果的一致性:


三. 测试步骤

在这次测试中使用 esp-idf 里的 power_save 用例。

  1. 接入电流表 将万用表调整到电流表模式进行测量 导线的电流可以连接到导脚上。

  2. 固件烧写和串口监控 首先你需要 下载并配置esp-idf,配置完成后,您需要输入以下指令:

    cd ~/esp/esp-idf/examples/wifi/power_save make menuconfig 

    menuconfig 界面,您需要设置连接AP的 SSIDpassword,你也可以在 menuconfig 里将 ESP32 调整到单核模式。然后可以操作以下指令进行固件烧录和串口监控:

    make flash monitor 

    当你看到串口监控工具时 Wi-Fi 电流功耗测试可在连接成功时进行。


四. 测试结果

运行此示例,成功连接 AP 之后,工作站将定期在活动状态和睡眠状态之间切换。RF、PHY 和 BB 关闭以减少功耗。站可以在调节解调器的休眠模式下 AP 保持连接。站在最小调制解调器的睡眠模式下唤醒每一个 DTIM 接收信标。 测试得到在 Light-sleep 模式下的最小功耗电流是 ,平均功耗电流为 。每隔 每次脉冲持续时,都可以观察到脉冲 ,此时 ESP32 定期在活动和睡眠之间切换。

以下是测试结果:

测量参数 参数数值
最低电流功耗 0.9 mA
平均电流功耗 5.0-8.0 mA
定期发包的(AP)的周期 300 ms
发包时产生的脉冲时间长 10 ms

这里也能从 log 获取以下信息:

wifi: AP’s beacon interval = 307200 us,DTIM period = 1

其中:

  • :信标间隔,为 ,这与表格中定期合同的周期相匹配。
  • :是delivery traffic indication message,一个 DTIM period 决定隔多久一个 beacon 帧中会有一个 DTIM 而这个 period 每一个都包含值 beacon 帧里面。当 DTIM period = 一、表示每隔一个 Beacon 时间间隔,AP 发送所有临时缓存的数据包。

注:手工焊接不如集成 ESP32-WROOM-32D 部分开发板 GPIO 未被禁用可能导致测量结果不准确。

五. 总结

通过上述方法可以测量 ESP32 在连接 Wi-Fi 时的 Light-sleep 对于模式下的电流功耗,用户可以选择使用上述方法来处理自己 ESP32 测试电流功耗。


六.相关知识附录

0. ESP32 的 Light-sleep 模式特性

Light-sleep 该模式是另一种省电模式。在 Light-sleep 在模式下,数字外设和大多数 RAM 由时钟门控制,电源电压降低,但 RTC 以及存储器和外设 ULP 协处理器仍在运行。任何唤醒事件(MAC 、主机、 RTC 定时器或外部中断)会唤醒芯片。可以使用多种唤醒源从轻度睡眠模式唤醒。当触发任何源时,芯片都会被唤醒。可以使用 esp_sleep_enable_X_wakeup API 可使用唤醒源 esp_sleep_disable_wakeup_source() API 禁止唤醒源。

从 Light-sleep 退出模式后,外围设备和 CPU 恢复运行,保留其内部状态。通过调用 esp_err_t esp_light_sleep_start() ,可以进入应用程序 Light-sleep 模式。

此外,还可以使用应用程序 esp_sleep_pd_config() API 强制 RTC 外设和 RTC 存储器的特定断电模式。

1. WiFi/BT 与 Light-sleep 模式

在进入 Light-sleep 在模式之前,应用程序必须调用以下函数 esp_bluedroid_disable(),esp_bt_controller_disable(),esp_wifi_stop() 禁用 Wi-Fi 和 BT。 即使不调用这些功能,也不会 Light-sleep 模式中保持 Wi-Fi 和 BT 连接。

2. 唤醒源

您需要使用召唤源来将 ESP32 从 Light-sleep 模式中唤醒,以下是相关唤醒源的介绍。

  • ESP32 里的 RTC 控制器具有内置定时器,可用于在预定义的时间后唤醒芯片。时间精度为 μs ,但实际分辨率取决于为 RTC SLOW_CLK 选择的时钟源。有关 RTC 时钟选项的详细信息,请参见 ESP32 技术参考手册。

    注:此唤醒模式不需要在睡眠期间打开 RTC 外围设备或 RTC 存储器。

  • RTC IO 模块包含触摸传感器中断时触发唤醒的逻辑。你需要在芯片开始睡眠之前配置触摸传感器。 当 RTC 外设未被强制上电时,即 ESP_PD_DOMAIN_RTC_PERIPH 应设置为 ESP_PD_OPTION_AUTO esp_sleep_enable_touchpad_wakeup() 函数可用于启用此唤醒源。

  • RTC IO 模块包含当其中 一个 RTC GPIO 的电平为预定义的逻辑电平时触发唤醒的逻辑。RTC IO 是 RTC 外设电源域的一部分,由于在此模式下启用了 RTC IO 模块,因此也可以使用内部上拉或下拉电阻。在调用esp_sleep_start() 之前,需要使用 rtc_gpio_pullup_en()rtc_gpio_pulldown_en() 函数由应用程序配置它们。esp_sleep_enable_ext0_wakeup() 函数可用于启用此唤醒源。从睡眠状态唤醒后,用于唤醒的 IO pad 将被配置为 RTC IO。在将此 pad 用作数字 GPIO 之前,请使用rtc_gpio_deinit(gpio_num) 函数重新配置它。

  • RTC 控制器包含使用 多个 RTC GPIO 触发唤醒的逻辑。两个逻辑功能之一可用于触发唤醒:

    如果任何所选引脚为高电平,则唤醒(ESP_EXT1_WAKEUP_ANY_HIGH) 如果所有选定的引脚都为低电平,则唤醒(ESP_EXT1_WAKEUP_ALL_LOW)

    该唤醒源由 RTC 控制器实现。因此,RTC 外设和 RTC 存储器可以在此模式下断电。但是,如果 RTC 外设断电,内部上拉和下拉电阻将被禁用。要使用内部上拉或下拉电阻,请在睡眠期间请求 RTC 外设电源域保持开启,并在进入睡眠模式之前使用 rtc_gpio_ 函数配置上拉/下拉电阻:

    esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
    gpio_pullup_dis(gpio_num);
    gpio_pulldown_en(gpio_num);
    

    esp_sleep_enable_ext1_wakeup() 函数可用于启用此唤醒源。

    从睡眠状态唤醒后,用于唤醒的 IO pad 将被配置为 RTC IO。在将此 pad 用作数字 GPIO 之前,请使用 rtc_gpio_deinit(gpio_num) 函数重新配置它。

  • ULP 协处理器可以在芯片处于睡眠模式时运行,并且可以用于轮询传感器,监视 ADC 或触摸传感器值,并在检测到特定事件时唤醒芯片。ULP 协处理器是 RTC 外设电源域的一部分,它运行存储在 RTC 慢速存储器中的程序。如果请求此唤醒模式,RTC 慢速内存将在睡眠期间启动。在 ULP 协处理器开始运行程序之前,RTC 外设将自动上电; 程序停止运行后,RTC 外设将再次自动关闭。

    当 RTC 外设未被强制上电时(即 ESP_PD_DOMAIN_RTC_PERIPH 应设置为 ESP_PD_OPTION_AUTO),ESP32 的修订版 0 和 1 仅支持此唤醒模式。

    esp_sleep_enable_ulp_wakeup() 函数可用于启用此唤醒源。

  • 除了上面描述的 EXT0 和 EXT1 唤醒源之外,在轻度睡眠模式下还有一种从外部输入唤醒的方法。通过该唤醒源,每个引脚可以单独使用 gpio_wakeup_enable() 函数配置为高电平或低电平唤醒。与 EXT0 和 EXT1 唤醒源(只能与 RTC IO 一起使用)不同,此唤醒源可用于任何 IO(RTC 或数字)。

    esp_sleep_enable_gpio_wakeup() 函数可用于启用此唤醒源。

  • 当 ESP32 从外部设备接收 UART 输入时,通常需要在输入数据可用时唤醒芯片。UART 外设包含一项功能,当看到 RX 引脚上的一定数量的上升沿时,可以将芯片从轻度睡眠状态唤醒。可以使用 uart_set_wakeup_threshold() 函数设置此上升沿数。请注意,唤醒后 UART 不会接收触发唤醒的字符(及其前面的任何字符)。这意味着外部设备通常需要在发送数据之前向 ESP32 发送额外字符以触发唤醒。

    esp_sleep_enable_uart_wakeup() 函数可用于启用此唤醒源。。

标签: lts系列电流传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台