ESP32报错:Brownout detector was triggered

1 篇文章 0 订阅
1 篇文章 0 订阅

问题描述

最近在用ESP32做一个智能小车控制器,发现在加入wifi功能后烧后串口总是报错,然后板子会不断的重启。报错内容如下:

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
0x3ffb1f68
PCM audio MJPEG video start

Brownout detector was triggered
前面一大堆我没看懂,但是”Brownout detector was triggered“这句倒是引起了注意,意思就是触发了断电检测。那这个肯定就是电源不稳定引起的。google了一下,也确实如此。大概就是说PC的usb供电不稳定,然后产生的压降不足以支撑wifi的功耗,所以每次电压降到低压检测设定的值以后就会重启。

那怎么解决呢?

两个办法:
一、临时办法:

在EPS32中添加以下代码:

#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"
void setup(){
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //关闭断电检测

这个办法就是简单粗暴啦,直接不检测自然就是不会重启啦。但这肯定不是长久之计,就像你失去了痛觉,别人拿刀子戳你一下你没感觉,但是你还是会流血。这里只是关闭了检测让程序一直往下跑下去,但是你又怎么知道不稳定的电压会不会带来其它问题。

二、长久办法:
更换电源。什么意思呢?就是说你这个东西既然是压降导致的,那你要想办法提供足够的电压。像这种3.3V的MCU一般前面都要有个3.3V的LDO,然后再前面会加一个反短接/倒灌的二极管,然后再接到5v或者其它电源。那像假如你就是只能供出5V,或者4.2v的锂电,那你要怎么办?你只能选一个好一点的低压差的LDO了,毕竟压差0.5V和压差1.5V差别还是挺大的。

最后,祝各位出现bug的兄弟们好运!!!

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44850779

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值