ESP32_ULP_EB_V1 评估板使用说明

一 系统简介:

ESP32_ULP_EB V1 开发板以乐鑫 ESP32 模组为核心, 外接一些 Touch Pad, 按键开关, 排针等. 主要用于检测模组在正常工作或睡眠状态下的电流情况.


二 PCB功能模块:


三 功能实现及描述:

3.1 RST Button & Boot Button

  • 系统复位按键

    控制 ESP32 芯片 EN 脚,用于使芯片复位,硬件设计如下:

  • 系统模式按键

    连接至芯片的 GPIO0. 按下此键后, 再按下 RST 键, 系统进入 Download 模式, 此时用户可以通过串口对 Flash 进行下载. 硬件实现如下:

  • 下载模式

    返回编译与下载

    系统复位时,GPIO0 为低电平时,芯片进入下载模式。 长按Boot Button 的同时, 按下RST Button 复位系统,芯片将进入下载模式,等待下载固件,下载模式下可以看到系统启动的串口输出(波特率115200)如下:

    ets Jun  8 2016 00:22:57
    rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
    waiting for download
    
  • 固件运行模式

    系统复位时, GPIO0 为高电平(默认内部上拉), 芯片进入 Flash 启动模式,从 Flash 中加载固件并运行。放开 Boot Button, 直接按下 RST Button 复位系统即可,固件运行后,可以看到系统启动的串口输出(波特率115200)如下:

    ets Jun  8 2016 00:22:57
    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    

3.2 Wakeup Button

本电路中包含 4 个唤醒按键, 可以实现模组的睡眠唤醒功能. 设计时需要注意,只有 RTC IO 才能在 deep sleep 状态下唤醒芯片。ESP32 共有18个 RTC IO,都可单独用做 deep sleep 下唤醒芯片。RTC IO 有两种唤醒模式,EXT0 或者 EXT1 模式。
ESP32_ULP_EB V1 评估板上,位于USB 接口下方的四个按键为唤醒按键,从过到右依次为GPIO36/GPIO39/GPIO34/GPIO35.

注: GPIO34 及以上的 IO 只能用做输入,无法输出。因此,一般讲只能输入的 RTC IO 作为 deep sleep 唤醒功能,以避免占用输出功能的 IO. 以上 wake_up 按键分别接到 RTC IO36, RTC IO39, RTC IO34, RTC IO35, 预留了一个上拉电阻.

硬件设计如下:

GPIO36 GPIO39 GPIO34 GPIO35
RTC_IO_0 RTC_IO_3 RTC_IO_4 RTC_IO_5

3.3 Touch Pad

本电路中包含 4 个 Touch Pad, 同样可以实现模组的睡眠唤醒功能.
在 deep sleep 模式下,touch pad 仍然能够工作,并且每隔一段时间间隔就会唤醒进行充放电计数,一旦读数小于(或者大于)设定的阈值,就会唤醒芯片。

注: 由于touch sensor 需要定期读数,会造成一定的功耗,可以通过 esp-idf 中的 touch_pad_set_meas_time 接口来设置 touch sensor 计数时间和计数间隔,来调整合适的功耗和唤醒灵敏度

硬件设计如下:

GPIO32 GPIO33 GPIO27 GPIO14
TOUCH_PAD_NUM9 TOUCH_PAD_NUM8 TOUCH_PAD_NUM7 TOUCH_PAD_NUM6

3.4 电源断路排针

ESP32_ULP_EB V1 评估板上, 一共有两个电源域: 3.3V(VDD33)与 32_3.3V(ESP32_VDD33)。两个电源域之间,仅通过JP4/JP6两个跳线连接,如将电流表分别接至两端串联进电路, 即可测量模组在不同状态下的电流情况.

3.3V(VDD33) ==> 32_3.3V(ESP32_VDD33)
LDO 输出电压,给串口芯片提供电源,给32_3.3V(ESP32_VDD33)提供电源 通过J6/J4进行连接 给所有 ESP32 模块的部分提供电压,包括模块输入电源、 strap pin 上拉所使用的电源以及所有 ESP32 GPIO 上拉所使用的电源

3.5 接口排针与IC

  • ESP32 模组的各个 GPIO 外接至排针
  • Strap pin 预留可以上拉/下拉的排针接口
  • TX/RX 预留排针接口
  • USB 接口既为开发板提供电源, 又作为通信接口连接 PC 与 ESP32 芯片.
  • CP2102: USB 与 UART 协议转换芯片.
  • LDO: 电源管理芯片, 固定输出 3.3V 电压.

四 功能测试:

4.1 低功耗概述

