Как прошить ESP-01 до улучшенного SDK v2.0.0

Добавлено 23 сентября 2017 в 12:55

Несмотря на сложность обновления прошивки в таких модулях, как ESP-01, микроконтроллер ESP8266 со встроенным модулем Wi-Fi стал чрезвычайно популярен среди разработчиков электроники. Теперь, благодаря большей информации и лучшим инструментам, процесс запуска стал значительно проще, а SDK v2.0.0 добавил новые возможности.

Введение

Успех ESP8266 от Espressif Systems неоспорим. Это мощный микроконтроллер обладает встроенным Wi-Fi модулем и легко адаптируется к множеству применений в быстро растущей отрасли IoT (Internet of Things, интернет вещей). Одной из немногих трудностей использования этой микросхемы стало обновление прошивки в тысячах и тысячах отладочных модулей, которые проникли на рынок. Для предыдущей статьи были выявлены некоторые исправления и улучшения, и представление этой информации является целью данной статьи.

В частности, будут рассмотрены следующие улучшения:

  • лучшая схема прошивки;
  • более простая в использовании программа терминала;
  • обновленный инструмент прошивки Flash Download Tool и обновленная прошивка ESP8266 SDK v2.0.0.

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

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

Схема прошивки

Улучшенная схема прошивки для модуля ESP-01 показана на следующей принципиальной схеме; в первоначальный дизайн было внесено несколько изменений:

  1. постоянное напряжение питания 3,3 В больше не снимается с преобразователя USB-TTL. Некоторые преобразователи не обеспечивают достаточный ток для надлежащей работы ESP8266, особенно когда он находится в режиме передачи Wi-Fi. Следует использовать отдельный, хорошо фильтруемый и стабилизированный источник питания 3,3 В постоянного напряжения, способный обеспечивать ток не менее 500 мА;
  2. конденсаторы C1 и C2 были добавлены для снижения уровня шума на шине питания. Они должны располагаться как можно ближе к выводам Gnd и Vcc ESP8266;
  3. R2 и R3 – это подтягивающие резисторы, которые были добавлены для того, чтобы выводы GPIO2 и GPIO0 ESP8266 никогда не "висели в воздухе".

Эти изменения не говорят, что исходная схема прошивки не работала; дело в том, что она действительно работала у автора статьи и многих других пользователей. Однако ее недостатки были такими, что схема могла и не работать у некоторых пользователей, по крайней мере, иногда. Эти сбои могут быть вызваны различными внешними факторами, качеством источника питания и допусками компонентов. Улучшенная схема должна устранить эти недостатки.

Схема программатора ESP8266
Схема программатора ESP8266

Улучшенная схема прошивки показана собранной на макетной плате на следующих фотографиях. Первая фотография показывает всю схему со вставленным модулем ESP-01; вторая фотография показывает схему без модуля ESP-01, чтобы показать места установки C2, R2 и R3. Обратите внимание, что цвета проводов на схеме соответствую обозначениям цветов на принципиальной схеме.

Программатор, собранный на макетной плате, с установленным модулем ESP-01
Программатор, собранный на макетной плате, с установленным модулем ESP-01

Печатная плата справа на макете – это хорошо стабилизированный и фильтрованный источник питания 3,3 В постоянного напряжения. Для получения полной информации о создании копии этого источника питания смотрите эту статью. В противном случае вы можете использовать любой источник питания с аналогичными возможностями.

Печатная плата в левом верхнем углу макета – это преобразователь USB-TTL. Как вы видите, он вставлен непосредственно в макетную плату с помощью 6-пинового разъема Dupont, который установлен на нижней стороне платы. Вы можете модифицировать свой USB-TTL конвертер для установки именно таким же способом, или вы можете использовать для соединений отдельные провода. Что бы вы ни выбрали, обязательно следуйте схеме при соединении выводов. Обратите внимание, что требуются только три линии: RxD от преобразователя до TxD на ESP-01, TxD от преобразователя до RxD на ESP-01, и общий корпус.

Несмотря на то, что преобразователь USB-TTL не используется для питания ESP-01, убедитесь, что преобразователь настрое на работу с постоянным напряжение 3,3 В, чтобы уровний напряжений сигналов не превышали допустимые значения ESP8266. Любое напряжение выше 3,3 В, поданное на ESP8266, может привести к его повреждению.

Программатор, собранный на макетной плате, с изъятым модулем ESP-01
Программатор, собранный на макетной плате, с изъятым модулем ESP-01

