sonyps4.ru

Обновление прошивки ESP8266. ESP8266 — подключение и обновление прошивки

Многие пользователи уже успели обратить свое внимание на чип ESP8266-12, выпущенный компанией Espressif. Стоимость его значительно дешевле по сравнению со стандартной платой Bluetooth-адаптера, да и при меньших габаритах он отличается значительно более широкими возможностями. Теперь все домашние любители получили возможность работы в сети Wi-Fi сразу в двух режимах, то есть подключать свой компьютер к каким-либо точкам доступа или же включать его в качестве такой точки.

С другой стороны, нужно правильно понимать, что такие платы представляют собой не просто шилды, предназначенные только для связи по Wi-Fi. Сам по себе ESP8266 представляет собой микроконтроллер, имеющий собственные UART, GPIO и SPI-интерфейсы, то есть его можно использовать как абсолютно автономное оборудование. Многие после выхода данного чипа назвали его самой настоящей революцией, и с течением времени такие устройства начнут встраиваться даже в самые простые виды техники, но пока устройство является сравнительно новым и какой-либо стабильной прошивки на него нет. Многие специалисты по всему миру стараются изобретать собственные прошивки, ведь заливать их в плату на самом деле не составляет особого труда, но несмотря на различные трудности, устройство уже сейчас можно назвать вполне пригодным к работе.

На данный момент рассматривается только два варианта применения данного модуля:

  • Использование платы в комбинации с дополнительным микроконтроллером или же компьютером, которым будет осуществляться контроль над модулем через UART.
  • Самостоятельное написание прошивки для чипа, что позволяет потом использовать его в качестве самодостаточного устройства.

Вполне естественно, что рассматривать самостоятельную прошивку в данном случае мы не будем.

Глядя на удобство использования и хорошие характеристики, многие люди среди множества микроконтроллеров отдают свое предпочтение модели ESP8266. Подключение и обновление прошивки данного устройства является предельно простым и доступным, и производится на том же железе, на котором осуществляется подключение оборудования к компьютеру. То есть так же через USB-TTL-конвертер или, если кто-то предпочитает другие варианты подключения, может осуществляться через RPi и Arduino.

Как проверить?

Для того чтобы проверить работоспособность только что купленного устройства, вам нужно будет использовать специальный источник стабилизированного напряжения, рассчитанный на 3,3 вольта. Сразу стоит отметить, что реальный диапазон напряжения питания данного модуля составляет от 3 до 3,6 вольт, а подача повышенного напряжения сразу приведет к тому, что вы просто-напросто выведете из строя свой ESP8266. Прошивка и прочее программное обеспечение после подобной ситуации может начать некорректно работать, и вам уже нужно будет ремонтировать устройство или как-то его исправлять.

Чтобы определить работоспособность данной модели микроконтроллера, нужно просто подключить три пина:

  • CH_PD и VCC подключаются к питанию 3,3 вольт.
  • GND подключается к земле.

Если вами используется не ESP-01, а какой-либо другой модуль, и на нем уже изначально присутствует выведенный GPIO15, то в таком случае вам и его нужно будет дополнительно подключить к земле.

Если заводская прошивка запустилась нормально, то в таком случае можно увидеть а затем пару раз мигнет синий. Однако стоит отметить, что красный индикатор питания имеют не все устройства серии ESP8266. Прошивка на некоторых устройствах не предусматривает загорание красного индикатора, если в модуле он отсутствует (в частности, это относится к модели ESP-12).

После подключения в вашей беспроводной сети активируется новая точка доступа, которая будет называться ESP_XXXX, и ее можно будет обнаружить с любого устройства, имеющего доступ к Wi-Fi. В данном случае название точки доступа непосредственно зависит от производителя используемой вами прошивки, и поэтому может быть каким-нибудь другим.

Если точка действительно появляется, вы можете продолжать эксперименты, в противном случае нужно будет проводить повторную проверку питания, а также корректность подключения GND и CH_PD, а если все подключено верно, то, скорее всего, вы все-таки стараетесь использовать сломанный модуль или же на нем просто-напросто установлена прошивка с нестандартными настройками.

Как его быстро подключить?

Стандартный набор, необходимый для подключения данного модуля, включает в себя следующее:

  • сам модуль;
  • беспаечную макетную плату;
  • полноценный набор проводов мама-папа, предназначенные для макетной платы, или же специальный кабель DUPONT M-F;
  • USB-TTL конвертер на основе PL2303, FTDI или же каком-нибудь аналогичном чипе. Наиболее оптимальный вариант - если на USB-TTL адаптер также выводятся RTS и DTR, так как за счет этого можно добиться достаточно быстрой загрузки прошивки из какого-нибудь UDK, Arduino IDE или Sming, не имея даже необходимости в ручном переключении GPIO0 на землю.

