Совсем не Arduino… ESP8266. Начало

После майских (2015 год) праздников получил я посылку из Китая, где, в числе прочего, приехали два модуля ESP-01. Вообще, фирма Esspressif Systems выпускает целый ряд модулей на платформе ESP8266EX, самый первый является наиболее массовым и самым дешевым. e8266-2rub

На плате, кроме самого «чуда», имеется перепрограммируемая ПЗУ-шка и «нарисованная» антенна. Число внешних контактов весьма скромно: кроме питания, есть «вывод из спячки» — типа «сброс» (иначе — GPIO16), линия «выбора модуля» (CH_PD — перевод кристалла в Power Down Mode), TxD и RxD, две линии GPIO0 и GPIO2. Т.е. в нашем распоряжении «без выкрутасов» только одна линия GPIO2 для «экспериментов», т.к. GPIO0 определяет режим работы при включении модуля: загрузка с UART или работа загруженной программы.
Есть и «более продвинутые» в плане доступных GPIO (pin-ы ввода/вывода) модули, например ESP-07, где есть еще четыре линии. e8266-pinПервым делом, естественно, хочется проверить — работает ли модуль. Тут нам в помощь статья с esp8266.ru про первое включение. Неожиданно встала проблема питания: модуль питается VCC = 3.3В и это напряжение не может быть выше 3.6В, при этом потребляемый ток в пике может достигать 350мА, так что простым 78L33 не обойдешься. Обычно всегда под рукой есть источники 5В, для получения 3.3В рекомендуют LM1117-3.3… Поскреб по сусекам — приспособил модуль питания для макетной платы — там если пять вольт подать на вход трехвольтового стабилизатора, то все получается как надо! Итак, подаем питание на VCC и CH_PD; ноль — на GND. Включаем! С «замиранием сердца» смотрим сети Wi-Fi телефончиком — ЕСТЬ!!! Обнаружена сеть «ESP8266», закрытая, подключиться не удается…e8266-in
Вторая серия: хочется «пощупать» устройство АТ командами… Нужен UART-TTL (а лучше TTL 3.3) — вспоминаем, что таким мы программируем Arduino Pro-mini. Линию UTXD цепляем прямо на вход RxD преобразователя USB-UART (3.3В должно восприниматься ТТЛ логикой как логическая единица!). А вот вход модуля URXD напрямую подключать к выходу ТТЛ «как-то страшно»… Мастерим делитель из резисторов 10К / 20К на входе приемника модуля ESP8266. Включаем, в качестве терминальной программы, на первых порах, попробовал использовать HiperTerminal… После подбора скоростей удалось отловить ready на скорости 9600. Однако команды с клавиатуры модуль отказывался воспринимать напрочь!!! Проблема была в терминальной программе. Выручил Arduino IDE — там есть прекрасный монитор последовательного порта: и скорость можно выбрать, а главное — включить передачу NL & CR при вводе строки… Дело пошло:
at+gmr
ERROR
AT+GMR0018000902-AI03
OK

(!!! Обратите внимание — маленькие буквы — НЕ понимает!)
Вот такую информацию получил я на той же скорости 9600. Прошивка явно не самая свежая:  v 0.18! А на май 2015 уже есть v 0.22!!!
e8266-mnТретья часть — обновляем АТ прошивку на v 0.21. Тут нам придется «допилить» схему — приделать GPIO0 к «земле». Полный вариант схемы подключения — на рисунке. Статья про обновление микропрограммы — тут. В качестве программы-прошивальщика используем ту, что советуют: XTCOM_UTIL. Маленькая, без «выкрутасов», но на практике «пошла» не сразу… пришлось несколько раз перечитать форум и статью. Главное — не лениться отключать питание от модуля перед любой процедурой! К тому же пришлось менять название СОМ порта в Windows: по умолчанию мой PL2303 встал как COM10, а в программе XTCOM_UTIL самый большой — СОМ6(!?). Сошлись на СОМ2! К скорости обмена стенд оказался не критичен — порт открывался на любой, но работа пошла нормально только на 115200. Долго не отрабатывалась команда «Connect» — пока питанием не передернул… Для загрузки выбрал версию 21, т.к. флешка в модуле у меня была на 512КБайт… «Затаив дыхание» ждал пока индикатор процесса не дойдет до конца — ОК!!! Выключаем программу, отключаем GPIO0 от GND, запускаем монитор СОМ порта из Arduino IDE и смотрим, что выдаст «новенький» модуль (!!! но теперь уже на скорости 115200):
ready
AT
OK
AT+GMRAT version:0.21.0.0
SDK version:0.9.5
OK

— вот уже видно, что-то более современное…
Смотрим телефончиком сети Wi-Fi… и обнаруживаем открытую сеть «ESP_A4C3E4», даже подключиться можно, но… что толку?
Сразу уж и второй модуль обновил — с ним все прошло уже «по накатанной»…

Совсем не Arduino… ESP8266. Начало: 1 комментарий

  1. TX-RX Ардуины вы сможете прицепить только в конечном варианте, а в варианте дебага, они будут подключены к компьютеру, с которого вы будете заливать прошивку и читать диагностические сообщения.

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".