ESP32报错:Brownout detector was triggered

问题描述

最近在用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的兄弟们好运!!!

### 检测ESP32是否正常供电的方法 为了确保 ESP32 正常工作,稳定可靠的电源供应至关重要。当电源电压下降到低于最低操作水平时,可能会触发掉电检测器并导致系统复位或异常行为。 一种方法是在代码中监控系统的状态消息。如果掉电检测器被触发,会在日志中打印 `Brownout detector was triggered` 这样的信息[^4]。因此可以通过监测串口输出查看是否有此类警告来间接判断是否存在欠压情况。 更直接的方式是利用内置的功能或者外部电路来进行实时监控: - **内部机制**:一些版本的 ESP32 提供了 brown-out detection(BOD),即低功耗模式下的自动重启功能。一旦发生掉电现象,设备将会记录下这一事件并通过特定的日志条目通知开发者。 - **外部硬件辅助**:也可以采用额外的稳压芯片或者其他形式的电源管理ICs来提供更加稳定的电力供给,并且这些组件通常具备过流保护以及精确的电压监视能力。 对于希望编程实现简单自我诊断的应用场景而言,在初始化阶段加入一段自检逻辑可能是有效的解决方案之一。下面给出了一段Python风格伪代码作为例子,展示了怎样读取和处理可能由不充分供电引起的错误条件: ```python import machine def check_power_status(): reset_cause = machine.reset_cause() if reset_cause == machine.BROWN_OUT_RESET: print('Warning: Power supply may be unstable.') check_power_status() # Call this function during setup phase. ``` 这段代码尝试获取最近一次重置的原因,并检查它是否是因为掉电而发生的。如果是的话,则发出相应的提示给用户知道可能存在供电不稳定的情况。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_44850779

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

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

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

打赏作者

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

抵扣说明:

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

余额充值