Гайд · Питание · Отладка
ESP32 сам перезагружается? Это питание, а не код
Случайные ребуты. Плата зависает в момент подключения Wi-Fi. В мониторе порта —
Brownout detector was triggered. На это натыкается почти каждый новичок, и это почти никогда
не баг в коде. Это просадка питания под нагрузкой. Разбираем почему и как вылечить
навсегда.
Что такое «brownout» на самом деле
В ESP32 встроен детектор просадки (brownout): если рейл 3,3 В падает ниже порога (~2,4–2,8 В), он сбрасывает чип, чтобы не работать на плохом напряжении. Так что сообщение — не болезнь, а симптом: рейл провалился.
Виновник почти всегда — Wi-Fi-радио. На передаче оно рвёт ток резкими всплесками по 300–500 мА. Если БП, кабель или бортовой стабилизатор не выдают это мгновенно, напряжение падает, детектор срабатывает, плата ребутается — вот почему она умирает ровно в момент включения Wi-Fi.
Типовые причины
- Слабый или длинный USB-кабель — тонкий «только зарядка» роняет напряжение под нагрузкой. Причина №1.
- Жадный USB-порт — некоторые порты ноутбуков/хабов ограничивают ток; зарядка из розетки или активный хаб стабильнее.
- Питание прямо в пин 3V3 от слабого источника — минуешь бортовые ёмкости и запас стабилизатора.
- Бортовой LDO AMS1117 — стоит на дешёвых платах; в целом хватает, но запаса под всплески почти нет, легко «проваливается».
Что делать (по порядку)
- Сначала смени кабель. Короткий, толстый, «data»-кабель оживляет удивительно много «мёртвых» плат.
- Поставь конденсатор развязки — 470–1000 мкФ электролит между 3V3 и GND прямо у модуля гасит всплески Wi-Fi. Самый эффективный фикс.
- Питай через 5V / VIN, а не пин 3V3 — тогда бортовой стабилизатор и его ёмкости работают. Дай чистые 5 В от нормального БП.
- Развяжи прожорливую периферию — никогда не питай сервы, моторы и LED-ленты от 3V3 платы; дай им свой источник и общую землю.
- Замени стабилизатор для серьёзных проектов — маленький понижающий (buck) выдаёт куда больше тока, чем AMS1117, и меньше греется.
Как питать периферию без просадок
Лента WS2812, серва или мотор поодиночке тянут больше, чем весь ESP32. Гнать это через крошечный бортовой стабилизатор — гарантированные ребуты. Правило: вычисления и радио на одном питании, «мускулы» — на другом, земли соединены. 5-вольтовому модулю или ленте, если она отвечает логикой в ESP32, нужна ещё и проверка уровней 3.3 ↔ 5 В.
На батарее
Батарея добавляет свою ловушку: AMS1117 впустую жрёт ток даже в простое (плохой ток покоя) и требует запаса над 3,3 В для стабилизации. Для батарейных проектов бери эффективный buck/boost — или заведи ячейку LiFePO4 (3,2 В) почти напрямую в рейл 3,3 В. А дальше выжимай каждый микроампер глубоким сном.
В девяти случаях из десяти лекарство — кабель получше плюс жирный конденсатор. Почини рейл — и загадочные вылеты, отвалы Wi-Fi и «случайные» ребуты просто прекращаются.
Цепляешь 5-вольтовые детали к 3,3-вольтовому ESP32? Не сожги заодно пин.