Если вами используется конвертер на 5 вольт, то в таком случае нужно будет приобрести дополнительный стабилизатор питания на базе чипа 1117 или каком-либо аналогичном, а также источник питания (для стандартного 1117 вполне неплохо подойдет даже обыкновенная зарядка от смартфона на 5 вольт). Рекомендуется не использовать Arduino IDE или USB-TTL в качестве источника питания для ESP8266, а применять отдельный, так как за счет этого можно избавиться в конечном итоге от массы проблем.

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

Что нужно делать?

В первую очередь стоит отметить тот факт, что в ESP8266 управление может быть несколько разным в зависимости от того, какая конкретно модель вами используется. Таких модулей сегодня представлено достаточно много, и первое, что будет нужно, - это провести идентификацию используемой вами модели и определиться с ее распиновкой. В данной инструкции мы будем говорить о работе с модулем ESP8266 ESP-01 V090, и если вами используется какая-то другая модель с выведенным пином GPIO15 (HSPICS, MTDO), вам нужно будет притянуть его к земле как для стандартного старта модуля, так и для использования режима прошивки.

После этого дважды убедитесь в том, что питающее напряжение для подключенного модуля составляет 3,3 вольта. Как говорилось выше, допустимый диапазон составляет от 3 до 3,6 вольт, и в случае повышения устройство выходит из строя, но при этом питающее напряжение может быть даже значительно ниже 3 вольт, которые заявлены в документах.

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

Особенности подключения

На правом рисунке присутствует подключение UTXD (TX), а также URXD (RX) данного модуля к пятивольтовой логике TTL, и проведение таких процедур осуществляется только на свой страх и риск. К ESP8266 описание говорит о том, что модуль эффективно работает только с 3,3-вольтовой логикой. В преимущественном большинстве случаев даже в случае работы с пятивольтовой логикой оборудование не выходит из строя, но изредка происходят такие ситуации, поэтому подобное подключение является не рекомендованным.

Если у вас нет возможности использовать специализированный USB-TTL конвертер на 3,3 вольта, можно применить делитель на резисторах. Также стоит отметить, что на правом рисунке стабилизатор питания 1117 подключается без дополнительной обвязки, и это действительно рабочая технология, но все-таки лучше всего пользоваться схемой подключения 1117 с конденсаторной обвязкой - нужно сверить ее с ESP8266 datasheet на ваш стабилизатор или использовать уже полностью готовый модуль, основывающийся на базе 1117.

Чтобы запустить модуль, нужно разорвать цепь GPIO0-TND, после чего можно подавать питание. При этом стоит отметить, что делать все нужно именно в таком порядке, то есть сначала убедитесь в том, что GPIO0 «висит в воздухе», и только потом уже подавайте питание на CH_PD и VCC.

Как подключать правильно?

Если вы можете уделить более одного вечера тому, чтобы нормально подключить модуль ESP8266, вы можете использовать более стабильный вариант. На схеме выше вы видите вариант подключения с автоматической загрузкой прошивки.

Стоит отметить, что на изображении выше не показывается использование свободных GPIO или ADC, и их подключение будет непосредственно зависеть от того, что конкретно вы хотите реализовать, но если же вы захотите обеспечить стабильность, не забывайте притягивать все GPIO к питанию, а ADC к земле с использованием подтягивающих резисторов.

Резисторы на 10k при необходимости можно заменить на какие-либо другие в диапазоне от 4,7k до 50k, исключая GPIO15, так как его номинал должен быть не более 10k. Номинал конденсатора, сглаживающего высокочастотные пульсации, может быть несколько иным.

Соединение RESET и GPIO16 через использование резистора deep sleep на 470 Ом может стать необходимым при использовании соответствующего режима, так как для того, чтобы выйти из режима глубокого сна, модуль осуществляет полную перезагрузку, осуществляя подачу низкого уровня на GPIO16. При отсутствии данного соединения режим глубокого сна для вашего модуля будет длиться вечно.

На первый взгляд, может показаться, что GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) и GPIO15 заняты, поэтому использовать их для своих целей не получится, но на самом деле это далеко не так. Достаточно высокий уровень на GPIO0 и GPIO2, а также низкий на GPIO15 могут потребоваться только для первоначального запуска модуля, а в дальнейшем уже можно применять их на свое усмотрение. Единственное, что стоит отметить, - не забывайте обеспечивать нужные уровни до того, как осуществлять полную перезагрузку вашего оборудования.

Также можно использовать TX, RX в качестве альтернативы GPIO1 и GPIO3, но при этом не стоит забывать о том, что после старта модуля каждая прошивка начинает «дергать» ТХ, параллельно занимаясь отправкой отладочной информации в UART0 со скоростью 74480, но, после того как будет проведена успешная загрузка, их можно использовать не только в качестве UART0 для того, чтобы сделать обмен данных с другим устройством, но и в качестве стандартных GPIO.

