Как программировать "сырой" (Raw) чип ESP8266-12E/F с помощью Arduino IDE


В этой статье мы рассмотрим как программировать "сырой" (Raw) чип ESP8266 (ESP8266-12E/F) с помощью Arduino IDE, а также сопутствующую схему, которая позволяет данному чипу функционировать в приложениях реального времени. В конце статьи мы увидим схему и печатную плату программатора для модуля ESP8266, которая очень маленькая и компактная для проектов реального времени. Ранее на нашем сайте мы уже рассматривали аналогичный проект программирования модуля ESP8266 с помощью Arduino IDE, однако в ней рассматривался чип ESP8266-01 и данная статья более свежая и, возможно, описанный в ней подход вам больше понравится чем описанный в указанной статье.

Как программировать "сырой" (Raw) чип ESP8266-12E/F с помощью Arduino IDE

NodeMCU ESP8266 хорошо известна как среди любителей электроники, так и среди специалистов по Интернету вещей (IoT). NodeMCU — это первая плата разработки, которая приходит на ум, когда нужно создать прототип чего-то, что включает в себя WiFi. Использование платы NodeMCU в процессе создания прототипа — лучшее решение. Однако, когда этапы создания прототипа и тестирования завершены, использование всей платы NodeMCU в печатной плате проекта — не самая разумная идея. Здесь требуется исходный чип ESP8266-12E/F, а не вся плата разработки, которая предназначена для новичков, чтобы легко работать с ней.

Использование исходного чипа ESP8266-12E/F снижает стоимость проекта и увеличивает надежность. Мы можем легко запрограммировать этот "сырой" чип с помощью внешнего программатора, подключив несколько проводов к пользовательской печатной плате. Но в данной статье давайте научимся программировать чип ESP8266 с помощью Arduino IDE.

Необходимые компоненты

  1. Модуль ESP8266 (купить на AliExpress).
  2. Плата FTDI (3.3V) (купить на AliExpress).
  3. Резисторы 10K / 12K Ом - 5 шт.
  4. Резистор 22 кОм - 2 шт.
  5. Резистор 330 Ом.
  6. Конденсатор 470 пФ.
  7. Конденсатор 0,1 мкФ.
  8. NPN-транзистор BC547 - 2 шт.
  9. Кнопки - 2 шт. (купить на AliExpress).
  10. Одножильный соединительный провод.
  11. Провода-перемычки.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Традиционный способ использования NodeMCU

На этапе прототипирования проекта мы разрабатываем прошивку либо в Arduino IDE, либо в Platform IO и загружаем прошивку, подключив разъем USB к NodeMCU и выбрав соответствующий порт и плату в Arduino IDE или Platform IO (в Platform IO порт определяется автоматически, вы также можете выбрать порт, настроив параметры загрузки в platfomio.ini для получения дополнительных параметров загрузки).

Прошивка загружается на чип с помощью моста USB-UART, встроенного в NodeMCU. Перед прошивкой чип должен быть сброшен в режим прошивки, а встроенный мост USB-UART преобразует данные USB в формат UART и взаимодействует с устройством через контакты RXD0 и TXD0. Все это автоматически обрабатывается поддерживающей схемой, встроенной в NodeMCU.

В случае сбоя автоматической загрузки предоставляются дополнительные контакты Flash и Reset для перезапуска NodeMCU в режиме Flash.

Программирование чипа ESP8266

Давайте рассмотрим физические характеристики и спецификации исходного чипа ESP8266. Это необходимый шаг перед изучением того, как программировать чип ESP8266.

Внешний вид и распиновка ESP8266-12E

Модуль ESP-12E имеет 22 контакта, их назначение представлено в следующей таблице.

Номер контакта Наименование контакта Назначение
1 RST Контакт сброса модуля
2 ADC Аналоговый входной контакт для 10-битного АЦП (0 В - 1 В)
3 EN Контакт включения модуля (активный ВЫСОКИЙ)
4,5,6,7,11,12, 16, 17, 18, 19, 20 GPIO16, GPIO14, GPIO12, GPIO13, GPIO9, GPIO10, GPIO15, GPIO2, GPIO0, GPIO4, GPIO5 Входные и выходные контакты общего назначения
8 VDD Вход питания +3,3 В
9 CS0 Выбор чипа (Chip select) в интерфейсе SPI
10 MISO MISO-контакт интерфейса SPI
13 MOSI MOSI-контакт интерфейса SPI
14 SCLK Тактовый вывод интерфейса SPI
15 GND Земля (общий провод)
21 RXD0 Приемный контакт UART0
22 TXD0 Передающий контакт UART0

Чтобы запрограммировать "сырой" чип, нам необходимо иметь доступ к его контактам и хорошо понимать работу чипа, процессы загрузки и прошивки.

Физические размеры модуля ESP-12E

Физические размеры модуля составляют 16 мм × 24 мм × 3 мм, а шаг выводов — 2 мм. Но шаг выводов макетной платы составляет 2,54 мм. Чтобы сделать этот чип удобным для макетной платы, я припаял одножильные соединительные провода к чипу.