На фотографии, приведенной выше, модуль ESP-01 был изъят из макета, чтобы показать самодельный адаптер для ESP-01. На фотографии ниже слева показан почти такой же адаптер, а справа – адаптер от Addicore. Они работают одинаково и облегчают использование модуля ESP-01 на беспаечной макетной плате или любом подобном устройстве с разъемами с шагом 0,1 дюйма (2,54 мм).

Адаптеры для подключения ESP-01 к беспаечной макетной плате
Адаптеры для подключения ESP-01 к беспаечной макетной плате

Как только вы завершите сборку своего программатора, настанет время для тестирования. Но перед подключением USB кабеля или подачей питания перепроверьте разводку, особенно линии питания. Лучше потратить несколько дополнительных минут, чем повредить что-либо из-за неправильной разводки.

Сначала подключите USB кабель от компьютера к конвертеру USB-TTL. Положительным признаком является загорание красного светодиода в углу печатной платы, близкому к разъему USB, и распопознавание USB конвертера компьютером. На этом этапе обратите внимание на то, какой номер COM порта был назначен конвертеру. Как вы можете видеть на фотографиях, у меня преобразователю был назначен COM4.

Затем подайте на программатор питание 3,3 В постоянного напряжения. Вы должны увидеть пару вспышек синего светодиода на модуле ESP-01, а красный светодиод на модуле должен гореть постоянно.

Теперь нажмите и отпустите SW1 (кнопка сброса); синий светодиод должен замигать. Затем нажмите и отпустите SW2 (кнопка программирования); не должно произойти ничего заметного.

Если всё идет по плану, ваша схема прошивки, вероятно, работает правильно. Настало время выполнить окончательную проверку: ответит ли ESP8266, когда вы обратитесь к нему?

Список комплектующих

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

Перечень элементов
ОбозначениеОписание
C1Конденсатор керамический 0,1 мкФ, 50В
C2Конденсатор алюминиевый, электролитический 220 мкФ, 16 В
R1–R4Резистор 10 кОм, 0,25 Вт
нетМакетная плата, беспаечная, 400 контактов
нетАдаптер DIP8
нетМодуль ESP8266, ESP-01
SW1–SW2Кнопка, нормально разомкнутая
нетКонвертер USB-TTL, совместимый с 3,3 В

Начало работы с Termite

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

В последующих этапах предполагается, что модуль ESP-01 запрограммирован так же, как обычно, поставщиком. Если вы (или кто-то еще) внесли изменения в стандартные настройки программы, вам необходимо будет поэкспериментировать, чтобы определить текущие настройки вашего модуля ESP-01.

После проверки своей схемы программирования ESP-01, как описано выше, включите её. Запустите на своем компьютере Termite и нажмите кнопку Settings (Настройки); вы должны увидеть окно, похожее на приведенное ниже. Убедитесь, что COM порт, к которому подключен USB-TTL конвертер, правильно выбран в окне настроек последовательного порта. Выставьте все остальные параметры, как показано в окне настроек последовательного порта ниже, и нажмите OK, чтобы закрыть окно настроек последовательного порта.

Настройки последовательного порта
Настройки последовательного порта

На этом этапе курсор должен мигать в нижней части окна Termite; если нет, кликните на нижней части окна Termite, чтобы поместить туда курсор. Введите AT и нажмите Enter на клавиатуре; если всё хорошо, ESP-01 ответит OK в окне Termite. Если это произойдет, можете вздохнуть с облегчением, потому что вы только что преодолели главное препятствие.

Затем введите AT+GMR и нажмите Enter. ESP-01 должен ответить чем-то очень похожим, что показано на рисунке ниже.

Отклик модуля ESP-01
Отклик модуля ESP-01

Команда AT+GMR говорит ESP8266 сообщить о версии набора AT-команд, который он содержит, какой SDK (Software Development Kit) был загружен в него, какая компания собрала модуль ESP, и когда SDK был загружен в модуль. Наконец, как обычно, ESP8266 завершает свой ответ с помощью OK.

Если ESP-01 ответил правильно, то можно закончить с Termite (если вы не хотите еще поэкспериментировать). Далее он понадобится снова для подтверждения успешной прошивки.

Загрузки для ESP8266

Вся необходимая документация и инструменты для прошивки программного обеспечения чипов ESP8266 доступны в интернете, и большая их часть находится на сайте Espressif. Для удобства читателей RadioProg большая часть из них также доступна здесь. Обязательно необходимы Flash Download Tool и Software Development Kit. Обязательно наличие не всех документов, но все они потенциально полезны. Загрузите файлы и сохраните их у себя на компьютере, чтобы выполнить прошивку ESP8266, как описано в данной статье.

