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
| Параметр | ESP8266EX | ESP32 |
|---|---|---|
| Ядро | одно Tensilica L106, до 160 МГц | два Xtensa LX6, до 240 МГц |
| Радио | Wi-Fi 802.11 b/g/n | Wi-Fi и Bluetooth |
| GPIO | 17 | 34 |
| АЦП | один, 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 | только RTC | 20 мкА |
| Выключение | — | 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 в нуле во время сброса переводит чип в режим прошивки. Нагрузка, которая тянет эти выводы не туда, мешает запуску. Подключайте внешние схемы к другим выводам.
Источники
- 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 мА
- Espressif. esptool Documentation (latest), ESP8266: Boot Mode Selection — GPIO15 подтянут к земле, GPIO2 к питанию или свободен — иначе ничего не работает; в режиме загрузки GPIO2 становится выходом UART TX, поэтому его нельзя напрямую подключать к питанию; GPIO0 в нуле при сбросе — загрузчик, в единице — запуск программы; автосброс DTR → GPIO0, RTS → EN; журнал загрузки ПЗУ на 74880 бит/с
- Espressif. ESP32 Series Datasheet, v5.3 — для сравнения: два ядра до 240 МГц, Wi-Fi и Bluetooth, 34 GPIO, два 12-разрядных АЦП на 18 каналов, Deep-sleep 10 мкА
Нашли ошибку?
Смотрите также
- ESP32ESP32, S2, S3, C2, C3, C5, C6, H2, P4: ядра, радио, USB, GPIO — сравнение и выбор
- NodeMCU ESP8266D0–D10 и GPIO, выводы загрузки, A0, питание, прошивка
- Wemos D1 mini16 контактов, GPIO, выводы загрузки, A0, питание, I²C
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Прошивка ESP32Загрузчик ПЗУ, GPIO0 и автосброс, write-flash и адреса, ошибки esptool и питание