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 здесь

 

 

Модуль ESP NodeMCU можно купить здесь: Модуль ESP NodeMCU

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

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

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

Логический анализатор 16 каналов можно приобрести здесь

 

 

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

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

 

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

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 не будет опубликован. Обязательные поля помечены *

*