Для модулей, у которых присутствует небольшое количество разведенных пинов (к примеру, ESP-01), не требуется подключения неразведенных пинов, то есть на ESP-01 разводятся только: GND, CH_PD, VCC, GPIO0, GPIO2 и RESET, и именно их вам нужно будет подтягивать. Нет никакой потребности в том, чтобы припаиваться непосредственно к микросхеме ESP8266EX, а затем притягивать неразведенные пины, если только это вам действительно нужно.

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

Подключение через Arduino

Если у вас по какой-то причине не оказалось USB-TTL конвертера на 3,3 вольт, то в таком случае модуль WiFi ESP8266 можно подключить через Arduino со встроенным конвертером. Здесь вам нужно будет сначала обратить свое внимание на три основных элемента:

  • При использовании в работе с ESP8266 Arduino Reset изначально подключен к GND, чтобы исключить возможность запуска микроконтроллера, и в данном виде он использовался в качестве прозрачного USB-TTL конвертера.
  • RX и TX подключались не «на перекрест», а напрямую - RX-RX (зеленый), ТХ-ТХ (желтый).
  • Все остальное подключается точно так же, как указано выше.

Что нужно учитывать

В данной схеме также требуется согласование уровней TTL 5 вольт Arduino, а также 3,3 вольта на ESP8266, но при этом неплохо может функционировать и так.

При подключении к ESP8266 Arduino может оснащаться стабилизатором питания, не выдерживающим ток, который требуется для ESP8266, вследствие чего, перед тем как его активировать, нужно свериться с даташипом на тот, который используется у вас. Не пробуйте подключать какие-то другие энергопотребляющие элементы вместе с ESP8266, так как это может привести к тому, что встроенный в Arduino стабилизатор питания просто выйдет из строя.

Также есть другая схема подключения ESP8266 и Arduino, в которой используется SoftSerial. Так как для библиотеки SoftSerial скорость порта, равная 115200, имеет слишком высокое значение и не может гарантировать стабильную работу, такой способ подключения использовать не рекомендуется, хотя есть некоторые случаи, в которых все работает вполне стабильно.

Подключение через RaspberryPi

Если вы не располагаете вообще никакими USB-TTL конвертерами, то в таком случае можно использовать RaspberryPi. В данном случае для ESP8266 программирование и подключение осуществляется практически идентично, но при этом здесь все не так удобно, а дополнительно нужно будет использовать также стабилизатор питания на 3,3 вольта.

Для начала RX, TX и GND нашего устройства подключаем к ESP8266, а GND и VCC берем со рассчитанного на 3,3 вольта. Здесь отдельное внимание следует уделить тому, что нужно провести соединение всех GND устройств, то есть стабилизатора RaspberryPi и ESP8266. Если же встроенный в вашу модель устройства стабилизатор может выдерживать до 300 миллиампер дополнительной нагрузки, то в таком случае подключение ESP8266 осуществляется вполне нормально, но это все делается только на свой страх и риск.

Настраиваем параметры

Когда вы разобрались, как подключить ESP8266, нужно убедиться в том, что драйвера к вашим устройствам установлены корректно, вследствие чего в системе был добавлен новый последовательный виртуальный порт. Здесь нужно будет использовать программу - терминал последовательного порта. В принципе, утилиту можно подобрать любую на свой вкус, но при этом вы должны правильно понимать, что любая команда, которая будет отправляться вами в последовательный порт, в конце должна иметь завершающие символы CR+LF.

Достаточно широким распространением пользуются утилиты CoolTerm и ESPlorer, причем последняя позволяет не вводить ESP8266 самостоятельно, и при этом дает проще работать с lua скриптами под NodeMCU, поэтому ее можно вполне использовать в качестве стандартного терминала.

Для нормального подключения к придется проделать немало работы, так как прошивки для ESP8266 в большинстве своем являются разнообразными и активация может проводиться на разных скоростях. Чтобы определиться с наиболее оптимальным вариантом, вам нужно будет перебрать три основных варианта: 9600, 57600 и 115200.

Как перебирать?

Для начала подключитесь в терминальной программе к последовательному виртуальному порту, выставляя параметры 9600 8N1, после чего проводите полную перезагрузку модуля, отключая CH_PD (chip enable) от питания, после чего снова активируйте его, передергивая CH_PD. Также можно провести кратковременное замыкание RESET на землю для того, чтобы перезагрузить модуль, и наблюдать за данными в терминале.