Flash Download Tool v3.4.4

Версия 3.4.4 Flash Download Tool – это последняя версия, доступная от Espressif на момент подготовки данной статьи. Этот инструмент для ESP8266 почти идентичен предыдущим версиям вплоть до 2.3, за исключением того, что в пакет добавлены два новых инструмента. Один для ESP8285, второй для ESP32, ни один из которых не используется с ESP8266. Нажмите кнопку ниже, чтобы скачать v3.4.4; вы заметите, что она содержит версии для PC и Mac. В данной статье будет использоваться версия для PC.

Software Development Kit 2.0.0

На момент написания этой статьи последняя доступная версия ESP8266 Software Development Kit – версия 2.0.0, которая была выпущена в июле 2016 года. Данная версия стабильна и будет использоваться в этой статье. Она доступна для бесплатного скачивания с Espressif, но чтобы уберечь читателей от некоторых проблем, она также доступна здесь, нажав кнопку ниже.

Документация на ESP8266

Как часто говорят: "Когда уже ничего не помогло, попробуйте почитать инструкцию.". И для этого у Espressif есть впечатляющая коллекция документов, относящихся к ESP8266. Слабо сомневаюсь в том, что ответы на многие вопросы содержатся на их страницах. Автором статьи наиболее часто используются три документа: ESP8266 Quick Start Guide (version 1.3), ESP8266 SDK Getting Started Guide (version 2.7) и ESP AT Instruction Set (version 2.0.0). Три этих документа с несколькими другими включены в архив, доступный для скачивания по кнопке ниже. Обратите внимание, что дополнительные документы и более современные версии предоставленных документов могут быть доступны на сайте Espressif.

Вспоминаем биты и байты

Объем EEPROM в модуле ESP8266 (например, ESP-01) является очень важным фактором для выполнения процесса прошивки. Это количество EEPROM может быть выражено в различных единицах измерения, а используемые единицы варьируются в документации от места к месту, что может внести некоторую путаницу. Ключевые моменты и таблица, приведенные ниже, включены в качестве справочной информации, чтобы свести эту путаницу к минимуму.

  • Обозначение для бита b, а для байта – B.
  • В одном байте (B) содержится восемь бит (b).
  • Обозначения для килобита Kb, а для килобайта – KB. Аналогично, мегабит обозначается Mb, а мегабайт – MB. И так далее.
  • Также хорошо бы обратить внимание, что большинство (возможно, все) модули ESP-01 на черных печатных платах содержат 1 MB EEPROM.
Единица измеренияБайт (B)Килобайт (KB)Мегабайт (MB)Гигабайт (GB) Терабайт (TB)
Количество байт11 0241 048 5761 073 741 8241 099 511 627 776

Процесс прошивки

Считывание из модуля ESP-01

Установите модуль ESP-01 в схему программатора, подключите USB-TTL конвертер к USB порту компьютера и подайте на схему напряжение питания 3,3В. Запустите версию 3.4.4 Flash Download Tool, после этого вы должны будете увидеть окна запуска, как показано ниже. В черном окне выполняется логирование действий инструмента загрузки. Окно на переднем плане – это окно выбора инструмента; поскольку мы работаем с ESP8266, нажмите на кнопку ESP8266 Download Tool.

Окна запуска Flash Download Tool
Окна запуска Flash Download Tool

Если это первый запуск инструмента прошивки ESP8266, окно, подобное приведенному ниже, откроется без данных в полях формы. Если в верхней части окна вкладка SPIDownload еще не выбрана, то нажмите на неё сейчас

Flash Download Tool при первом запуске (с пустыми полями формы)
Flash Download Tool при первом запуске (с пустыми полями формы)

Если в любом из полей выставлены флажки, снимите их. Затем убедитесь, что в правом нижнем углу выбраны правильные номер COM порта и скорость передачи. Кликните на переключателе SPI SPEED для выбора 40MHz и на переключатель SPI MODE для выбора QIO. Больше не нажимайте ни на каких других переключателях, не добавляйте никаких галочек и не вводите никаких данных.

  1. Нажмите и удерживайте кнопку сброса (SW1) на своей схеме прошивки.
  2. Нажмите и удерживайте кнопку прошивки (SW2) на своей схеме прошивки.
  3. Отпустите кнопку сброса.
  4. Отпустите кнопку прошивки.
  5. Нажмите кнопку Start в левом нижнем углу окна инструмента прошивки.

