ESP8266 Урок 4. Прошиваем ESP-01



Продолжаем работу с микроконтроллером ESP8266, а вернее с FLASH-памятью, подключенной к ней для хранения ПО и настроек.

Сегодня мы попробуем в эту память что-нибудь записать, или, как говорят, прошить её, тем самым обновить программное обеспечение до другой более новой версии.

Также, при необходимости, мы теперь можем вернуть прошивку прошлой версии, которая была в модуле, так как в прошлом уроке мы её смогли считать и сохранить, причём в удобном виде.

Попробуем мы это сделать тремя способами. Первые два — с использованием программ с графическим интерфейсов Flash Download Tools и nodemcu-flasher, а третий — с командной строки при помощи утилиты esptool, с помощью которой мы считывали прошивку.

Для начала нам нужны, конечно же, файлы для прошивания памяти.

Скачаем необходимый SDK с официального сайта Espressif. В случае модуля ESP-01, мы, скорее всего не сможем воспользоваться третьей версией SDK, так как в ней нет прошивки, пригодной для схемы 512+512. Наши методы прошивания подойдут не только для модулей ESP-01, а и для любых других модулей, где установлен контроллер ESP8266, поэтому вполне можно и воспользоваться SDK3. Но в нашем случае мы скачаем последнюю на данный момент SDK 2.2.1 отсюда. Комплект нужен именно NONOS (без использования операционной системы).

Распакуем архив. Из него нам нужны будут для прошивания boot_v1.X.bin, версию подбираем, обычно последняя, файл esp_init_data_default_vXX.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл userX.1024.new.2.bin из папки bin\at\512+512.

Для начала давайте очистим полностью FLASH-память нашего модуля.

Сначала подключим нашу схему, которая с прошлых занятий не изменилась.

Запускаем командную строку, находясь сразу в каталоге с файлами прошивок, которые мы создали, когда считывали прошивку из модуля, переведём модуль в режим прошивки и отправим следующую команду

 

 

 

После удачного стирания памяти мы получим вот такое сообщение

 

 

Ещё раз уточним, что и с какого адреса прошивать, открыв мануал по AT

 

 

Теперь запустим Flash Download Tools и подключим файлы новой прошивки, прописав соответствующие адреса, заодно также подключим и файл blank.bin, который прошивается по трём адресам, но отмечать для прошивания мы его не будем, так как у нас память уже полностью очищена. Также выберем настройки внизу под наши параметры

 

 

Переводим модуль в режим прошивки и жмём кнопку START.

 

 

При удачном завершении операции мы получим вот такую картину

 

 

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

Запустим ESPlorer, настроим порт и перезагрузим наш контроллер. Если у нас всё прошилось удачно, мы увидим приблизительно вот это

 

 

Мы видим, что загрузчик у нас новой версии, SDK тоже.

Теперь попытаемся прошить наш модуль с помощью nodemcu-flasher.

Сначала не забываем отключиться от порта в ESPlorer, затем снова очистим нашу память с помощью утилиты esptool.

Запустим nodemcu-flasher, сначала перейдём там в раздел Config и аналогично подключим файлы прошивки и отметим только нужные файлы (если бы мы не стирали полностью FLASH, то blank.bin тоже отмечаем)

 

 

Переводим модуль в режим прошивки, переходим в программе nodemcu-flasher в раздел Operation и жмём кнопку Flash(F). Начнётся процесс заливки прошивки в FLASH-память модуля

 

 

При удачном исходе операции мы получим зелёную галку внизу

 

 

Как ни странно, у меня сейчас тоже всё прошилось. Обычно сразу три файла у меня никогда удачно не прошивались, только по очереди, и то не с первого раза. Посмотрим как пойдёт процесс при съёмке видеоверсии. Проверим наличие прошивки в программе ESPlorer. Если всё нормально, то у нас остался ещё третий метод прошивания FLASH-памяти модуля, а это утилита esptool.

