Embedded HandbookПриложения
Все разделы › XVIII. ESP32: второй микроконтроллер
ESP32 · уровень средний · 8 мин чтения
Открыть в интерактивном справочнике

161. Питание и нагрузки вокруг ESP32: стабилизатор, пики Wi-Fi, ключи, реле и выбросы

Самая частая «программная» беда ESP32 — вовсе не программа. Модуль перезагружается ровно в тот момент, когда включает Wi-Fi; реле, подключённое к выводу, не щёлкает; через неделю работы выгорает ключ. У всех трёх одна природа — питание и нагрузки вокруг чипа.

Здесь три модели в ngspice 39 (образ stm-lab:1, файлы _verify/esp161/): провал шины 3,3 В на пике тока передатчика, ключ для катушки реле и выброс при её выключении. Токи ESP32 — из выписки даташита раздела 157, порог перезапуска — из раздела 150. Числа моделей — не измерение на конкретной плате: реальные стабилизатор, конденсатор и транзистор дадут другие, но порядок величин и выводы те же.

Как это называется в документации

Оригинал Перевод
LDO (low-dropout regulator) линейный стабилизатор с малым падением
dropout voltage минимальная разница вход — выход, при которой стабилизатор держит выход
output impedance, load transient выходное сопротивление, реакция на скачок нагрузки
ESR (equivalent series resistance) эквивалентное последовательное сопротивление конденсатора
brownout detector детектор просадки питания: перезапуск при низком напряжении
peak current пиковый ток
low-side switch ключ между нагрузкой и землёй
logic-level MOSFET транзистор, полностью открывающийся от логического уровня
flyback (freewheeling) diode диод, гасящий выброс катушки
TVS diode супрессор: ограничитель импульсных перенапряжений

161.1 Сколько берёт ESP32

Питание ESP32 и нагрузка через ключ: USB 5 В, стабилизатор 3,3 В, конденсатор у модуля; вывод управляет катушкой реле через NPN или MOSFET, диод параллельно катушке гасит выброс

По даташиту (раздел 157) ESP32 со спящим радио на 80 МГц берёт 20–31 мА, а при передаче 802.11b — 240 мА. Переход между ними занимает микросекунды: программа включает передатчик, и ток модуля вырастает больше чем вдесятеро. Для стабилизатора это скачок нагрузки, на который он отвечает не мгновенно.

240 мА — типичное значение из таблицы, снятое при передаче с заполнением 50 %, а не наибольший ток: сам даташит советует брать для ESP32 источник 3,3 В на 500 мА и больше.


161.2 Провал на пике Wi-Fi: конденсатор у модуля

Модель: стабилизатор 3,3 В с выходным сопротивлением 50 мОм, медленную реакцию его обратной связи задаёт индуктивность 10 мкГн последовательно с выходом; у модуля — конденсатор с ESR 50 мОм; ток скачком с 20 до 240 мА. Результат по трём ёмкостям:

Конденсатор у модуля Самое низкое напряжение Провал
10 мкФ 3,08 В 215 мВ
100 мкФ 3,23 В 66 мВ
470 мкФ 3,27 В 30 мВ

Пока стабилизатор догоняет, ток пика берёт конденсатор. С 10 мкФ шина проседает на 215 мВ, до 3,08 В; со 100 мкФ провал 66 мВ, с 470 мкФ — 30 мВ. После пика напряжение устанавливается на 3,288 В: 240 мА на 50 мОм выходного сопротивления дают 12 мВ.

Если заложить ток, на который даташит советует рассчитывать источник, — 500 мА, — та же модель проседает вдвое с лишним глубже: с 10 мкФ — на 468 мВ, до 2,83 В; со 100 мкФ — на 143 мВ; с 470 мкФ — на 65 мВ.

Провал шины 3,3 В при скачке тока с 20 до 240 мА для трёх конденсаторов у модуля: с 10 мкФ минимум 3,08 В, провал 215 мВ; со 100 мкФ 3,23 В и 66 мВ; с 470 мкФ 3,27 В и 30 мВ; после пика напряжение 3,288 В; порог детектора просадки 2,43 В далеко внизу, но на плате к провалу добавляются кабель и стабилизатор

Порог детектора просадки ESP32 по умолчанию — 2,43 В (раздел 150). Модель до него далеко не доходит, а на плате — доходит: провода от источника, тонкий кабель USB и дешёвый стабилизатор с большим выходным сопротивлением складываются с провалом. Поэтому правило одно — рядом с модулем 10 мкФ керамики и 100 мкФ и больше на шине 3,3 В, и питание не через длинный тонкий кабель.


161.3 Кабель USB и падение на стабилизаторе

Линейному стабилизатору нужен запас между входом и выходом — падение (dropout); у старых стабилизаторов с отладочных плат оно заметно больше, чем у современных с малым падением. Всё, что стоит до стабилизатора, этот запас съедает: тонкий длинный кабель USB, разъём с плохим контактом, диод защиты от переполюсовки. На пике тока передатчика напряжение на входе проседает, стабилизатор выходит из режима, и следом проседает шина 3,3 В. Отсюда классическая картина: от одного блока питания плата работает, от порта компьютера через длинный кабель — перезагружается при подключении к Wi-Fi. Стабилизатор с малым падением, короткий толстый кабель и конденсатор на входе стабилизатора решают это дешевле, чем поиск ошибки в программе.

