Блог
Режим загрузки ESP32: BOOT и flash mode
Режим загрузки — это состояние, в котором ESP32 принимает новую прошивку, — ответ на половину проблем с прошивкой в интернете. Когда он нужен, как в него войти и почему одни платы делают это автоматически, а другие нет.
Как перевести ESP32 в режим загрузки?
Зажмите BOOT, нажмите EN, отпустите обе. BOOT держит GPIO0 на земле, EN перезагружает чип, и ROM ждёт serial вместо запуска прошивки. Как перевести esp32 в режим загрузки — этот танец на каждом классическом devkit, и это первая починка при таймауте прошивки; руководство по прошивке разбирает весь процесс.
Как войти в режим загрузки ESP32?
Тот же танец, другие слова — большинству современных плат он вообще не нужен: USB-чип сам переключает GPIO0 во время загрузки. Ручной вход — зажать BOOT, нажать EN, отпустить; автоматический он или ручной, состояние чипа одинаково. Уметь переводить esp32 в режим загрузки руками — полезный запасной вариант.
Как перевести ESP32 в flash-режим?
Flash-режим и режим загрузки — одно и то же состояние под двумя именами: ROM принимает новую прошивку. esptool, Arduino и PlatformIO входят в него автоматически перед записью. Если инструмент не может — зажмите BOOT и нажмите EN, пока он ждёт. Как перевести esp32 в flash-режим, на самом деле про тайминг: войти в режим до начала записи.
Как перевести ESP32 в режим BOOT?
«Режим BOOT» — двусмысленное название: обычная загрузка (запуск прошивки) или режим загрузки (ожидание serial). Обычная загрузка — это включение питания; загрузка прошивки — танец с кнопками. Как перевести esp32 в режим boot — зависит от того, что вам нужно: ничего для обычной загрузки, BOOT+EN для прошивки. Когда руководство говорит «режим boot», обычно имеется в виду загрузка прошивки.
Как запустить ESP32?
Подайте питание — вот и вся процедура. Чип выполняет ROM, читает флеш и прыгает в вашу прошивку по адресу 0x1000; никаких кнопок и специальных последовательностей. Как запустить esp32 становится интересно только когда обычная загрузка не нужна: зажмите BOOT при подаче питания — и попадёте в режим загрузки.
Как задать ESP32 режим загрузки?
На devkit — танец с кнопками; на голых модулях замкните GPIO0 на землю при перезагрузке, затем отпустите. Некоторые платы ESP32-C3 и C6 не имеют подписанной кнопки EN, так что держите BOOT и на миг переподключите USB; подписи на текстолите разнятся дико. Как задать esp32 режим загрузки — это всегда удержание GPIO0 на земле при перезагрузке; кнопки просто удобный способ.
Как перевести ESP32 в режим загрузки через esptool?
esptool делает это за вас: он импульсами DTR/RTS входит в режим загрузки перед записью — так ведёт себя esptool.py –port COM7 write_flash по умолчанию. Когда он падает с «Failed to connect», держите BOOT и нажимайте EN, пока он повторяет попытки. Как перевести esp32 в режим загрузки со стороны инструмента — один флаг; со стороны вас — тайминг.
Не получается перевести ESP32 в режим загрузки — почему?
Обычно с чипом всё в порядке, просто хост его не видит: неверный COM-порт, кабель «только зарядка» или отсутствующий драйвер. Проверьте через esptool.py chip_id: если чип прочитался — вы уже были в режиме. Когда «не получается перевести esp32 в режим boot» это буквальная проблема — обычно решает второй кабель. В нашей базе знаний есть чек-лист драйверов.
Как перевести ESP32 в режим загрузки из кода?
Никак — режим загрузки решается при перезагрузке, до запуска любой прошивки. Что можно сделать — перезапуститься с зажатым на земле GPIO0, что следующая загрузка прочитает как запрос на загрузку прошивки: замкните GPIO0 на GND, затем ESP.restart(). Для обычной перезагрузки как перезагрузить esp32 — просто ESP.restart() без касания пинов.
Всем ли платам ESP32 нужен танец с кнопками?
Нет. Платы ESP32-S3, C3 и C6 с нативным USB обычно входят в режим загрузки автоматически — за это отвечает контроллер USB-serial-JTAG у S3. Классические наборы на WROOM и WROVER тоже обычно входят сами, если не подсунуть странный кабель, драйверы Windows или клон с капризной цепью автоперезагрузки. Танец — это запасной вариант, который работает всегда; нужен ли он вам, зависит от платы — основы плат объясняют различия.
Проекты по этой теме запускаются прямо в бесплатном симуляторе sensbench: схема уже собрана, прошивка включена — без аккаунта и установки.