Перейти к содержанию

Почему ESP32 в deep sleep потребляет больше, чем в даташите?

Обновлено Редакция GAW

10 мкА в даташите ESP32 — ток одного чипа в режиме deep sleep с работающими таймером RTC и памятью RTC. Это типичное значение без указанного максимума. Отладочная плата и даже модуль на своей плате почти всегда потребляют во сне больше — иногда в сотни раз.

Где теряются микроамперы

Что потребляетСколькоЧто сделать
Стабилизатор 3,3 ВLM1117: около 5 мА собственного токастабилизатор с малым током покоя
Мост USB–UART, светодиод питаниязависит от платы, часто больше чипапитать модуль в обход, светодиод выпаять
Пара «внешняя подтяжка + встроенная к земле»около 60 мкА при 10 и 45 кОм (наш расчёт)rtc_gpio_isolate() для вывода
Работающий ULP150 мкА вместо 10 мкАULP только при необходимости
Пробуждение ext0периферия RTC остаётся под питанием, цифры в даташите нетext1 или таймер
Light sleep вместо deep sleep0,8 мАпроверить, какой режим включён

Наш расчёт: 5 мА стабилизатора — это в 500 раз больше 10 мкА чипа. Такую плату батарея 2000 мА·ч питает меньше 17 суток, даже если ESP32 спит всё время.

Подтяжки и выводы RTC

ESP-IDF предупреждает: у ряда выводов встроенные подтяжки включены по умолчанию, и если внешняя схема держит вывод в противоположном уровне, через подтяжку во сне течёт ток. Пример Espressif — модуль ESP32-WROVER, у которого GPIO12 подтянут снаружи вверх, а внутри чипа — вниз. Лечится вызовом rtc_gpio_isolate(GPIO_NUM_12) перед esp_deep_sleep_start(); так же изолируют другие выводы, к которым во сне подключена внешняя схема. Про подтяжки кнопок — в ответе «Нужен ли резистор для кнопки на ESP32».

Источник пробуждения

С включённым сопроцессором ULP ток чипа по табл. 4-2 даташита — 150 мкА. С ext0, по ESP-IDF, во сне остаётся под питанием домен периферии RTC; отдельной цифры для этого случая в даташите нет, но ток выше, чем с одним таймером (наш вывод). Для кнопки, если ток важен, выбирают ext1 или пробуждение по таймеру. Флеш-память заботы не требует: esp_deep_sleep_start() всегда отключает её питание.

Как найти виновника

Сначала измерьте ток сна правильно — микроамперным пределом или шунтом, см. «Как измерить ток микроконтроллера в режиме сна». Потом сравните ток всей платы и модуля, запитанного 3,3 В напрямую. Как ток сна и время бодрствования складываются в срок службы батареи, посчитает калькулятор тока ESP32 во сне, а настройка режимов сна разобрана в статье «Глубокий сон ESP32».

Похожие вопросы

Сколько потребляет голый ESP32 в deep sleep?

По табл. 4-2 даташита — 10 мкА типично, когда работают только таймер RTC и память RTC; с сопроцессором ULP — 150 мкА, в hibernation — 5 мкА. Максимальных значений Espressif для этих режимов не приводит, поэтому у отдельного экземпляра и при нагреве ток может быть выше.

Сколько тока уносит одна подтяжка во сне?

Наш расчёт: если внешний резистор 10 кОм тянет вывод к 3,3 В, а встроенная подтяжка около 45 кОм — к земле, через пару течёт 3,3 / 55 000 ≈ 60 мкА. Это в шесть раз больше тока спящего чипа. ESP-IDF для такого случая советует rtc_gpio_isolate() перед уходом в сон.

Как проверить, кто потребляет: чип или плата?

Измерить ток сна дважды: всей платы от её входа питания и модуля отдельно, подав 3,3 В прямо на вывод питания модуля в обход стабилизатора и моста. Разница и есть потребление обвязки. Измерять нужно микроамперным пределом или шунтом, который закорачивают на время пробуждения.

Источники

  1. Espressif. ESP32 Series Datasheet v5.3 — табл. 4-2 — light-sleep 0,8 мА, deep-sleep с ULP 150 мкА, ULP 1 % — 100 мкА, таймер и память RTC — 10 мкА, hibernation 5 мкА, выключен 1 мкА (типичные значения, максимума нет); табл. 5-3 — встроенная подтяжка RPU и RPD около 45 кОм
  2. Espressif. ESP-IDF Programming Guide v6.1: Sleep Modes (ESP32) — Configuring IOs — встроенные подтяжки включены по умолчанию, ток через них растёт, если внешняя схема держит вывод; пример ESP32-WROVER: GPIO12 подтянут снаружи вверх и изнутри вниз, rtc_gpio_isolate(GPIO_NUM_12) перед esp_deep_sleep_start(); ext0 держит домен RTC_PERIPH включённым во время сна; у ревизий 0 и 1 ESP32 ext0 несовместим с ULP и касанием, а ULP и касание требуют RTC_PERIPH в режиме AUTO; esp_deep_sleep_start() отключает питание SPI-флеш
  3. Texas Instruments. LM1117 800-mA Low-Dropout Linear Regulator (SNOS412Q, January 2023) — Electrical Characteristics — ток покоя LM1117-3.3 и LM1117I-3.3: 5 мА типично при 25 °C

Нашли ошибку?