合宙esp32-c3 进入深度睡眠无法唤醒解决一例

28 篇文章 2 订阅
24 篇文章 0 订阅

手贱,昨天收到了嘉立创最新的esp32 s3,想测试一下电流功耗,于是顺便测试了一下以前的合宙esp32 c3 无串口芯片的版本

打算对比一下c3和s3的功耗相差多少,结果把自己玩死了:

void setup() {


esp_deep_sleep_start();

// esp_light_sleep_start();
}

void loop() {

}

这个代码烧进c3后,电流只有200多微安:

但是出现了一个几乎无解的问题:

在电脑上不再出现com端口了

led灯也不亮了

断电重启后led闪一下就没啥状态了

没有发生短路,万用表测还能测出有些gpio 3.3和5V

在电脑上找不到com端口以为着重新烧写新的固件进去是不可能的。

长按rst和boot都找不到端口。。。

由于这是合宙便宜版本的c3,不带串口芯片,怀疑:

单片机一开机立马就进入了deep mode,把各种设备全部停了,要知道这块单片机由于没有串口芯片走的是mcu本身的串行支持,这一deep mode ,设备全停,所以没有了对外的串行支持,自然在电脑上没有了com端口。

大哭,各种尝试和找资料,包括合宙官方也没有这方面资料。

最后的解决方案很简单:

按住boot不放,然后按下rst 再释放,这时单片机led灯点亮,com端口重现。

这大概就是传说中的download模式。

ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x4 (DOWNLOAD(USB/UART0/1))
Saved PC:0x400462dc
waiting for download

 在没有按rst断电后,哪怕烧入新固件,也不会运行,会持续处于这个状态。

有些文档对于深度随眠有错误的描述,什么没有设置唤醒就不生效,这是捡了半截就跑。在乐鑫官方描述如下:

函数 esp_deep_sleep_start() 可用于在配置唤醒源后进入 Deep-sleep 模式,也可用于在未配置唤醒源的情况下进入 Deep-sleep 模式 模式。在后一种情况中,芯片将一直处于睡眠模式,直到从外部被复位。

这是它说的这个复位只是是传统意义上的rst吧了。

有机会的话建议大家都玩玩,另外,esp32 c3的电流:

模式        电流
downloa模式11 毫安
空代码27 毫安
light mode576 微安
deep mode238 微安
delay 19 毫安

上面统计中的delay 指如下代码:

void setup() {

}

void loop() {
  delay(20);
}

delay 的数值不影响电流的消耗,但是有delay的话,空代码的电流消耗从27降到了19 毫安。

整体来说,在这种测试的开发板上的电流消耗比我以为的高太多,因为过去他们的宣传在deep模式的情况下,可能只有几个微安,实际上有几百个微安,当然这可能涉及到其他元电源等器件。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值