Сброс параметров (reset) чипа ESP8266 к изначальным настройкам

Большинство пользователей успело уже изучить и прикупить чип ESP8266-12, который был недавно выпущен Espressif. Главным достоинством разработки является её стоимость, в сравнении со стандартными платами Bluetooth-адаптерами.

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

В каких случаях необходим reset для ESP8266

Для начала стоит разобраться, что вообще подразумевается под «reset». В данном случае – это сброс параметров чипа к изначальным настройкам, в том числе и тех, что могли быть изменены пользователем вследствие загрузки кода и программ.

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

Распиновка ESP-12
Распиновка ESP-12

Вследствие таких манипуляций что-то может поломаться (из-за ошибок программного кода), из-за чего плата просто перестанет отвечать на посылаемые команды. Но или, что происходит намного чаще, человек просто захочет сбросить все настройки и очистить память. И тогда ему пригодится reset и сброс всех изменений. В данном случае это перепрошивка АТ, при которой все команды для изменения параметров, вводимые пользователем ранее, будут забыты.

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

Сам "франкенштейн" можно найти здесь - https://github.com/nekromant/esp8266-frankenstein

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

В самой плате нет программируемой памяти, из-за чего многие предпочитают использовать внешнюю на 512 кб. Именно на неё заливается базовая прошивка для распознавания АТ-команд через интерфейс UART.

Именно когда нарушается целостность тестового ПО и приходится заливать в флеш-память своё. Но это далеко не единственная причина для подобных действий. Дело в том, что иногда не хватает функционала, даваемого этой прошивкой, оттого она и называется «тестовой», и необходимо совершить «reset», стерев её, а затем подгрузить на плату уже свою. Но как же это сделать?

Как сделать reset для ESP8266

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

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

Если вы всё же решились сменить ПО, то для начала нам необходимо освободить память. Сделать это можно одним из двух способов.

Способ 1

Если вы не хотите лишних сложностей, то этот путь для вас. Необходимо перевести чип, при программированном замыкании, с интерфейса GPIO0 на GND, после чего подключить при помощи usb—ttl переходника к вашему ПК, заранее установив на компьютер утилиту XTCOM_UTIL (подойдёт любой её аналог).

Однако здесь могут возникнуть сложности, ведь отцепить GPIO0 от VCC выходит далеко не у всех. В зависимости от обстоятельств, задача может стать практически невыполнимой, но зачастую описанных выше действий будет достаточно, чтобы получить доступ к флеш-памяти и запрограммировать её на своё усмотрение.

Способ 2

Если же у вас возникли ожидаемые сложности, то существует более сложный, но при этом полностью рабочий способ зашить в память своё ПО. Необходимо взять в руки припой с паяльником и попросту отсоединить память, а затем уже использовать внешний программатор. Проще всего это сделать с помощью дешёвых китайских комбайнов, наподобие CH341А, стоят они недорого, а со своей задачей справляются на отлично.

Программатор CH341A
Программатор CH341A

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

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

Сам "франкенштейн" можно найти здесь - https://github.com/nekromant/esp8266-frankenstein

Если вы всё сделаете правильно, то это был последний раз, когда паяльник лежал у вас в руках при ресете данного микроконтроллера. Найти последние версии прошивок можно на github, там же авторы приложили инструкцию по установке и базовые команды, воспринимаемые ПО.

Заключение

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

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

Ардуино+