В первую очередь светодиоды устройства должны отображаться точно так же, как это показано в описании процедуры проверки. Также вы должны наблюдать в терминале набор различных символов, который будет заканчиваться строкой ready, а если ее нет, проводится переподключение к терминалу на другой скорости с последующей перезагрузкой модуля.

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

Как обновлять прошивку?

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

Для начала скачивайте новую версию прошивки с официального сайта, а также скачивайте специальную утилиту для прошивки. Здесь отдельное внимание следует уделить тому, какая операционная система установлена на той машине, с которой работает ESP8266. Подключение устройства лучше всего проводить к системам старше Windows 7.

Для стандартных ОС Windows вполне оптимально будет использовать программу под названием XTCOM UTIL, которая особенно удобной в работе, если прошивка состоит только из одного файла. Лучшим мультиплатформенным вариантом стоит назвать утилиту esptool, которая, правда, требует python, а также необходимость указания параметров через командную строку. Помимо этого, в ESP8266 подключение основных функций позволяет удобно сделать программа Flash Download Tool, которая имеет достаточно большое количество настроек, а также удобную технологию установки прошивок из нескольких файлов.

Далее отключайте свою терминальную программу от последовательного порта, а также полностью отключайте CH_PD от питания, присоединяйте GPIO0 модуля к GND, и после этого CH_PD можно будет вернуть обратно. В конечном итоге просто запускайте программу для модульной прошивки и загружайте ее в ESP8266 реле.

В преимущественном большинстве случаев прошивка загружается в модуль со скоростью в районе 115200, но при этом специальный режим предусматривает автоматическое распределение скорости, вследствие чего прошивка может проводиться на скорости более 9600, обновляя доступные функции ESP8266. Arduino использовался для подключения или USB-TTL - здесь не играет особой роли, и здесь предельная скорость уже зависит от длины проводов, используемого конвертера и целого ряда других факторов.

… Вообщем, этот материал не ограничивается только одной темой Ардуино.

Тема ESP8266 - довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE - порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме , причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.

Данное видео, полностью дублирует материал, представленный в статье ниже.

Ну что же, мы уже умеем подключать ESP8266 и переводить его в режим программирования, теперь давайте перейдём к чему-то более полезному.

Скажу сразу - один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно - ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.

Для начала, на офф.сайте качаем последнюю версию Arduino IDE , на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?

Запускаем среду разработки и тут же идём в Файл/Настройки:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Потом идём Инструменты/Плата:/Менеджер плат...:

Перед нами появится окно менеджера плат, листаем его до самого низа, и если всё сделано правильно мы увидим что-то подобно этому:

Кликаем курсором по надписи "esp8266 by ESP8266 Community " после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community " появится «INSTALLED» то есть установлено:

Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:

Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) , потом ставим Upload Speed:«115200»:

Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:

Заметьте, 74880 - не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.

По умолчанию скорость должна быть 115200, но в отдельных случаях может быть и 9600 и другие… Так что попробуйте подобрать.

После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.

Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.

Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в ).

Давайте зашьём мигалку штатным светодиодом:

// By MrПоделкинЦ youtube.com/RazniePodelki // special to сайт/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() { pinMode(TXD, OUTPUT); } void loop() { digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); }

Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей , и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).

Мигание светодиодом это конечно хорошо, но надо бы какой-то веб-сервер заделать или начать управлять светодиодом хотя бы при помощи кнопок в браузере, не так ли? Но об этом я расскажу уже как-нибудь в другой раз.

А теперь как прошить назад родную прошивку , да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher , которая изначально предназначена для прошивки загрузчика NodeMCU . Но как оказалось, она отлично прошивает и другие прошивки.

Я прикреплю к статье архив с данной программой и прошивкой для удобства, но всегда можно скачать новую версию NodeMCU Flasher.

В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:

Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:

(Если захотите прошить загрузчик NodeMCU - убираете хрестик там где его не было, и ставите - где он был, то есть около «INTERNAL://NODEMCU»).

Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.

Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:

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

Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:

Как видите всё нормально прошилось.

Для работы с RemoteXY модуль ESP8266 должен иметь версию прошивки с поддержкой AT команд не ниже v0.40. Для проверки версии модуля, а так же для изменения прошивки в случае необходимости, подключите модуль к компьютеру через последовательный порт. Модуль можно подключить через плату Arduino или через USB-UART адаптер.

Подключение через плату Arduino

При использовании Arduino основной чип ATmega переводится в режим сброса, активным остается только встроенный USB-UART преобразователь. Для этого контакт RESET соединяется с землей. Контакты RX и TX подключаются к ESP8266 напрямую, а не крест накрест, как если бы они подключались для работы с контроллером.

Подключение через USB-UART адаптер

Преобразователь должен иметь выход источника 3.3V для питания ESP8266. Так же этот источник должен обеспечить необходимый ток не менее 200мА.



Контакт CPIO0 определяет режим работы модуля. При не подключенном контакте модуль работает в штатном режиме и выполняет AT команды. При замыкании контакта на землю, модуль переводится в режим обновления встроенной прошивки. Перевод модуля в режим прошивки требует, что бы контакт CPIO0 был подключен к «земле» в момент подачи питания на модуль. Если замыкать контакт при работающем модуле, перевод модуля в режим обновления прошивки не произойдет.

Проверка текущей версии

Для отправки AT команд и просмотра ответов необходимо использовать любую программу монитора последовательного порта. Очень хорошо подходит терминальная программа из Arduino IDE. В программе необходимо установить режим отправки команд с завершающим символом перевода строки и возвратом каретки. Скорость работы модуля по умолчанию 115200 бит/сек. Для работы модуля в штатном режиме контакт CPIO0 должен быть отключен.

Проверить текущую версию прошивки можно выполнив AT команду: AT+GMR. Пример ответа модуля:

AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0

Build:1.3.0.2 Sep 11 2015 11:48:04
OK

Так же стоит узнать размер флеш памяти вашего модуля, от этого зависят настройки адресов загрузки данных при обновлении прошивки. В данной инструкции описана прошивка модуля с размером флеш памяти 8Mbit(512KB+512KB) или 16Mbit(1024KB+1024KB), как наиболее распространенных. Размер флеш памяти можно узнать, выполнив AT команду сброса модуля: AT+RST.

Ets Jan 8 2013,rst cause:2, boot mode:(3,1)

Load 0x40100000, len 1396, room 16
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0

2nd boot version: 1.4(b1)
SPI Speed: 40MHz
SPI Mode: DIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

#т#n"t use rtc mem data
slЏ‚rlМя
Ai-Thinker Technology Co.,Ltd.

Программа для прошивки

Для обновлении прошивки необходимо скачать программу для прошивки и саму прошивку. Программа для прошивки ESP8266 будем использовать Flash Download Tools v2.4 с официального сайта Espressif Systems. Ссылка на страницу загрузки на официальном сайте: . Необходимо перейти в раздел "Tools".

Ссылка на программу в нашем файловом хранилище: FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar

Прошивка

Прошивку так же можно скачать с официального сайта. Ссылка на страницу загрузки на официальном сайте: . Необходимо перейти в раздел «SDKs & Demos» и загрузить прошивку ESP8266 NONOS SDK версии не менее v1.3.0. Именно с этой версии прошивки реализована поддержка AT команд v0.40 и более.

Ссылка на прошивку в нашем файловом хранилище: esp8266_nonos_sdk_v1.4.0_15_09_18_0.rar

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

Настройка

Запускаем программу прошивки Flash Download Tools v2.4 (одноименный.exe файл). В открывшемся окне необходимо правильно указать загружаемые файлы и настройку соединения.


Загружаемые файлы располагаются в каталоге bin архива с прошивкой. Для каждого файла необходимо указать правильный адрес загрузки. Используйте следующую таблицу для выбора файлов и назначения адресов:

Установите следующие параметры настройки:

  • SPIAutoSet - установлен;
  • CrystalFreq - 26M;
  • FLASH SIZE – 8Mbit или 16Mbit в зависимости от размера флеш-памяти;
  • COM PORT – выберите порт, к которому подключена ESP;
  • BAUDRATE – 115200

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

Последовательность шагов для прошивки ESP8266

1. Подключите модуль к компьютеру согласно схеме подключения в этой статье.

2. Запустите монитор последовательного порта. Выполните AT команды AT+RST и AT+GMR для определения текущей версии прошивки и размера памяти модуля. Этот шаг так же позволяет проверить правильность подключения модуля.

3. Запустите программу прошивки Flash Download Tools, правильно настройте загружаемые файлы, установите настройки.

4. Отключите питание модуля ESP8266.

5. Соедините контакт CPIO0 на землю.

6. Подайте питание на модуль ESP8266.

7. Нажмите в программе прошивки кнопку START

8. Дождитесь окончания прошивки модуля. По окончании прошивки появится надпись FINISH зеленого цвета.

9. Отсоедините питание модуля ESP8266. Отсоедините землю с контакта CPIO0.

10. Включите модуль, запустите монитор последовательного порта. Убедитесь в работоспособности модуля и новой версии прошивки выполнив AT команду AT+GMR.

Цели и причины

Это вторая статья автора об интегральной микросхеме ESP8266, содержащей полнофункциональный 32-битный RISC микроконтроллер и встроенную Wi-Fi схему 802.11 b/g/n. описывала использование Arduino IDE для программирования ESP8266 и содержит важную информацию, которая здесь повторяться не будет. Если вы не читали её, то рекомендуем сделать это.

В интернете нет недостатка в информации об ESP8266; на самом деле, может быть из неё слишком много... неправильной. Разработчики микросхемы, Espressif , по-видимому, решили не только не заниматься производством на стороне, но и избегать непосредственного участия в разработке линейки модулей ESP, которые используют микросхему ESP8266. Вместо этого, они предлагают информацию и услуги поддержки через форум для тех, кто готов с упорством и терпением ходить по лабиринту. Добавление к путанице - это существование другого форума, который, несмотря на то, что назван esp8266.com , не управляется компанией Espressif. Кроме того, существует множество перепродавцов, видеоблоггеров, и писателей, которые также предлагают информацию от качественной до спутанной настолько, что она может быть полностью неправильной.

ESP модули доступны в различных источниках, а прошивки, содержащиеся в чипах ESP8266 на модулях, почти всегда являются устаревшими и часто вызывают подозрения относительно их происхождения. Также иногда подозрительны "обновления" и инструменты, которые доступны в тех же источниках. Следовательно, целью этой статьи является документирование процедуры загрузки последней доступной прошивки непосредственно от Espressif и её установка с использованием инструмента программирования, предоставляемого Espressif.

Подключение оборудования

Чтобы обновить прошивку на любом ESP8266, необходимо правильно подать на него питание и подключить его к компьютеру. Кроме того, необходимо добавить средства сброса микросхемы и перевода её в режим загрузки. На приведенной ниже схеме и фотографии показано рекомендуемое подключение; обратите внимание, что цвета проводов на схеме соответствуют цветам на фотографии. Как вы видите, я буду обновлять прошивку на модуле ESP-01, но ти же самые соединения будут работать и с другими модулями, если используются те же входы/выходы ESP8266, как показано на схеме. Дополнительные сведения смотрите в .

Более надежная схема прошивки приведена в этой статье .


Программа терминала PuTTY

Когда подключение оборудования завершено, следующий шаг - включить ESP8266 и попытаться связаться с ним. Для этого требуется простая терминальная программа; мы будем использовать PuTTY, бесплатную программу, доступную здесь. Вы можете использовать другую терминальную программу, но вам придется учесть различия между ней и PuTTY.

Откройте PuTTY и нажмите на переключатель Serial. Введите номер COM порта (который должен быть меньше 10) и скорость передачи (скорее всего, это будет 115200 или 9600).

В маленьком окне Saved Sessions (Сохраненные сеансы) введите ESP8266 и нажмите кнопку Save (Сохранить) . Окно PuTTY должно быть похоже на изображение ниже.


Нажмите кнопку Open (Открыть) , после чего должно открыться окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT , но не нажимайте Enter . Вы должны увидеть AT в окне терминала PuTTY. Если этого не произошло, вы, возможно, выбрали не тот COM порт или неправильную скорость передачи. Закройте PuTTY и начните этот подраздел статье с самого начала. Допустимые скорости передачи: 9600, 19200, 38400, 74880, 115200, 230400, 460800 и 921600; попробуйте по очереди каждую из них, пока не найдете ту, с которой всё заработает.

Когда вы увидите AT в окне терминала PuTTY, удерживая клавишу Ctrl , нажмите клавишу M , а затем J . Отпустите клавишу Ctrl . Вы должны увидеть OK в окне терминала PuTTY, как показано на рисунке ниже.


Обратите внимание, что если вы делаете ошибку при вводе в окне сеанса терминала, возможно, исправить эту ошибку не удастся. Вместо того, чтобы пытаться отредактировать и исправить ошибку, часто лучше просто удерживать клавишу Ctrl и нажимать сначала клавишу M , а затем J , что сгенерирует сообщение об ошибке. Затем вы можете начать снова и ввести правильный текст.

Когда вы увидите первое сообщение OK , это значит, что вы преодолели большое препятствие. Теперь вы знаете, что оборудование подключено правильно, модуль ESP работает, и вы правильно выбрали COM порт и скорость передачи. OK

Теперь снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить) Open (Открыть)