Модернизация модуля ESP-12E для использования на макетной плате

Различные режимы загрузки модуля

Параметры загрузки Enable pin (EN) GPIO0 GPIO2 GPIO15
Режим программирования High Low High Low
Flash start-up (нормальный режим) High High High Low
Загрузка с SD-карты High Low Low High

Мы можем перезагрузить ESP8266-12E/F в нескольких режимах загрузки, потянув вверх или вниз определенные GPIO. Чтобы загрузить прошивку, мы должны сначала загрузить чип в режиме программирования. Чип должен загружаться в режиме запуска флэш-памяти во время обычных режимов. В результате нас интересуют только первые два режима загрузки.

В обоих рабочих режимах выводы enable(EN) и GPIO2 имеют высокий уровень, а вывод GPIO15 — низкий, как показано в таблице выше. Поэтому подтяните вверх выводы enable (EN), GPIO2 и подтяните вниз вывод GPIO15 с помощью резисторов 10K/12K Ом. Вывод сброса и вывод GPIO0 обычно имеют высокий уровень и подключаются к земле с помощью кнопок.

Схема для ручной загрузки модуля ESP8266-12E/F

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

Давайте посмотрим как можно запрограммировать чип ESP8266. Сначала включите схему, нажав кнопку GPIO0 и отпустите эту кнопку после загрузки чипа. Теперь чип загружен в режиме программирования.

Теперь возьмите любой мост USB-UART/FTDI плату (рекомендуется FT232RL) и подключите контакты RX и TX FT232RL к контактам TXD0 и RXD0 микросхемы, также убедитесь, что перемычка на модуле FT232RL установлена ​​в положение 3,3 В.

Подключите FT232RL к компьютеру и загрузите прошивку. Ниже приведены параметры загрузки, которые необходимо соблюдать при загрузке прошивки с помощью Arduino IDE. Выберите тип платы как generic esp8266 module, скорость загрузки как 115200 и выберите правильный порт. С platform IO выбор опции платы как Espressif ESP8266 ESPf-12E будет работать.

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

Схема для ручной перепрошивки модуля ESP8266-12E

Этот процесс требует ручного вмешательства, например нажатия кнопки сброса. Для этого ручного вмешательства и плавной прошивки микросхемы, как мы делаем с NodeMCU, нам нужно использовать сигналы DTR (Data Terminal Ready) и RTS (Ready to Send) моста USB-UART FT232RL.

Вывод RTS модуля FT232RL расположен в другом месте, и для доступа к нему необходимо припаять штекерный разъем.

Припаянный штекерный разъем на плате FTDI

Схема для автоматической прошивки ESP8266-12E/F

Схема автоматической прошивки (схема программатора) ESP8266 почти аналогична схеме ручной прошивки с некоторой дополнительной транзисторной схемой, которая работает с контактами DTR и RTS FT232RL.

Сигнал RTS используется для сброса чипа, а сигнал DTR используется для удержания чипа в режиме флэш-памяти. Транзисторы (BC547) Q1 и Q2 используются для удержания чипа в режиме флэш-памяти при обнаружении команды загрузки, и новый скетч может быть загружен в него без проблем.

Эти транзисторы также гарантируют, что чип не сбросится при низком уровне сигналов DTR и RTS, а также запускают чип в нормальном режиме (запуск Flash) при отсутствии команды загрузки.

Схема для автоматической прошивки ESP8266-12E/F

На момент написания этой статьи у меня был транзистор BC547 NPN и конденсатор 470 пФ в корпусе SMD. В результате я прикрепил эти компоненты к штыревым разъемам, чтобы сделать их совместимыми с макетной платой.

Доработка транзисторов BC547 и конденсатора 470 пФ для их установки на макетную плату

Выполните подключение, как показано на схеме, и подключите выводы RTS, DTR, RX, TX, VCC и GND FT232RL к соответствующим выводам чипа. Также убедитесь, что перемычка на модуле FT232RL установлена ​​на 3,3 В.

Собранная на макетной плате схема для автоматической прошивки ESP8266-12E/F

После выполнения подключений подключите модуль FT232RL к компьютеру и следуйте параметрам загрузки, как обсуждалось ранее. Теперь вы можете обнаружить, что прошивка прошивается плавно, без ручного вмешательства. Мы также можем использовать две кнопки (сброс и прошивка) для загрузки прошивки, когда автозагрузка/автопрошивка прошивки не удалась.

Печатная плата для схемы автоматической прошивки ESP8266-12E/F

Если вам нужен компактный программатор ESP8266-12E/F с питанием и доступом к нескольким GPIO чипа, то вот печатная плата для вас. Эта схема программатора ESP8266 разработана в EasyEDA. На следующем рисунке представлена ​​принципиальная схема схемы.

Макет печатной платы программатора ESP8266, разработанный в EasyEDA

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

Собранные на данной печатной плате компоненты проекта показаны на следующем рисунке.

Собранные на печатной плате компоненты проекта

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

(Проголосуй первым!)
Загрузка...
17 просмотров

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

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