Найти в Дзене

ESP-12F - простой старт

Оглавление

"Грабли" при заливке прошивки

Практически любой разработчик в какой-то момент времени обнаруживает, что вернулся к вопросу, который однажды уже разбирал для себя. И тогда появляется потребность в заметках. Эта статья - о пройденных "граблях" при заливке прошивок в популярные сборки ESP-12F на базе микроконтроллера #ESP8266.

Подключение, шаг ног

Свой трудовой путь с этой серией МК я начинал с известной платы #NodeMCU V3. Штука удобная, но не самая компактная, для ряда проектов слишком габаритная. Поэтому позже я переключился на ESP-12F.

Использовать ESP-12 напрямую можно, но не очень удобно - у нее шаг ножек 2.0 мм. Соответственно, необходимо либо сразу готовить печатную плату "в размер", либо использовать удобный переходной элемент (см.галерею выше). Этот переходной элемент (шаг ног 2.54 мм) позволяет работать на макетных досках, но там нет ничего, обслуживающего плату.

Питание, грабли №1

Естественно, я не мог обойти эти грабли. При первых экспериментах я, долго не думая, переключил USB-TTL конвертер на 3.3 вольта, а потом удивлялся, почему вся система работает неустойчиво - то связь есть, то нет, вроде отвечает, но прошивка не льется...

Ответ - в установленном DC-DC на конвертере преобразователе тока не хватает. Проблема решилась переходом на 5 вольт на конвертере плюс установкой на макетку внешнего преобразователя (фото см.ниже). На всякий случай напоминаю, что подавать что-либо выше 3.7 вольта на любые ноги ESP-12 чревато гибелью последнего.

DC-DC преобразователь
DC-DC преобразователь

Питание, грабли №2

Если вы внимательно разглядывали переходную плату - обратили внимание на место для установки аналогичного преобразователя в корпусе SOT-89.

С его выбором надо быть крайне внимательным - порядок следования ног не стандартизован, а "наизнанку" планарные элементы не ставятся.

  • AMS1117 = GND - OUT - IN (слева направо)
  • L78L33 = OUT - GND - IN
  • HT7333 = GND - IN - OUT <---- моя переходная плата рассчитана на вот такой порядок!!!! Проверяйте свои!!!

Также напоминаю, что для его работы необходимо убрать с платы резистор R2 с нулевым сопротивлением (он соединяет внешнюю ногу VCC и вход питания ESP-12).

Подключение для заливки прошивок

Что еще ждет экспериментатора, который перешел на ESP-12 с NodeMCU - это необходимость организации подключения служебных линий. Просто подачи питания недостаточно. Для того, чтобы быстрее приступить к экспериментам - хочется сделать максимально просто.

Я перебрал несколько вариантов и остановился вот на таком.

  • GPIO15 через 10k на low (всегда)
  • GPIO2 через 10k на high (всегда)
  • GPIO0 подтянут через 10k к high, плюс стоит подключаемый джампер на low для режима прошивки (нет джампера = режим работы)
  • TXD и RXD идут на TTL-конвертер

Вот здесь есть еще одна схема - GPIO0 через 275...470 Ом к DTR, надо будет опробовать на досуге.

Sleep не использую, в "висящем в воздухе" состоянии на моем экземпляре проблем не возникает. Reset я также не трогал, вместо этого передергивал питание.

Напоминаю, что сначала выполняется переключение GPIO0, и только потом питание. Справочно это можно посмотреть здесь.

Собственно заливка - софт

Я больше пользуюсь ESP-12 в связке с Arduino IDE, который сам умеет готовить образ целиком (с этим, кстати, связаны еще одни грабли), но иногда надо проверить, что же там все-таки происходит "под капотом". Я сформировал себе вот такой набор софта:

1. Flash download tool, текущая версия на момент написания статьи - 3.9.0, брал здесь. Назначение - автоопределение объема и типа памяти в модуле, заливка немонолитных прошивок (например, под AT commands). Описание работы можно посмотреть в первом приближении здесь.

2. ESP8266 flasher. Брал здесь, тут же есть инструкция. Удобен для заливки монолитных прошивок, относительно п.1. меньше настроек, меньше возможностей.

3. ESPlorer. Брал здесь. Назначение - консоль под разные наборы команд с переключением скоростей (включая нестандартную 74880). Зачем она нужна - чуть позже.

Что лить

Самые первые проверки рекомендую проводить на "родных" прошивках от Espressif - AT commands. Основной репозиторий здесь. Вам нужны варианты non-OS. Схему заливки можно посмотреть в документации, вариант "OTA firmware", только не путайте мегабиты и мегабайты (в разных местах разные единицы измерения). Я использую вот эту.

Как проверять, что все получилось

Сначала плата ответит из бутлоадера. Скорость там нестандартная (74880, именно поэтому я и использую ESPlorer. Если бутлоадер отработал нормально, вы увидите фразу "jump to run user1", после чего ответ будет уже на дефолтной скорости прошивки (скорее всего 115к, хотя возможно и 9600). Поэтому на экране всегда будут "кракозябры", или от бутлоадера, или от прошивки. Не пугайтесь, "так и задумано".

ESP-12F в Arduino IDE

Ну и на закуску. Изначально я писал и отлаживал проект под NodeMCU - с этим все просто, Arduino IDE эту плату знает сама по себе. Простой перенос этой прошивки на ESP-12F приведет вот к чему - программа запустится, но достаточно скоро (у меня - от 1 до 15 секунд от старта) рухнет с exception (предполагаю, это связано с работой с WiFi-частью). Объяснения у меня нет, но мне помогло изменение настроек в Arduino IDE, оставляю картинкой.

Мои настройки в Arduino IDE для ESP-12F
Мои настройки в Arduino IDE для ESP-12F