Для удобства работы с ней мы скопируем из папки с новой прошивкой файлы boot_v1.7.bin, версию подбираем, обычно последняя, файл esp_init_data_default_v05.bin, я прошивал версию 05, файл blank.bin (если прошиваем неочищенную полностью память) из папки bin, а также файл user1.1024.new.2.bin в папку, которую мы сохраняли прошивку с модуля и в которой мы в данный момент находимся в режиме командной строки. Прошивать будем каждый файл по отдельности, хотя можно прошить и вместе.

Перейдём в командную строку и, соответственно, сначала очистим FLASH-память нашего модуля перед прошивкой.

Затем переведём модуль в режим прошивки и попытаемся прошить сначала самый маленький файл

 

 

Насчёт параметров, надеюсь тут всё понятно. Первый — это порт, к которому подключен модуль, второй — скорость порта, третий — метод прошивания (без сжатия), четвертый — частота шины SPI, пятый — её тип (обычный двухпроводной, а не QSPI), шестой — объём памяти FLASH в мегабитах, седьмой — адрес, с которого заливается файл прошивки, восьмой — имя файла прошивки, которую мы заливаем в FLASH.

При удачном исходе мы получим следующее сообщение

 

 

Подобным образом прошьём и остальные файлы, не забывая перед каждой командой переводить модуль в режим прошивания, хотя можно это делать и после, но, руководствуясь моим опытом, лучше ДО

 

 

Всё готово!

Проверим на всякий случай наличие прошивки в ESPlorer.

Таким же образом мы можем прошить наши файлы, которые мы считали в прошлом занятии, например, в том случае, если нам по каким-то причинам не понравится новое ПО, которое мы только что прошили.

Итак, на данном уроке мы научились прошивать модуль ESP-01, хотя вполне можно тем же образом прошивать и другие модули, основанные на микроконтроллере ESP8266. Для процесса прошивания мы использовали три метода. Какой метод лучше подходит — выбирать вам!

Всем спасибо за внимание!

 

 

Предыдущий урок Программирование МК ESP8266 Следующий урок

 

 

Бинарные версии 512 + 512 здесь

 

 

Различные модули ЕSP8266 можно приобрести здесь Модули ЕSP8266

Переходник USB to TTL можно приобрести здесь ftdi ft232rl

Многофункциональный переходник CJMCU FT232H USB к JTAG UART FIFO SPI I2C можно приобрести здесь CJMCU FT232H USB

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

ESP8266 Прошиваем ESP-01

12 комментариев на “ESP8266 Урок 4. Прошиваем ESP-01
  1. Дмитрий:

    Добрый день! Очень интересно! А когда продолжение? Или не будет? А то слышал, ужасно глючная вещь.

  2. andr0dec0der:

    Прикрепите пожалуйста прошивки, которые вы скачали во время составления урока, т.к. производитель видимо убрал версии для 8-и мегабитных флешек. Папок 512+512 нет в архивах с официального сайта. Нет ни в версии 2018-го ни в 2017-го года.
    Пришлось прошивать версию 2016 года.

    • Прикрепил внизу страницы

      • andr0dec0der:

        Большое спасибо!
        Залил через download tool без проблем. Возможно у вас при заливке возникают проблемы из-за скорости? У вас 230400 установлена скорость, судя по картинкам. Я спокойно прошил на 115200. Вместе с blank.bin файлами.

  3. megger380:

    Добрый день! Пробовал все Ваши способы(версия 2.2.1 и из Вашего архива), модуль работает только если прошивать с помощью Flash Download Tools. И, кстати, нормально прошивается весь дамп и модуль также нормально работает. А вот если разбивать считанный дамп на файлы и потом прошивать — прошивается, но модуль не работает.Я так не могу теперь восстановить родную прошивку(случайно удалил считанный дамп).
    Спасибо за уроки!

  4. megger380:

    И, кстати, там ведь перед 0xfc000 и после окончания пользовательской прошивки ещё куча всяких данных в нескольких местах. Их-то мы не сохраняем, почему?

  5. Денис:

    Напишите пожалуйста в тексте статьи команды.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*