В первой строке выше вы видите команду AT+GMR , которую вы набрали. Как вы, возможно, знаете или догадались, схема команд, которую мы используем для связи с ESP8266, называется «набор AT команд», потому что все команды начинаются с букв « AT ».

К сожалению, существует множество версий наборов AT команд; все они содержат некоторое количество одинаковых команд, но есть много AT команд, которые не являются стандартными для всех наборов AT команд. Даже в сообществе ESP8266 существует несколько версий. Вторая строка указывает, что это конкретное устройство 8266 запрограммировано прошивкой, которая использует версию 0.25.0.0 AT команд. Где-то есть документ, который определяет команды, которые включены в версию 0.25.0.0, но и без этого документа вы можете использовать метод проб и ошибок для определения поддерживаемых AT команд. В лучшем случае это будет очень утомительный процесс, но, к счастью, есть решение, которое будет объяснено в чуть позже.

Третья строка определяет версию программного обеспечения (SDK), которая использовалась для данного конкретного ESP8266, как версия 1.1.1. Каждый SDK также включает в себя набор AT команд, который является частью прошивки, и подходит для управления этой прошивкой. Очевидно, версия 0.25.0.0 AT команд работает с версией 1.1.1 SDK. Но всё же нужен документ, который описывает AT версию 0.25.0.0, чтобы узнать, какие команды включены. Существует лучший способ, описанный в следующем разделе этой статьи, но перед тем, как перейти к нему, попробуем еще одну AT команду и посмотрим, что произойдет.

