Можно ли перевести 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 к земле).

, 👍0

Обсуждение

провод io 0 к gnd без резистора на момент запуска esp8266. esp8266 переводится в режим прошивки с io 0 LOW при запуске. но модуль может иметь подтяжку на io 0 для нормального запуска., @Juraj

В прошивке скорость передачи UART не имеет ничего общего со скоростью загрузки. загрузчик определяет скорость передачи, @Juraj

Подключение CH_PD к земле отключает ESP8266., @tttapa


1 ответ


Лучший ответ:

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