ESP32 有多种低功耗模式, 能够适用于很多应用场景. 只要进行一些简单的配置, 就可以进入低功耗模式. 这里针对 deep_sleep 模式进行测试, 简单介绍测试方式和注意事项.

4.2 Deep Sleep 低功耗模式

在 deep_sleep 模式下, ESP32 CPU 将停止运行, 但 RTC 外设, RTC 存储器和 ULP 协处理器可以继续运行. 进入 deep_sleep 模式后, 可以通过外部事件, RTC 定时器等方式唤醒芯片. 这里测试以下几种唤醒方式:

  • EXT0 唤醒模式:

    会有 RTC 外设开启, 可以配置某个RTC IO 高电平或者低电平唤醒.

  • EXT1 唤醒模式:

    可以配置一个或者多个 RTC IO 作为唤醒源, 在一个或者多个 RTC IO 同时为高电平或者同时为低电平时唤醒

  • RTC Timer 唤醒模式:

    RTC Timer 作为唤醒源, 可以配置定时的唤醒.定时时间由用户配置.

  • TouchPad 唤醒模式:

    Touchpad 是电容式触摸传感器, 会有电容充放电过程.工作电流稍微偏高. 10 个 Touch_pad 经过配置后都可以用来将系统唤醒.

注意事项:

  1. RTC 外设一旦开启, 不会自动关闭, 除非在程序里将其关闭或系统掉电重启.

  2. 测试板上的四个 wakup 按键需要外部接上下拉电阻(开发板上预留了四个上拉电阻, 默认阻值10 KOhm).

4.3 deep_sleep 模式下电流测试

不同唤醒模式下, deep_sleep 期间工作电流测试结果:

唤醒方式 deep_sleep 期间电流 测试步骤 测试用例唤醒方式
EXT0 6.5uA 见测试 1 RTC_IO 39(按键 S_VN)低电平
EXT1 5.4uA 见测试 2 RTC_IO34/35/36/39同时为低电平(四个唤醒按键同时按下)
Timer 6uA 见测试 3 定时 10S 后唤醒
TouchPad 36uA 见测试 4 TOUCH_PAD_NUM7/GPIO27(丝印TP3)触摸唤醒

(注: 这里采用外部 10K Ohm 的上拉电阻)


测试项说明:

测试1. EXT0 唤醒模式

将 RTC_IO 39 ( 测试板上 按键标号为 S_VN )配置成EXT0 唤醒源, 低电平唤醒. 在deep_sleep 期间, 按下该按键产生一个低电平信号从而唤醒芯片.示例代码片段:

static void ext0_wakeup_init(void)
{//use RTC_IO_39 as wakeup pin, low level will wakeup system.const uint32_t pin_num = 39;esp_sleep_enable_ext0_wakeup(pin_num, 0);
}
...
void ext0_wakeup_test(void)
{...ext0_wakeup_init();esp_deep_sleep_start();
}
测试2. EXT1 唤醒模式

配置 RTC_IO 34, 35, 36, 39 组合触发方式, 作为 EXT1 触发源, 当以上 IO 全都是低电平时, 将芯片从 deep_sleep 模式中唤醒. 配置代码示例:

static void ext1_wakeup_init(void)
{//set RTC_IO_34,35,36,39 as wakeup pins.// when all of these pines are low level, system will be awakend.const uint64_t pin_mask = (1ULL << 39) | (1ULL << 36) | (1ULL << 35) | (1ULL << 34);esp_sleep_enable_ext1_wakeup(pin_mask, ESP_EXT1_WAKEUP_ALL_LOW);
}
...
void ext1_wakeup_test(void)
{...ext1_wakeup_init();esp_deep_sleep_start();
}
测试3. RTC Timer 唤醒模式

配置 RTC Timer 唤醒方式, 定时时间为 10 秒, 进入芯片进入 deep_sleep 模式, 10 秒后会被唤醒. 示例代码如下:

static void timer_wake_init(void)
{//10 seconds later, system will be awakend after entering deep_sleep mode.const int time_wakeup_sec = 10;esp_sleep_enable_timer_wakeup(time_wakeup_sec * 1000000);
}
...
void timer_wakeup_test(void)
{...timer_wake_init();esp_deep_sleep_start();
}
测试4. TouchPad 唤醒模式

配置 TouchPad 唤醒方式, 这里使用的是 TouchPad 7 作为外部唤醒源. 当触碰该 pad 时, 系统将被唤醒. 配置代码示例:

