ESP32-欠压检测

1. 如何开启该功能

ESP32 内部集成掉电检测电路,并且会默认启用。

如果电源电压低于安全值,掉电检测器可以触发系统复位。掉电检测器可以使用 CONFIG_ESP_BROWNOUT_DET 和 CONFIG_ESP_BROWNOUT_DET_LVL_SEL 这两个选项进行设置。

当掉电检测器被触发时,会打印如下信息:

Brownout detector was triggered

芯片会在该打印信息结束后复位。

请注意,如果电源电压快速下降,则只能在控制台上看到部分打印信息。

2. sdkconfig配置相关选项

CONFIG_ESP32_BROWNOUT_DET=y
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set
CONFIG_ESP32_BROWNOUT_DET_LVL=0
CONFIG_ESP32_REDUCE_PHY_TX_POWER=y

3. 电压阈值

CONFIG_ESP_BROWNOUT_DET_LVL_SEL 说明

欠压电压等级说明:检测电路检测到 电源电压低于这个LVL_SEL值,就会触发系统复位。

可以选择的电压等级如下:这些等级值是评估值,每个电路需要实际测试。

  • 2.43V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0)

  • 2.48V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1)

  • 2.58V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2)

  • 2.62V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3)

  • 2.67V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4)

  • 2.70V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5)

  • 2.77V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6)

  • 2.80V +/- 0.05 (CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7)

4.  CONFIG_ESP32_BROWNOUT_DET_LVL

这个配置项默认为0, 在初始化的时候有用到。普通开发者应该是没有应用场景。具体如何使用应该还是要咨询原厂。乐鑫的文档库里面没有这个宏的任何描述。

#define RTC_CNTL_BROWN_OUT_REG          (DR_REG_RTCCNTL_BASE + 0xd4)
/* RTC_CNTL_BROWN_OUT_DET : RO ;bitpos:[31] ;default: 1'b0 ; */
/*description: brown out detect*/
#define RTC_CNTL_BROWN_OUT_DET  (BIT(31))
#define RTC_CNTL_BROWN_OUT_DET_M  (BIT(31))
#define RTC_CNTL_BROWN_OUT_DET_V  0x1
#define RTC_CNTL_BROWN_OUT_DET_S  31

void esp_brownout_init()
{
    REG_WRITE(RTC_CNTL_BROWN_OUT_REG,
            RTC_CNTL_BROWN_OUT_ENA /* Enable BOD */
            | RTC_CNTL_BROWN_OUT_PD_RF_ENA /* Automatically power down RF */
            /* Reset timeout must be set to >1 even if BOR feature is not used */
            | (2 << RTC_CNTL_BROWN_OUT_RST_WAIT_S)
            | (BROWNOUT_DET_LVL << RTC_CNTL_DBROWN_OUT_THRES_S));

    ESP_ERROR_CHECK( rtc_isr_register(rtc_brownout_isr_handler, NULL, RTC_CNTL_BROWN_OUT_INT_ENA_M) );

    REG_SET_BIT(RTC_CNTL_INT_ENA_REG, RTC_CNTL_BROWN_OUT_INT_ENA_M);
}

5. 降低发射功率

CONFIG_ESP32_REDUCE_PHY_TX_POWER

这个是在发生了brownout的情况下,芯片再次启动的时候,降低 PHY TX 功率,保证code能够正常运行。

6. 应用场景说明

在有些灯具产品上面,上电的时候3.3V供电不稳定,会导致ESP32先上电起来,触发brownout,也可能会多次触发brownout。知道供电电路的3.3V电路稳定。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

专注和坚持是最好的导师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值