• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Не могу прошить ESP8266-01

abr_esp2866

New member
Добрый день! Модуль подключен к ардуино по такой схеме:


Собирал данную схему по статье ESP8266 и Arduino, подключение, распиновка. Модуль с родной прошивкой по данной схеме работает. Все команды AT отрабатывают. В общем, к схеме подключения претензии минимальные.

Начал прошивать по данному мануалу: ESP8266 прошивка, программирование в Arduino IDE. И теперь не могу добится от модуля ничего. Программирование вроде как проходит. По крайней мере, esptool ошибок не выдаёт:

esptool -vv -cd ck -cb 115200 -cp /dev/ttyUSB0 -ca 0x00000000 -cf /tmp/arduino_build_492355/Blink.ino.bin
esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
setting board to ck
setting baudrate from 115200 to 115200
setting port from /dev/ttyUSB0 to /dev/ttyUSB0
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
espcomm_upload_mem
opening port /dev/ttyUSB0 at 115200
tcgetattr
tcsetattr
serial open
opening bootloader
resetting board
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
trying to connect
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
espcomm_send_command: receiving 2 bytes of data
Uploading 226272 bytes from /tmp/arduino_build_492355/Blink.ino.bin to flash at 0x00000000
erasing flash
size: 0373e0 address: 000000
first_sector_index: 0
total_sector_count: 56
head_sector_count: 16
adjusted_sector_count: 40
erase_size: 028000
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
setting timeout 15000
setting timeout 100
espcomm_send_command: receiving 2 bytes of data
writing flash
................................................................................ [ 36% ]
................................................................................ [ 72% ]
............................................................. [ 100% ]
starting app without reboot
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2 bytes of data
closing bootloader

Во время экспериментов с разными параметрами заметил такую особенность, что выбранный бодрейт не влияет на ход процесса заливки прошивки. Я так понял, что esptool не проверяет успешность хода прошивки. Однако, перепробовал все скорости - не помогает.
Щё одну важную деталь, которую я заметил - после прошивки на скорости 115200 на порту появляется текст:
Код:
tail 8
chksum 0xef
csum 0xef
На других бодрейтах сообщение другое
Код:
0xef
csum 0xef
csum err
ets_m
Чем этот вывод примечателен - это тем, что в порт эту инфу не кидает никто, кроме модуля, ибо ардуина работает просто в роли преобразователя USB -> UART мимо контроллера. Ну а больше на порту никто и не сидит. Соответственно, есть предположение, что модуль не испорченный.
Второе же сообщение говорит о том, что прошивка на скорости 115200 проходит успешно, а на других скоростях завершается с ошибкой. Значит, бодрейт я выбрал правильный.

Пробовал откатывать к родной прошивке модуля, чтобы работать с командами AT, но безуспешно, и мне кажется, что причина в том же, что и не даёт залить кастомную прошивку. Но я не могу понять, что не даёт модулю запустить залитую прошивку. Может, кто сталкивался с таким? Помогите советом.
 
Последнее редактирование:

abr_esp2866

New member
Удалось при помощи wireshark пронаблюдать за процессом заливки прошивки. Оказывается, диагностические сообщения пишет не модуль, а сам esptool. По-ходу, дело оказалось не в модуле. Косяк в программной части программатора.
 

abr_esp2866

New member
Нет, всё-таки, что-то не так с модулем. Попробовал прошивать esptool из-под линукса
Код:
esptool -vv -cd ck -cb 115200 -cp /dev/ttyUSB0 -ca 0x00000000 -cf /tmp/arduino_build_492355/Blink.ino.bin
из-под windows
Код:
esptool -vv -cd ck -cb 115200 -cp COM3 -ca 0x00000000 -cf C:\arduino_build_492355\Blink.ino.bin
пробовал прошивать при помощи XTCOM_UTIL.exe по этой инструкции Прошивка WiFi модуля ESP8266 | Blablacode. Причём, пробовал прошивать и свою blink и стоковую.
Пробовал собрать SDK для прошивки по этому мануалу: Работа с ESP8266: Собираем компилятор и пишем первую прошивку. При помощи неё пробовал собрать blinky из статьи, а также стоковую.
Поигрался с esptool.py - интересная штука. Достаточно много опций, в том числе верификация и скачивание с флешки бинарного образа. Протестировал модуль со всех сторон: mac-адрес, chip ID, flash ID определяется. Образ, записанный на флешку, верифицируется по бинарным файлам. Попробовал скачать с флехи данные, которые были записаны ранее - один-в-один с бинарниками. Короче, флешка рабочая. Судя по тому, что обмен данными происходит, проц тоже живой.

Одного не пойму, почему залитая прошивка так и не хочет работать?
 

abr_esp2866

New member
Всё получилось достаточно прозаично. У меня погорел модуль. Спецификации говорят, что порт GPIO должен выдавать не более 6мА. Я же к нему подключил напрямую диод. Вот и результат. Купил новый модуль, он рабочий.
Есть надежда на то, что не работают только порты GPIO. Тогда можно будет попробовать использовать только RX и TX, которые работают.
 
Последнее редактирование:
Сверху Снизу