Можно ли перевести ESP8266 в режим загрузчика без FTDI?
Я пытаюсь загрузить что-то напрямую в ESP8266 с помощью ESP8266 IDE. Я настроил ESP8266 для связи на скорости 9600 с использованием UART_DEF, и я установил ESP8266 IDE на 9600. Я видел некоторые руководства, в которых говорится об использовании FTDI, но у меня есть только Последовательный кабель к TTL (обратите внимание, внизу даже написано, что это не подходит для ардуино :(), и я делаю следующие соединения:
- ESP8266 RX — TTL-кабель для передачи
- ESP8266 TX — кабель TTL RX
- ESP8266 GND — общая земля
- ESP8266 VCC — внешний 3,3 В
- Земля от внешнего источника 3,3 В — общая земля.
- ESP8266 GPI0 (через резистор 10 кОм) — общий GND
- ESP8266 GPI2 (через резистор 10 кОм) — внешнее 3,3 В
- EPS8266 CH_PD — внешнее 3,3 В (извините, раньше было неправильно)
Однако когда я загружаю этот скетч, я получаю сообщение об ошибке, что плата не найдена. Я читал в Интернете, что ESP имеет некоторый режим загрузчика, который необходимо активировать, но не нашел подробных инструкций о том, как это сделать. Будем признательны за любые советы.
К вашему сведению, у меня также есть Uno, если это поможет. Раньше я связывался с ESP8266 через Uno (подключение сброса Uno к земле).
@garson, 👍0
Обсуждение1 ответ
Лучший ответ:
Кабель, на который вы указываете, подходит для программирования ESP8266. Единственная причина, по которой это не «хорошо» для Arduino, заключается в отсутствии сигнала DTR для запуска сброса для вас, что вы все равно можете сделать вручную и по-прежнему использовать его для Arduino (если ваши реакции достаточно быстры).
У вас нет такой проблемы с ESP8266. Как только вы переведете его в режим загрузчика, он останется в режиме загрузчика, пока вы не скажете ему выйти из режима загрузчика.
Сначала убедитесь, что ESP8266 действительно настроен для правильной работы. Это означает:
- Подключите CH_PD к 3,3 В, а не к GND, через нагрузочный резистор.
- Подключите GPIO0 к 3,3 В через подтягивающий резистор.
- Подключите RST к 3,3 В через нагрузочный резистор.
Тогда для простоты программирования:
- Подключите кнопку между RST и GND.
- Подключите кнопку между GPIO0 и GND.
Чтобы войти в режим загрузчика, просто нажмите и удерживайте кнопку GPIO0, нажмите кнопку RST, затем отпустите кнопку GPIO0. Когда вы успешно загрузили прошивку, просто нажмите кнопку RST, чтобы выйти из режима загрузчика.
Платы ESP8266 со встроенным интерфейсом USB обычно используют оба контакта DTR, и RTS для виртуального управления обеими этими кнопками. Это несколько сложно организовать для внешнего адаптера USB-TTL UART, поэтому проще просто нажимать кнопки вручную.
Вот ссылка на веб-сайт, на котором подробно описана схема и работа на примере ESP-01.
новые модули esp-01S имеют подтяжку на io 0 и CH-PD, подключенные к Vcc «на борту», @Juraj
@Juraj Действительно, так и есть, однако ОП никогда не упоминал, какой модуль ESP8266 (если есть) они используют., @Majenko
Вау, это отличное начало! Это все еще не работает для меня. Я использую более низкий резистор на соединении CH_PD и GPIO2 - VCC (500 Ом), может ли это быть причиной? Вот изображение моей установки, если это поможет... https://imgur.com/a/miZuQN9, @garson
Это совсем не помощь. Все, что я вижу, это пучок бессмысленных проводов. Там даже ESP8266 нет. Какой модуль вы используете?, @Majenko
Согласно этому сайту, я думаю, что у меня есть ESP8266-01, но я не совсем уверен, как это проверить, просто взглянув на него. https://www.esp8266.com/wiki/doku.php?id=esp8266-модуль-семейство, @garson
ESP-01 — это подключаемый модуль с контактами 2x4 на одном конце. Это то, что у вас есть, правильно?, @Majenko
Возьмите себе один из них: https://www.ebay.co.uk/itm/322466871464 - или что-то подобное. Убедитесь, что на нем есть переключатель для переключения между программированием и обычным режимом работы., @Majenko
Да, у меня штифты 2х4. Значит, невозможно запрограммировать ESP8266-01 без одного из них?, @garson
Это возможно - если вы правильно следуете инструкциям. Этот адаптер значительно упрощает работу — никаких проводов, с которыми можно возиться. У меня их три ;), @Majenko
Да, я до сих пор не смог заставить его работать. Самое близкое, что я получил, это сделать все, что вы написали выше, но отключить GPIO2, тогда, по крайней мере, он начнет загрузку и скажет Запись по адресу 0x00000000... (8%) Traceback (последний последний вызов): ... но затем я получаю «Файл "C:/Users/nickc/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/pyserial\serial\serialwin32.py", строка 323, запись поднять writeTimeoutError', @garson
Обновление: чудо из чудес, оно работает! Спасибо за вашу помощь. Что мне нужно было сделать, так это 1) отключить/повторно включить ESP8266 перед выполнением последовательности загрузки и 2) установить светодиод IDE BUILTIN на контакт 1, после чего все заработало!, @garson
- ESP8266, печатает готово при запуске, но не отвечает на AT-команду
- Прошивка ESP8266 ESP-12E/12F
- Использование Arduino UNO для загрузки скетча в Espresso Lite v2
- AT-команда не отвечает на последовательный монитор
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет
провод io 0 к gnd без резистора на момент запуска esp8266. esp8266 переводится в режим прошивки с io 0 LOW при запуске. но модуль может иметь подтяжку на io 0 для нормального запуска., @Juraj
В прошивке скорость передачи UART не имеет ничего общего со скоростью загрузки. загрузчик определяет скорость передачи, @Juraj
Подключение CH_PD к земле отключает ESP8266., @tttapa