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

ESP8266: что умеет, чем отличается от ESP32 и как с ним работать

ESP8266 — чип, с которого началась популярность Wi-Fi-модулей Espressif: на нём платы NodeMCU и WeMos D1 mini. По даташиту версии 7.1 Espressif перевела его в статус «не рекомендуется для новых разработок». Разбираем, чем он отличается от ESP32, какие у него выводы и ограничения и как он засыпает и просыпается.

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

ESP8266EX — Wi-Fi-микроконтроллер Espressif с ядром Tensilica L106 и питанием 2,5–3,6 В: на нём построены, например, платы NodeMCU и WeMos D1 mini. Важная деталь из даташита: в версии 7.1 (ноябрь 2025) Espressif изменила статус чипа на NRND — Not Recommended for New Designs. Для старых проектов он по-прежнему годится, а новые разумнее начинать на ESP32 или его младших RISC-V-родственниках.

ESP8266 и ESP32

ПараметрESP8266EXESP32
Ядроодно Tensilica L106, до 160 МГцдва Xtensa LX6, до 240 МГц
РадиоWi-Fi 802.11 b/g/nWi-Fi и Bluetooth
GPIO1734
АЦПодин, 10 бит, 0–1,0 Вдва, 12 бит, 18 каналов
Глубокий сон20 мкА10 мкА
ОЗУ для программыоколо 50 КБ в режиме станции—
СтатусNRND с версии даташита 7.1в производстве

Программа у ESP8266 хранится во внешней SPI-флеш: по даташиту встроенной программируемой ПЗУ нет. Флеш нужна не меньше 512 КБ, а для обновления по сети (OTA) — не меньше 1 МБ.

Выводы и загрузка

Из 17 GPIO многие заняты. GPIO6–GPIO11 по даташиту подключены к флеш-памяти, GPIO1 и GPIO3 — это UART0, через который идёт прошивка. При сбросе три вывода выбирают режим — по документации esptool:

ВыводТребованиеЧто будет иначе
GPIO15подтянут к землеESP8266 не загрузится ни в каком режиме
GPIO2подтянут к питанию или свободенне загрузится; напрямую на питание не подключать — в режиме прошивки это выход UART TX
GPIO0ноль во время сброса — режим прошивки, единица — запуск программы—

Внутренние подтяжки по даташиту есть у всех GPIO, но у GPIO16 — только вниз, у остальных — только вверх. Отсюда правило: датчики, реле и светодиоды подключают так, чтобы они не тянули GPIO0, GPIO2 и GPIO15 в неправильную сторону при сбросе. Подробнее о выводах обвязки загрузки — в статье о strapping-выводах.

Журнал загрузки. Загрузчик ПЗУ ESP8266 печатает сообщения на необычной скорости — 74880 бит/с. Если в мониторе порта при сбросе видны «иероглифы», переключите его на эту скорость: там будет причина сброса и режим загрузки. Сама прошивка через esptool устроена так же, как у ESP32, включая автосброс линиями DTR и RTS, — см. статью «Прошивка ESP32».

АЦП

По даташиту у ESP8266 один 10-разрядный АЦП последовательного приближения на выводе TOUT. Он умеет либо измерять внешнее напряжение на TOUT, либо — без внешней схемы — напряжение питания чипа, но не то и другое одновременно. Режим задаётся в данных инициализации радио.

Главное ограничение — диапазон: на вывод TOUT можно подавать от 0 до 1,0 В. Большее напряжение подают через делитель. На многих отладочных платах делитель уже стоит перед выводом A0 — его коэффициент смотрят по схеме конкретной платы, а не по даташиту чипа. Например, у NodeMCU по её схеме вход A0 принимает до 3,2 В.

Режимы сна

По таблице 3-4 даташита:

РежимЧто работаетТок
Activeрадиопередача 120–170 мА, приём 50–56 мА
Modem-sleepпроцессор, радио выключено между маяками15 мА
Light-sleepпроцессор и периферия приостановлены0,9 мА
Deep-sleepтолько RTC20 мкА
Выключение—0,5 мкА

Пробуждение из глубокого сна. У ESP8266 нет выбора источников, как у ESP32. Даташит требует соединить вывод XPD_DCDC — это GPIO16 — с выводом сброса EXT_RSTB: в момент пробуждения GPIO16 формирует сигнал сброса на EXT_RSTB, и чип перезапускается. Пробуждение — это сброс, программа начинается сначала, а без этой перемычки чип из сна сам не выйдет. Отсюда и практическое следствие: GPIO16 занят, если нужен сон с пробуждением по таймеру.

