ESP32 测试(二): Modem-sleep 模式下的电流功耗测试

一. 测试目的

经常会有开发者提出基于 ESP32 Modem-sleep 模式下的电流功耗问题,本文将测试在 Modem-sleep 模式下的 ESP32 的电流功耗。


二. 测试环境

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

  • esp-iot-solution
    编写本文时,最新的 esp-iot-solution release 版本对应的 commit 为
    40cec13,可通过以下命令确认:

    git log --oneline -1
    

    结果为:

    40cec13 Merge branch 'master' of https://github.com/espressif/esp-iot-solution
    
  • toolchain 版本
    gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a),可通过以下命令确认:

    xtensa-esp32-elf-gcc -v
    

    结果为(log 过长,只需要关注最后的这部分。如下):

    Thread model: posix
      gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 
    
  • 测试主机
    Linux 环境,Ubuntu 16.04 LTS,可选用其他平台。

  • 开发板
    ESP32-WROOM-32D 开发板,可选用其他基于 ESP32 的开发板。

  • 测试示例
    esp-iot-solution 里的 Modem-sleep 示例。

  • 测试工具
    Tektronix MDO3104 示波器 或 Agilent 34401A 数字万用表,使用相关测电流工具均可。


三. 测试步骤

这篇文档将介绍如何在 esp-iot-solution 平台下进行 Modem-sleep 期间电流的测试。Modem-sleep 测试代码在 esp-iot-solution 中可以找到 测试代码链接。

  1. 开发板的焊接与接线图

    此时测试中需要使用 ESP32-WROOM-32D 开发板。以下是相应的焊接实物图以及接线图。

    焊接实物图 接线图

    注:测试时将万用表调至电流表模式,然后测量 Vcc 引脚 上连接导线的电流即可。

2.测试过程

在这一节中,你将看到 ESP32 的 Modem-sleep 模式下的电流功耗测试过程的详细说明。

  1. 工具链的安装

    在进行 Modem-sleep 模式下的的电流功耗测试之前,你需要安装工具链。工具链的详细安装步骤可以在 ESP-IDF Programming Guide 找到, 这里与不多加以描述。

    注: esp-iot-solution 使用与 esp-idf 相同的工具链,所以如果你的平台上能够编译 esp-idf 中的 example,则工具链无须重复安装。

  2. 测试代码下载

    在工具链安装完成之后,你接下来需要下载完整的 esp-iot-solution 工程,推荐使用如下指令:

    git clone https://github.com/espressif/esp-iot-solution.git
    cd esp-iot-solution
    git submodule update --init --recursive
    

    更新 submodule 时可能需要几分钟的时间,如果本地已经有 esp-iot-solution 仓库,请及时更新到最新版本。

  3. 测试代码编译及下载

    编译 Modem-sleep 测试用例(Modem-sleep 测试代码放在了 esp-iot-solution/tools/unit-test-app/components 目录下)。

    • 工程配置

        make menuconfig
      

      menuconfig-->Serial flasher config 中修改串口号和波特率。

    • 代码编译

        cd esp-iot-solution/tools/unit-test-app
        make TEST_COMPONENTS=modem_sleep
      
    • 固件烧写

      代码编译通过后, 将编译生成的 .bin 文件烧写到开发板上。 首先将 GPIO0 拉低,然后按下复位键让芯片进入下载模式。执行指令:

        make flash
      

      注:波特率太高, 可能会下载失败, 太低则烧写过程缓慢. 一般可以配置成 921600

  4. Modem-sleep 电流测试用例 log

    打开串口终端,按下复位键后,芯片启动,你将看到如下打印信息:

    Here's the test menu, pick your combo:
    (1)	"Wifi stop test" [wifi_test][iot]
    (2)	"Connect router test" [wifi_test][iot]
    (3)	"Modem sleep start test" [mordem_sleep][iot]
    (4)	"Modem sleep stop test" [mordem_sleep][iot]
    

    log 上列举的就是你可以进行的测试选项,其中使用了不同的唤醒源,比如 输入 3 则进行 Modem sleep start test . 在 Modem-sleep 期间, 你就可以测试电流功耗。

  5. 示波器或万用表的连接方法
    在这里,你需要注意设置示波器或电流表的量程。如果使用的是 ESP32-WROOM-32D 开发板,将电流表正负探针分别接在 3.3 V 电源 与 模块 Vcc 引脚即可(此时模块应用此 3.3 V 电源供电)。
     

    注:如果用示波器,请注意电流在示波器上能显示的最小单位,如果最小单位为 10 mA 及以上,可能会导致测量结果不准确。


四. 测量结果

在此示例中先进行 Wi-Fi 连接,然后进行 Modem-sleep 模式下的电流功耗测量。

测试用例 此用例下的电流功耗
复位&关闭 Wi-Fi 38.1 mA
连接 Wi-Fi 105.2 mA
开始 Modem-sleep 41.2 mA
停止 Modem-sleep 105.2 mA

五. 总结

通过以上方法,可测出 ESP32 的 Modem-sleep 模式下的电流功耗,用户可选择采用以上方法对自己的 ESP32 进行电流功耗测试。

你可能感兴趣的:(ESP32,TEST)