Включите Caps Lock у себя на компьютере и введите AT+CWLAP . Когда вы увидите AT+CWLAP в окне терминала PuTTY, удерживая клавишу Ctrl , нажмите сначала клавишу M , а затем J . Отпустите клавишу Ctrl . Через несколько секунд окно терминала должно выглядеть так, как показано на скриншоте ниже.


AT+CWLAP заставляет ESP8266 перечислить все доступные Wi-Fi точки доступа. В приведенном выше случае были найдены две точки доступа: одна называется "ATT936", а вторая - "tracecom 2.4". Разумеется, ваши результаты будут отличаться и должны включать вашу собственную Wi-Fi сеть, а также сети ваших соседей.

Закройте окно сеанса терминала PuTTY и нажмите OK , когда PuTTY спросит, уверены ли вы.

ESP Flash Download Tool

Хотя это редко упоминается в интернете, Espressif, разработчики микросхемы ESP8266, создали некоторую часть программного обеспечения для обновления прошивки в своих чипах. Это ESP Flash Download Tool, и этот инструмент доступен . Скачайте, разархивируйте и установите последнюю версию на вашем компьютере; на момент написания статьи это FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar .

Запустите инструмент, и вы должны будете увидеть два открывшихся окна: окно графического интерфейса (GUI) с полями ввода информации и терминальное окно, в котором ведется лог выполненных действий.

Окно графического интерфейса (GUI) ESP Flash Download Tool

Стоит отметить несколько вещей, но нет поводов для беспокойства:

  • окно (GUI) идентифицируется как V2.3, в то время как окно журнала идентифицируется как V2.4. По-видимому, окно GUI отмечено неправильно;
  • поля выбора COM порта и скорости передачи в окне GUI могут уже содержать данные;
  • поля ввода адресов в окне GUI могут уже содержать данные;
  • окно лога уже может содержать данные.

Получение последней прошивки

У Espressif есть страница, на которой размещается последняя версия прошивки. Перейдите на страницу bbs.espressif.com , нажмите на запись SDKs в списке Downloads , а затем кликните на « latest release » в разделе Announcements . На момент написания статьи на этой странице можно было увидеть следующее:


Последняя версия Non-OS SDK (Software Development Kit) - это то, что нам нужно, и, похоже, что, если вы кликните на " Latest Version: 1.4.0 ", то получите последнюю версию. Но это не совсем так; обратите внимание, что имеется доступный патч, указанный как esp_iot_sdk_v1.4.1_15_10_22 . Это не патч; это исправленная версия прошивки версии 1.4.0. Нам нужен он и bin файлы AT_v0.50. Кликните по очереди на каждом из них и загрузите файлы.

Конечно, к тому времени, когда вы это прочитаете, могут появиться более свежие версии SDK, и их местоположения могут быть изменены, но, по крайней мере, вы знаете, где искать. Просто убедитесь, что внимательно прочитали, чтобы быть уверенным, что скачиваете последнюю версию. Как мы увидели ранее, это не всегда бывает очевидно.

Возможно, вы заметили, что есть раздел для скачивания документов. Все они содержат качественную информацию, но иногда существенная её часть теряется при переводе с китайского на английский. На данный момен не забудьте получить последние версии ESP8266 AT Instruction Set и Espressif IOT SDK User Manual .

Установка прошивки

Запустите ESP flash download tool и убедитесь, что ни в одном чекбоксе в левом верхнем углу окна GUI не поставлена галка. Введите COM порт, который вы используете, и скорость передачи 115200 в полях ввода в нижней части окна. Обратите внимание, что при вводе данных они записываются в окне журнала.

Подайте питание на свою сборку для программирования ESP и подключите её к компьютеру. Нажмите и удерживайте кнопку Reset , а затем нажмите и удерживайте кнопку Flash . Отпустите кнопку Reset , а затем отпустите кнопку Flash . Нажмите кнопку START окне GUI инструмента прошивки ESP. Программа загрузки флэш-памяти должна проверить ESP8266 в вашей сборке и создать отчет, похожий на тот, что приведен ниже. Нажмите и отпустите кнопку Reset на вашем макете, чтобы выйти из режима прошивки ESP8266 и возобновить нормальную работу.


