Как заставить ESP8266 работать в режиме обновления?

Я пытался заставить свой WiFi-модуль ESP8266 работать в «режиме обновления», когда вы подключаете GPIO_0 к земле. Плата работает, когда GPIO_0 отключен от земли, и я могу использовать AT-команды для связи с ней через последовательный монитор Arduino. Вот что он печатает при подключении:

 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

rrlÌÿ
Ai-Thinker Technology Co.,Ltd.

ready

Однако я не могу делать большинство вещей, так как прошивка устарела. В результате я пытаюсь обновить его (без успеха)

Когда я устанавливаю его в режим обновления и использую инструмент python "esptool.py ", скрипту не удается подключиться к плате ESP. Ниже приведена команда:

python esptool.py -p /dev/ttyUSB0 write_flash 0x00000 "/home/aditya/Desktop/v0.9.2.2 AT Firmware.bin"

Ниже приведен вывод:

Connecting...
Traceback (most recent call last):
  File "esptool.py", line 532, in <module>
    esp.connect()
  File "esptool.py", line 159, in connect
    raise Exception('Failed to connect')
Exception: Failed to connect

Я даже запускал аналог этого инструмента для Windows "ESP Flasher" без везения

Тот, кто поможет, получит куки (если вы не цените конфиденциальность)


person Aditya N G    schedule 08.11.2015    source источник


Ответы (2)


Этот инструмент (esptool.py) работает с загрузчиком ПЗУ, который запускается только в том случае, если GPIO_0 привязан к GND во время аппаратного сброса. Загрузчик также довольно быстро отключается, поэтому недостаточно просто подключить GPIO_0 к земле.

Для меня следующие работы:

  1. Подключите TXD/RXD/GND/VCC к ПК и CH_PD к VCC;
  2. Убедитесь, что я могу общаться с прошивкой через терминал (picocom/minicom/etc);
  3. Подключите GPIO_0 к GND;
  4. Подключите RST к GND;
  5. Выпустить РСТ;
  6. Запустите esptool.py

Если все еще нет кости, поменяйте местами 5 и 6 выше, т.е. сначала запустите esptool.py, затем (как можно быстрее) отпустите/отключите RST. У вас будет всего одна или две секунды до истечения времени ожидания esptool.py.

person Aex Aey    schedule 08.11.2015

Попробуйте сделать заземление всех подключенных устройств: если у вас есть переключатель уровня между ними, убедитесь, что GND подключен к GND Arduino, а также к GND RS232.

person P. Kisfaludi    schedule 11.11.2015