Сколько это даёт на практике, Espressif показывает на примере датчика, который измеряет, спит и подключается к точке доступа за 0,3–1 с: средний ток получается меньше 1 мА. Даташит уточняет, что 20 мкА в глубоком сне измерены при питании 2,5 В.

Сравнить с режимами ESP32, где источников пробуждения больше, а ток сна вдвое меньше, можно в статье «Глубокий сон ESP32».

Частые вопросы

Чем ESP8266 отличается от ESP32?

ESP8266 по даташиту Espressif — одно ядро Tensilica L106 до 160 МГц, только Wi-Fi, 17 GPIO и один 10-разрядный АЦП на 0–1 В. У ESP32 два ядра до 240 МГц, Wi-Fi и Bluetooth, 34 GPIO и два 12-разрядных АЦП на 18 каналов. Кроме того, ESP8266 с версии даташита 7.1 не рекомендуется для новых разработок.

Как разбудить ESP8266 из глубокого сна?

Соединить вывод GPIO16 (XPD_DCDC) с выводом сброса EXT_RSTB — так требует даташит. В момент пробуждения GPIO16 сбрасывает чип через EXT_RSTB. Пробуждение у ESP8266 — это сброс: программа начинается сначала. На платах NodeMCU и WeMos D1 mini GPIO16 выведен как D0, и его соединяют с RST перемычкой.

Какое напряжение можно подать на аналоговый вход ESP8266?

На вывод TOUT самого чипа — от 0 до 1,0 В, по даташиту Espressif. АЦП 10-разрядный и один. Большее напряжение подают через делитель. На многих платах, например NodeMCU и WeMos D1 mini, делитель уже стоит на входе A0 — его коэффициент смотрят по схеме конкретной платы.

Почему ESP8266 не загружается после подключения датчика?

Скорее всего, датчик изменил уровень на strapping-выводе. По документации esptool для любой загрузки GPIO15 должен быть в нуле, GPIO2 — в единице или свободен, а GPIO0 в нуле во время сброса переводит чип в режим прошивки. Нагрузка, которая тянет эти выводы не туда, мешает запуску. Подключайте внешние схемы к другим выводам.

Источники

  1. Espressif. ESP8266EX Datasheet, Version 7.1 (2025.11) — история версий — в версии 7.1 статус изменён на NRND; табл. 1-1 — 802.11 b/g/n, питание 2,5–3,6 В, средний ток 80 мА, −40…125 °C, QFN32 5 × 5 мм; разд. 2 — выводы: TOUT (АЦП), CHIP_EN, XPD_DCDC/GPIO16 для пробуждения из Deep-sleep при соединении с EXT_RSTB, GPIO6–11 к флеш, U0RXD и U0TXD для прошивки; разд. 3.1 — L106 до 160 МГц, около 50 КБ ОЗУ для программы в режиме станции, программа во внешней SPI-флеш до 16 МБ, не меньше 512 КБ без OTA и 1 МБ с OTA; табл. 3-4 — Modem-sleep 15 мА, Light-sleep 0,9 мА, Deep-sleep 20 мкА, выключение 0,5 мкА; разд. 4.1 — 17 GPIO, у GPIO16 только подтяжка вниз, у остальных — вверх; разд. 4.9 — АЦП 10 бит, TOUT 0–1,0 В или измерение питания, не одновременно; табл. 5-3 — передача 120–170 мА, приём 50–56 мА
  2. Espressif. esptool Documentation (latest), ESP8266: Boot Mode Selection — GPIO15 подтянут к земле, GPIO2 к питанию или свободен — иначе ничего не работает; в режиме загрузки GPIO2 становится выходом UART TX, поэтому его нельзя напрямую подключать к питанию; GPIO0 в нуле при сбросе — загрузчик, в единице — запуск программы; автосброс DTR → GPIO0, RTS → EN; журнал загрузки ПЗУ на 74880 бит/с
  3. Espressif. ESP32 Series Datasheet, v5.3 — для сравнения: два ядра до 240 МГц, Wi-Fi и Bluetooth, 34 GPIO, два 12-разрядных АЦП на 18 каналов, Deep-sleep 10 мкА

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