Обратите внимание, что теперь окно GUI содержит информацию об ESP8266, включая размер флэш-памяти (в примере 8 Мбит), тактовую частоту (в примере 26 МГц) и два MAC-адреса для чипа. Такая же информация содержится в окне журнала.

Затем кликните в окне GUI по чекбоксу с надписью " SpiAutoSet ", что заставит инструмент загрузки автоматически выбрать правильные размер флэш-памяти и тактовую частоту.

Теперь нам нужно выбрать файлы для установки в ESP8266 и установить начальный адрес памяти для каждого файла. Чтобы обновить ESP чип, необходимо правильно установить четыре файла. Откройте «Руководство пользователя Espressif IOT SDK» и найдите раздел о записи образов во флэш-память. В версии 1.4 руководства он начинается со страницы 20. Затем найдите подраздел, который описывает версию поддерживаемую Cloud Update (FOTA), и в этом подразделе найдите таблицу о размере флэш-памяти в вашем ESP8266. В этом примере размер флэш-памяти составляет 8 Мбит, что равно 1024 килобайт, следовательно, в таблице 2 на странице 25 руководства содержится информация, необходимая для примера. Посмотрим на рисунок ниже.


Необходимы эти четыре файла: esp_init_data_default.bin , blank.bin , boot.bin и user1.bin . Адрес, по которому должен быть установлен каждый из файлов, отображается рядом с именем файла. Первые три из необходимых файлов находятся в каталоге esp_iot_sdk_v1.4.1_15_10_22 , ранее скачанном с bbs.espressif.com, а четвертый расположен в AT_v0.50 bin files . Перейдите туда, где находятся эти загруженные файлы, и скопируйте пути к ним в поля ввода в верхней части окна GUI программы Flash Download Tool; введите правильный адрес для каждого файла в поле рядом с именем файла. Выполните следующие шаги для каждого файла:

  • кликните внутри поля ввода " set firmware path ";
  • кликните по кнопке... справа от поля ввода;
  • перейдите к месту хранения файла и кликните по файлу. GUI автоматически введет путь к файлу в поле ввода;
  • введите правильный адрес (из таблицы) для каждого файла.

Обратите внимание, что файлы, которые должны быть загружены, могут быть не такими, как те, что указаны в таблице в этом примере, но будут близки к ним.

Теперь кликните на четыре флажка слева от имени каждого из файлов. Окно графического интерфейса программы Flash Download Tool должно быть похоже на рисунок ниже. Дважды проверьте адреса по таблице.

На своем макете прошивки ESP нажмите и удерживайте кнопку Reset , а затем нажмите и удерживайте кнопку Flash . Отпустите кнопку Reset , а затем отпустите кнопку Flash . Нажмите кнопку START окне GUI инструмента прошивки ESP. Должна начаться загрузка, и её прогресс должен быть показан в окне графического интерфейса и окне журнала Flash Download Tool, как показано ниже.


Как показано выше, успешная операция прошивки флэш-памяти приведет к тому, что все файлы будут отправлены в ESP8266, а COM порт будет закрыт.

Проверка успешности прошивки

Когда операция прошивки будет завершена, закройте программу Flash Download Tool. Снимите питание с макета программирования ESP, а затем снова подключите питание.

Снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить) . Это должно поместить ранее выбранные вами настройки COM порта и скорости передачи в соответствующие окна. Нажмите Open (Открыть) , и откроется новое окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT , но не нажимайте Enter . Вы должны увидеть AT в окне терминала PuTTY. Введите символ + , а затем GMR . Когда вы увидите AT+GMR в окне терминала PuTTY, удерживая клавишу Ctrl , нажимите сначала клавишу M , а затем J . Отпустите клавишу Ctrl . В окне терминала PuTTY вы должны увидеть информацию о прошивке ESP8266, аналогичную показанной ниже.


Как вы можете видеть, в ESP8266 очевидно установлена новая прошивка. Она была обновлена с SDK версии 1.1.1 на SDK версии 1.4.0. Кроме того, также была установлена соответствующая версия 0.50.0.0 набора AT команд.

Закройте окно сеанса терминала PuTTY и нажмите OK , когда PuTTY спросит, уверены ли вы.

И напоследок

Пара тренировок, и весь процесс обновления прошивки займет гораздо меньшее время, чем требуется для прочтения данной статьи. Как только вы сделаете это, то будете уверены в том, что находится внутри вашего ESP8266 и сможете сосредоточиться на своем Wi-Fi проекте, вместо угадывания прошивки ESP и надежды на поддержку необходимого набора AT команд.



Загрузка...