Инструмент прошивки будет работать в течение нескольких секунд, чтобы прочитать содержимое модуля ESP-01 и вывести результаты на соответствующих панелях, как показано ниже.

Результаты считывания модуля ESP-01
Результаты считывания модуля ESP-01

Что произошло во время работы инструмента прошивки:

  1. Инструмент загрузки определил размер EEPROM в модуле как "QUAD;8Mbit", что переводится в 1 мегабайт.
  2. Инструмент загрузки определил частоту кварцевого генератора 26 МГц.
  3. Инструмент загрузки считал MAC-адреса вашего модуля ESP-01 в режимах AP (Access Point, точка доступа) и STA (Station, станция) и вывел их в панель Download Panel 1. (Обратите внимание, что MAC-адреса вашего модуля ESP-01 будут отличаться от адресов, показанных выше; запишите MAC-адреса вашего модуля для дальнейшего использования.)

Запись на модуль ESP-01

Наконец, вы готовы выбрать и записать новую прошивку на свой модуль. Установите SpiFlashConfig следующим образом:

  1. выберите CrystalFreq как 26M;
  2. выберите 40MHz в переключателе SPI SPEED;
  3. выберите QIO в переключателе SPI MODE;
  4. выберите 8Mbit в переключателе FLASH SIZE.

Выберите бинарные файлы, которые будут загружены из мест их хранения, как показано в таблице ниже. (Файлы, перечисленные ниже, содержатся в каталоге ESP8266 SDK v2.0.0, которую вы загрузили и сохранили на своем компьютере.)

Название бинарного файлаРасположение бинарного файлаАдрес во flash памяти ESP-01
blank.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin0xFB000
esp_init_data_default.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin0xFC000
blank.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin0x7E000
blank.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin0xFE000
boot_v1.6.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin0x00000
user1.1024.new.2.bin...\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\at\512+5120x01000

A) Нажмите для установки флажка на первый (вверху слева) чекбокс в панели Download Path Config; вся строка ввода данных станет красной, как показано ниже.

Выбор файлов прошивки ESP
Выбор файлов прошивки ESP

B) Нажмите на кнопку многоточия (...) в первой строке и перейдите к местоположению на вашем ПК, где хранятся бинарные файлы SDK 2.0.0; выберите файл blank.bin. Весь путь к файлу будет введен к поле слева от кнопки многоточия.

C) Затем введите шестнадцатеричный адрес справа от кнопки многоточия, где должен храниться файл blank.bin: в этом случае 0xFB000.

Повторите шаги с A до C для каждого из шести бинарных файлов. В итоге у вас будут заполнены данные, как показано ниже.

Выбор файлов прошивки ESP
Выбор файлов прошивки ESP

После перепроверки всех путей файлов и шестнадцатеричных адресов записи выполните следующие действия:

  1. Нажмите и удерживайте кнопку сброса (SW1) на своей схеме прошивки.
  2. Нажмите и удерживайте кнопку прошивки (SW2) на своей схеме прошивки.
  3. Отпустите кнопку сброса.
  4. Отпустите кнопку прошивки.
  5. Нажмите кнопку Start в левом нижнем углу окна инструмента прошивки.

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

Завершения процесса прошивки ESP8266
Завершения процесса прошивки ESP8266

Нажмите и отпустите кнопку сброса (SW1) на схеме вашего программатора. Снимите питание со схемы программатора.

Подтверждение успешности прошивки

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

Проверка результатов процесса прошивки ESP8266
Проверка результатов процесса прошивки ESP8266

Ваш модуль ESP-01 был обновлен до SDK версии 2.0.0 и набора AT команд версии 1.3.0.0. Поздравляю! Вы готовы добавить ESP-01 в свой проект интернета вещей!

Теги

ESP-01ESP8266EspressifFirmware / прошивкаIoT (интернет вещей)TermiteWi-FiWi-Fi модуль

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.


  • 2020-10-02Павел Авраменко

    Плоские, по форме хорошо сюда подошли, есть еще запасы. Не понимаю, почему китайцы сразу в этот TTL конвертер транзисторы не ставят, тем более что на wemos d1 mini это транзисторная сборка с встроенными резисторами одной деталью.

  • 2020-10-02radioprog

    КТ315 еще где-то откопали))

  • 2020-10-01Павел Авраменко

    Заменил кнопки двумя транзисторами. Все по схеме, в базы транзисторов установил резисторы 4к7. На схеме эти резисторы встроенные в транзистор. Все работает при простом залитии скетча без лишних телодвижений. https://uploads.disquscdn.c...
    https://uploads.disquscdn.c...https://uploads.disquscdn.c...