Загрузка прошивки в устройство

Конечно самый простой способ это приобрести устройство с уже установленной прошивкой, проверенное и с гарантией - Вы можете это сделать в Нашем интернет-магазине store.1msmart.com.

... Но в каждом из Нас живет дух энтузиаста или просто желание что-то сделать дешевле своими руками.

На сегодняшний день все устройства в системе 1М работают на процессорах компании Espressif серии ESP82 (ESP8266 и ESP8285).

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

Все прошивки можно загружать в любое из устройств на базе этих процессоров, основным ограничением является используются ли в прошивке порты GPIO9 и GPIO10 - данные порты доступны только в ESP8285.

Следующим на что обращаем внимание это флеш-память, где хранятся программа и данные для работы устройства.

ESP8266 не имеет встроенной флеш-памяти, она подключена по интерфейсу SPI в виде отдельной микросхемы (размер памяти варьируется от 1 МБайта (8 Мбит) до 4 МБайт (32 Мбита)) и это есть основным плюсом в выборе типа процессора или модуля.

ESP8285 имеет встроенную флеш-память, в основном на рынке присутствуют устройства с объемом 1 МБайт, но производитель выпускает также процессоры и объемом 2 МБайта.

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

Разберем подробнее...

Для подключения к компьютеру необходимо специальное устройство USB-to-TTL. Существуют различные варианты этих устройств, но главный критерий это уровни сигналов на RX/TX должны быть около 3.3 В. Мы используем данное устройство на базе CH340G, у него удобно можно изменить уровень сигналов с помощью перемычки, а также раздельно выведено питание 3.3В и 5В.

  1. Устройство отключено от внешнего питания (220В, 24В, 12В, 5В...).

  2. USB-to-TTL подключен к ПК и настроен (установлены необходимые драйвера по необходимости). В системе у Вас появился последовательный порт COM (номер может быть любой, зависит от свободных в системе).

  3. На USB-to-TTL установлен уровень 3.3в и проверен с помощью мультиметра.

  4. Соединение логических портов выполняется по кроссовой схеме: RX(ПК) - TX(ESP), TX(ПК) - RX(ESP).

  5. Подключаем Gnd, RX, TX, Питание 3.3В используется для старта процессора.

  6. Особенностью прошивки процессоров ESP82 является определенное состояние некоторых его портов при подаче питания, мы не будем рассматривать все состояния (в готовых устройствах они все соблюдены) нас интересует только перевод процессора в режим доступа к флеш-памяти. Процессор переходит в режим доступа к флеш-памяти, если при подаче питания на порту GPIO0 подан низкий уровень или если просто он замкнут на землю (Gnd). ... Соединем GPIO0 (IO0) с Gnd (в некоторых устройствах с этим портом связана кнопка - Sonoff Basic, Sonoff POW ... - поэтому достаточно перед подачей питания зажать ее). Сохранять данное соединение в дальнейшем не нужно, оно необходимо только на старте - обычно 2-3 сек, но можно и не отключать пока Вы работаете с прошивкой.

  7. Подаем питание на ESP82 - обязательно ТОЛЬКО 3.3В. Можно в случае необходимости прошивать и с уровнями и питанием 5В, но есть риск выхода из строя процессора, поэтому не рекомендуем.

Для загрузки прошивок в устройства на базе ESP82 рекомендуем использовать программу от производителя Flash Download Tools.

При запуске программы сначала выбираем тип процессора.

После запускается основное приложение.


Для прошивки устройств необходимо использовать Flash Download Tools версии 3.6.8.

Использование версий от 3.9.0 приводит к некорректной инициализации размера флеш памяти (в следствии отсутствия возможности установки размера ) и в дальнейшем невозможности обновить прошивку и использовать статистику.

Отличие в настройке для ESP8266 и ESP8285 заключается в том, что для ESP8285 доступна только настройка объема флеш-памяти.

Обязательно!!!

  • SpiAutoSet - не отмечен

  • DoNotChgBin - не отмечен

  • LOCK SETTINGS - не отмечен

ESP8266

В зависимости от типа флеш-памяти необходимо установить 2 параметра:

  • SPI MODE

  • FLASH SIZE

ESP8285

В зависимости от типа флеш-памяти необходимо установить 1 параметр:

  • FLASH SIZE (пока на рынке только чипы с 8Mbit = 1MByte)

Для ESP8266 важно правильно выбрать данные параметры (SPI MODE, FLASH SIZE).

SPI MODE влияет на вид доступа к флеш-памяти процессором, если он выбран неверно, то после загрузки прошивки она не будет работать.

FLASH SIZE влияет на корректность определения размера флеш-памяти самой прошивкой, неверный размер может привести к сбоям и некорректной работе прошивки и устройства.

В основном используются 2 типа DIO и DOUT, чтобы не разбираться какой тип использовать можно прошить в одном и проверить работу - устройство работает, прошивка обновляется, статистика открывается.

DOUT необходимо устанавливать для флеш-памяти типа PN25F08B.

Скорость связи (BAUD) можно устанавливать в максимум 921600, для уменьшения времени загрузки прошивки или стирания.

Выбираем файл прошивки <прошивка>.bin (кнопка с 3 точками), в поле после знака @ вводим 0x0000 (или просто 0) - адрес с которого будет записана прошивка.

В списке загружаемая прошивка отмечается галочкой и строка подсвечивается зеленым если файл доступен.

Обратите внимание на отсутствие кириллических символов в пути.

Процесс загрузки прошивки состоит из двух этапов:

  • стирание памяти (кнопка ERASE)

  • загрузка прошивки (кнопка START)

В начале каждого этапа необходимо перевести процессор в режим доступа к флеш-памяти.


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

Воспользуйтесь инструкцией по сохранению прошивки.