Рубрики
HADRWARE SOFTWARE Ну почти "Умный дом"

Прошивка ESP-07: MicroPython

В данной заметке будет рассмотрена первичная настройка контроллера ESP-07 для работы с Micropython, режимы работы и ПО для загрузки скриптов

Режим прошивки

Для перевода микроконтроллера в режим прошивки необходимо соединить:

  • GPIO0 — GND через резистор 1 кОм;
  • GPIO15 — GND через резистор 1 кОм;
  • GND контроллера к GND преобразователя;
  • 3.3v контроллера (vcc) к 3.3v преобразователя;
  • RST к 3.3v контроллера (vcc) через резистор 1 кОм;
  • EN к 3.3v контроллера (vcc) через резистор 1 кОм;
  • TX/RX контроллера к RX/TX преобразователя.

Пример подключения в режиме прошивки представлен на рисунке 1.

Рисунок 1 — Схема подключения в режиме прошивки

Для прошивки необходим USB-UART преобразователь. Выбор пал на преобразователь под ESP-01 с алиэкспресс на чипе CH340. Программатор изображен на рисунке 2.
По идее может подойти любой преобразователь.

Рисунок 2 — Программатор для ESP-01

Прошивка

Для прошивки MicroPython понадобится Python3 и пакет esptool, который можно установить командой:

pip install esptool 

Помимо этого утилиту можно скачать с репозитория:

https://github.com/espressif/esptool/

После установки пакета можно запустить команду очистки flash памяти контроллера:

esptool --port COM4 erase_flash

Если скрипту не удалось соединиться — проверьте схему или попробуйте подобрать подходящую «скорость передачи данных» (baudrate) с помощью добавления к команде параметра -b (например: -b 9600)

Порт устройства задается параметром port. Посмотреть порт можно в Диспетчере устройств Windows. Пример отображения номера порта в диспетчере устройств представлен на рисунке 3.

Рисунок 3 — Пример отображения номера порта в диспетчере устройств

В случае успеха в результате выполнения команды очистки можно увидеть информацию о контроллере и результат очистки. Пример изображен на рисунке 4.

Рисунок 4 — Пример успешного выполнения команды esptool

После очистки flash памяти контроллера можно установить MicroPython. Бинарный файл доступен по ссылке.
Важно: бинарный файл необходимо скачать для модуля с 1МБ памяти: ссылка на бинарник из статьи
Важно: ссылка указывает на бинарные файлы для esp8266, которые не применимы на esp32.
Если вы не уверены в объеме памяти — выполните команду:

esptool --port COM4 flash_id

Результат с указанием объема flash памяти представлен на рисунке 5.

Рисунок 5 — Результат flash_id с указанием объема flash памяти

После загрузки бинарного файла прошивки с сайта можно выполнить команду:

esptool --port COM4 write_flash --flash_size=detect 0 esp8266-1m-20210902-v1.17.bin

Рабочий режим

В случае успешной прошивки контроллер можно переподключить в рабочем режиме — схема представлена на рисунке 6.
Необходимо соединить:

  • GND контроллера к GND преобразователя;
  • 3.3v контроллера (vcc) к 3.3v преобразователя;
  • EN к 3.3v контроллера (vcc) через резистор 1 кОм;
  • GPIO15 к GND через резистор 1 кОм;
  • TX/RX контроллера к RX/TX программатора.

Важно: питание должно быть переподключено для перезагрузки контроллера.

Рисунок 6 — Схема подключения в рабочем режиме

Внимание: контроллер работает в диапазоне от 3.0 до 3.6 вольт. Подача большего напряжения может привести к выходу из строя контроллера.

Загрузка скриптов на контроллер

Для загрузки скриптов на контроллер понадобится программа EsPy, которую можно скачать по ссылке.

Для первой настройки в меню Device необходимо указать порт (Ports), который использовался ранее для прошивки устройства. Пример интерфейса представлен на рисунке 7.

Рисунок 7 — Пример интерфейса программы

Помимо этого в меню Device необходимо выбрать пункт «EspTool…» и указать там местоположение пакета esptool, установленного ранее. Интерфейс окна настройки esptool представлен на рисунке 8.

Рисунок 8 — Интерфейс окна настройки esptool

Изменив настройки из меню Device можно выполнить подключение нажав на кнопку Connect, подсвеченную на рисунке 9.

Рисунок 9 — Кнопка Connect

В результате будет произведено подключение к устройству. Необходимо в окне терминала нажать Enter, так как main.py не найден в памяти устройства. На рисунке 10 представлено окно терминала с зависшим вводом/выводом.

Рисунок 10 — Окно Terminal

Если нажатие кнопки Enter не исправило ситуацию, как это изображено на рисунке 11 — необходимо подтянуть пин GPIO15 к земле как описывалось ранее в части о переводе в рабочий режим.

Рисунок 11 — Результат подключения

На рисунке 11 подсвечена кнопка файлового менеджера с помощью которого можно загружать и выгружать файлы с памяти контроллера.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.