static void touchpad_wake_init(void)
{//set tpuch_pad 7 as wakeup pad.iot_tp_create(TOUCH_PAD_NUM7, 900, 0, 100);//this function call will lower system's  power consumption during deep_sleep mode.//if interested, you can not call this function to found what different about working current.touch_pad_set_meas_time(0xffff, TOUCH_PAD_MEASURE_CYCLE_DEFAULT);esp_sleep_enable_touchpad_wakeup();
}
...
void touchpad_wakeup_test(void)
{...touchpad_wake_init();esp_deep_sleep_start();
}

注: TouchPad 初始化时调用了 touch_pad_set_meas_time 这个函数,调整touch sensor 读数时间和读数间隔时间, 这使得系统在deep_sleep 期间工作电流从默认340uA 降低到 36uA 左右.


五 IOT-Solution Test Case 编译步骤:

5.1 测试前的准备

首先需要确保你的电脑上已经安装好 ESP32 工具链, 工具链安装请参考 ESP-IDF 中的 README.md.

5.2 获取 IoT Solution 项目代码

执行指令, 下载 iot-solution 项目仓库:

  • 可以直接递归获取仓库代码, 这样将会自动初始化需要的所有子模块:

    git clone --recursive https://github.com/espressif/esp-iot-solution.git
  • 也可以手动进行:

    git clone https://github.com/espressif/esp-iot-solution.git
    
  • 然后切换到项目根目录执行指令, 下载本项目依赖的一些其它子模块:

    git submodule update --init --recursive
    

5.3 编译与运行

子模块代码下载完成后就可以对 Iot Solution 工程中的 TestCase 进行编译和测试. 切换到 esp-iot-solution/tools/unit-test-app 目录下

  • 串口参数设置

执行以下指令进行编译配置, 如串口号和串口下载速度可以在 Serial flasher config 这一菜单选项中进行配置(如果不需配置, 可跳过这一步):

    cd YOUR_IOT_SOLUTION_PATH/tools/unit-test-appmake menuconfig
  • 硬件连接

    跳线功能示意图 实际连接图 将万用表和开发板正确连接后, 测试电流
    • 红色的两处跳线为串口通信线,用于下载固件和串口通信。
    • 黄色的两处跳线为模式控制,用于串口自动下载功能,如不需要,可以手动进入下载模式。
    • 左下角的跳线为总电流入口, 用于esp32模块的供电。
  • 编译, 烧写与运行固件

执行下面指令,编译所有 TestCase, 以下命令中的 flash 是下载命令, monitor 表示开启系统打印, 可根据实际情况选择添加:

    make IOT_TEST_ALL=1 flash monitor

也可以执行以下指令,只编译 ‘deep_sleep’ 相关的测试项. 以下命令中的 flash 是下载命令, monitor 表示开启系统打印, 可根据实际情况选择添加:

    make TEST_COMPONENTS="deep_sleep" flash monitor

注: 示例 TEST_COMPONENTS=“deep_sleep” 中 ‘=’ 两边不能有空格, 否则无法编译.

注: 下载程序时, 如果无法自动开始下载,可以尝试手动进入下载模式。下载固件完成后,按reset键重新运行程序,可以查看串口打印

  • 选择测试项

    查看测试项与描述

固件下载完成,并打开串口界面并运行固件后,将输出以下选项,选择对应的测试序号并输入,即可进行测试:

    Here's the test menu, pick your combo:(1)     "Deep_sleep get wake_up cause test" [deep_sleep][iot](2)     "Deep_sleep EXT0 wakeup test" [deep_sleep][iot](3)     "Deep_sleep EXT1 wakeup test" [deep_sleep][iot](4)     "Deep_sleep touch_pad wakeup test" [deep_sleep][iot](5)     "Deep_sleep time wakeup test" [deep_sleep][iot]

以 EXT1 模式测试为例,输入 3 选择运行 Deep_sleep EXT1 wakeup test,得到以下串口输出,测试观察电流表的读数即为模块消耗的总电流。

    >>>   ext1 wake_up test   <<<During deep_sleep, set key 's_VP' 's_VN' 'IO_34' 'IO_35' all low to wake_up systemSystem entering deep_sleep mode 3 seconds latertime remain 3 stime remain 2 stime remain 1 s>>>   entering deep_sleep mode   <<<

然后同时按下开发板上四个 wakeup 按键来唤醒芯片. 从串口打印可以看出系统已经被唤醒, 这时候可以输入 1 来查看系统被唤醒的原因.
串口打印如下:

    Running Deep_sleep get wake_up cause test...>>>   wake_up cause test, please do deep_sleep test first   <<<waked up by EXT1