Пример с числами. Порт компьютера по стандарту USB 2.0 даёт 4,75–5,25 В. Кабель длиной 1 м с жилами питания 28 AWG (0,21 Ом на метр, туда и обратно — 0,43 Ом) на пиковых 0,5 А теряет 0,21 В, диод Шоттки защиты — ещё около 0,36 В (модель раздела 169). От порта на нижнем краю стандарта до стабилизатора доходит 4,75 − 0,21 − 0,36 ≈ 4,2 В. У AMS1117 — частого стабилизатора отладочных плат — падение около вольта, и на входе ему нужно не меньше 4,3 В: на пике тока выход идёт вниз вслед за входом. Стабилизатору с падением 0,2 В хватило бы и 3,5 В.


161.4 Вывод не тянет реле: ключ на транзисторе

Катушке реле на 5 В с сопротивлением 70 Ом нужно 5 / 70 = 71,4 мА и пять вольт. Вывод ESP32 даёт 3,3 В и до 40 мА — и то лишь на максимальной силе выхода (раздел 153.2); к тому же при выключении катушка выдаёт выброс. Поэтому между ними ставят ключ: нагрузка — к +5 В, ключ — между нагрузкой и землёй. Модель двух вариантов, ключ открыт выводом 3,3 В:

npn: Ib_A=0.00250827 Ic_A=0.0698165 Vce_V=0.112847
mosfet: Id_A=0.0713696 Vds_V=0.00412546

NPN с резистором базы 1 кОм берёт из вывода 2,5 мА и пропускает через катушку 69,8 мА; на самом транзисторе остаётся 0,11 В — он в насыщении. MOSFET с порогом 1,5 В пропускает 71,4 мА, а на нём падает 4 мВ, и ток затвора в установившемся режиме равен нулю.


161.5 NPN или MOSFET

Сам вывод под ключ выбирают без особой роли при сбросе. Пять strapping-выводов — 0, 2, 5, 12 и 15 (раздел 153.3) — защёлкивают уровень в момент сброса, и обвязка ключа его меняет: резистор 10 кОм от затвора к земле пересиливает внутреннюю подтяжку 45 кОм, на GPIO0 остаётся 0,6 В — ниже порога нуля 0,825 В, и чип уходит в режим прошивки; база NPN через 1 кОм тянет GPIO0 так же, до 0,77 В. На GPIO15 тот же резистор выключит журнал загрузки, а ключ с подтяжкой вверх на GPIO12 переведёт питание флеш-памяти на 1,8 В. Выводы 1 и 3 — TX и RX UART0: TX при сбросе подтянут вверх и сразу передаёт журнал, так что ключ на нём включится при старте и задёргается. Подойдут 16–19, 21–23, 25–27, 32 и 33: при сбросе у них нет ни подтяжек, ни особой роли (у модулей с PSRAM 16 и 17 заняты ею).


161.6 Выброс катушки и диод

Ток через катушку не может исчезнуть мгновенно. Когда ключ закрывается, катушка разгоняет напряжение на стоке, пока ток не найдёт путь. Модель катушки 70 Ом / 100 мГн, выключение ключа:

diode=0 Vpeak_V=60.211
diode=1 Vpeak_V=5.84563

Без диода напряжение на ключе доходит до 60 В — до пробоя транзистора в модели. Настоящий ключ так пробивается каждое выключение и однажды выходит из строя, а выброс по земле и питанию сбрасывает ESP32. С диодом параллельно катушке (катодом к +5 В) выброс ограничен 5,8 В: питание плюс падение на диоде, а ток катушки спокойно затухает через диод.

Простой диод затягивает отпускание: ток катушки спадает медленно, контакты расходятся позже и дольше искрят. Где это важно, последовательно с диодом ставят стабилитрон. Выброс тогда ограничен питанием плюс напряжением стабилитрона — оно должно быть меньше предела ключа. В той же модели со стабилитроном на 24 В выброс 30 В, а ток падает до 10 % за 0,23 мс вместо 2,2 мс с одним диодом.

Для реле и моторов диод обязателен. Если нагрузка далеко, на длинных проводах, ставят ещё и супрессор (TVS) на входе платы: он ограничивает импульсы, пришедшие снаружи.


161.7 Грабли

Симптом Причина
ESP32 перезагружается при включении Wi-Fi провал шины 3,3 В: мало ёмкости у модуля, тонкий кабель, слабый стабилизатор
перезагрузки только от USB компьютера длинный кабель и разъём съедают запас стабилизатора
реле не щёлкает от вывода вывод даёт 3,3 В и не больше 40 мА, а катушке нужно 5 В и 71 мА — нужен ключ
MOSFET греется, реле щёлкает неуверенно транзистор не логический: от 3,3 В открыт не полностью
при включении платы реле дёргается затвор без резистора к земле, вывод при загрузке не настроен
после установки ключа плата не грузится или ждёт прошивку ключ на strapping-выводе (0, 2, 5, 12, 15) меняет уровень, защёлкнутый при сбросе
ключ выгорает через неделю нет диода на катушке: выброс до пробоя на каждом выключении
ESP32 сбрасывается при выключении реле или мотора выброс катушки уходит по земле и питанию
транзистор в насыщении не держит ток мал ток базы: резистор базы слишком большой

161.8 Итоги

Дальше: раздел 162 «Однополярный тракт под АЦП: y = m·x + b».

Открыть в интерактивном справочнике