ESP32 - ESP32_ULP_EB 低功耗应用评估板相关推荐

  1. 创龙科技全志T3国产评估板(4核ARM Cortex-A7)-性能及参数资料

    1 评估板简介 创龙科技TLT3-EVM是一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz,由核心板和评估底板组成. 评估板接口资源丰富, ...

  2. 【STM32WLE5之lora:6、易智联LM40评估板ADC定时采集上报低功耗处理】

    STM32WLE5之lora:6.易智联LM40评估板ADC定时采集上报低功耗处理 前言 一. 低功耗模式选择 1. STM32WLE工作模式 2. 低功耗模式选择 二. 低功耗测试执行 1. 低功耗 ...

  3. esp32 鸿蒙,ESP8266最佳开发板--ESP-LAUNCHER开发板评测

    要评选中国影响力十大芯片,ESP8266必在其中.虽然开发文档有些混乱,各种生态纷杂,但它的低价,给了开发者更低门槛,也让更多人都参与到WiFi的开发体验中来. 从这种意义上来说,ESP8266是一款 ...

  4. 【STM32WLE5之LoRa# 系列1、易智联LM401 评估板简介】

    STM32WLE5之LoRa# 系列1.易智联LM401 评估板简介 简介 一.LM401 LoRaWan评估板 二.原理图 1.LM401模块及LED 2.电源及串口选通开关 3.USB转串口 4. ...

  5. 创龙TL437x-EVM评估板规格书详解

    1.评估板简介 创龙TL437x-EVM是一款基于TI Sitara系列AM4376/AM4379 ARM Cortex-A9高性能低功耗处理器设计的评估板,由核心板与底板组成.核心板经过专业的PCB ...

  6. 基于TI SitaraAM335x ARM Cortex-A8处理器设计的评估板的拓展IO口和0ADC接口

    前言 创龙TL335x-EVM是一款基于TI Sitara系列AM3352/AM3354/AM3358/AM3359 ARM Cortex-A8高性能低功耗处理器设计的评估板,由核心板和底板组成.核心 ...

  7. 史上最全! 瑞芯微RK3568核心板评估板资源分享!

    ▎瑞芯微RK3568芯片 高性能处理器:采用四核A55架构CPU,G52 GPU:内置NPU,可提供1T算力 高可靠性设计:支持DDR及CPU Cache全链路ECC 内置自研ISP图像处理器:8M@ ...

  8. 《安富莱嵌入式周报》第310期:集成大语言模型的开源调试器ChatDBG, 多功能开源计算器,M7内核航空航天芯片评估板, Zigbee PRO规范

    周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Pow ...

  9. 【STM32WLE5之LoRa# 系列3、易智联LM401 评估板PingPong应用移植】

    STM32WLE5之LoRa# 系列3.易智联LM401 评估板PingPong应用移植 前言 一.系统初始化SYS_APP.c文件 二.中断stm32wlxx_it.c文件 三.PingPong的应 ...

最新文章

  1. html mint ui,vue mint-ui初次使用总结
  2. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)
  3. 项目总结:华南师范大学校园开发教育android客户端总结
  4. 计算机考研没奖,备战考研本科期间没有什么奖项,考研复试会有影响吗?
  5. 协议形式化安全分析 Scyther 并非所有协议可以照抄就搬
  6. 有哪些在朋友圈发会被秒赞的文案?
  7. 2018渭源县计算机老师,2018年甘肃定西渭源县选调教师公告【招60人】
  8. Redis如何实现故障自动恢复?
  9. 异步分段处理海量数据
  10. Leetcode加一 (java、python3)
  11. wxpython控件字体_wxPython获取系统字体代码
  12. 生信自学笔记(三)分子数据库
  13. IDEA jclasslib插件安装
  14. IoT -- 物联网平台架构设计分析
  15. Olivetti Faces人脸数据集下载后图像分割matlab(亲测有效)
  16. 互联网行业裁员潮为什么来得这么突然?
  17. angularJS1 异常Error: [$injector:unpr]
  18. 超外差,固定码,破解
  19. 自动化测试===【转】Robot Framework作者建议如何选择自动化测试框架
  20. 购买意大利蜜蜂瓷砖的憋屈经历

热门文章

  1. 移动硬盘分区(以500G为例)
  2. [爆笑网文]男人都是这副德性
  3. PalmOS开发教程-2
  4. 计算机课程考试质量分析,计算机考试质量分析.pdf
  5. cipher java 安全_Java安全(未完待续)
  6. 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏
  7. 通用网页广告监测,ADBlock plus算法的C#实现。
  8. 三星 GALAXY Note2系列完美自动root工具
  9. python内置函数format的使用方法 python format函数怎么用
  10. uniapp tabBar 事件屏蔽 点击屏蔽