Как изменить скорость передачи данных ESP8266 (12e) на постоянной основе?

ВАЖНО: НЕ ИСПОЛЬЗУЙТЕ `AT+IPR=9600`! (см. обновление)

У меня есть модуль ESP8266 12E, который обменивается данными на скорости 115 200 бод. Поскольку я использую его с Arduino Nano с SoftwareSerial, все становится беспорядочным. Поэтому я обнаружил, что мне следует уменьшить скорость передачи данных модуля ESP.

Я нашел эту ссылку о том, как это сделать.

Я задаюсь вопросом

  • Это постоянное изменение или нужно делать это каждый раз после включения модуля?

  • Могу ли я добиться того же, посылая команду с Arduino через SoftSerial? Ну, я думаю, что нет, так как я пробовал и всегда получал ошибку на AT+CIOBAUD=9600 или AT+IPR=9600.

  • Я где-то читал, что в новых версиях прошивки ESP8266 скорость передачи данных по умолчанию равна 9600. Может ли кто-нибудь подтвердить это, и если да, то лучше ли прошить эту новую прошивку?

Производитель модуля:

Ai-Thinker Technology Co.,Ltd.

Я думаю, что текущая версия прошивки 0.3.0. Если я посылаю AT+GMR, я получаю:

sending AT+GMR

response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
 SDK versioo:0.3.0
 Ai�½½
 ‚Šj

Опять какой-то мусор из-за слишком высокой скорости передачи данных.

Другая информация о модуле:

sending AT+RST
response: ?AT+RST
OK
WRT
"%M
<99CT
 ets Jan  8 2013,rst catse:2, boot lode:(3,7)
load 0x40100000ntail 4
chksum 0x89
ld tail 4
chm3 tail 8 r 0 aM
 ón't use rtc mem dat`
sl��oÌÿ
Ai-Thinker Technology Co.,Ltd.

UPDATE

(*) Я использовал модуль FTDI232 для отправки AT+IPR=9600 на мой модуль ESP8266-12E и я сломал его!

НЕ ИСПОЛЬЗУЙТЕ AT+IPR=9600 НА ESP8266(-12E).

Мне не удалось восстановить его до сих пор! Я пытался перепрошить его, но получаю исключения Invalid head.

На новом модуле я послал команду AT+CIOBAUD=9600 и все заработало. Постоянно!

Характеристики моего модуля:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

В зависимости от того, какая последняя версия интерпретатора AT Instruction Set установлена на вашем чипе, две инструкции, которые вы пробовали, могут быть недопустимыми; они не перечислены в документе ESP8266 AT Instruction Set компании Espressif'. Поиск "CIOBAUD" или "IPR" в текущем документе (версия 1.5.3) не дал результатов.

Команды скорости передачи данных теперь "AT+UART_CUR" и "AT+UART_DEF", которые конфигурируют весь UART для текущей сессии или текущей и будущей сессий, соответственно. Прототипом команды в руководстве является:

AT+UART_DEF=, , , , 
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

Я использовал их и могу подтвердить, что они работают.

Что я обнаружил при использовании программного последовательного интерфейса, так это то, что он может достаточно хорошо передавать 115200 бод для отправки команд на устройство (хотя я бы не стал создавать приложение, которое зависит от этого), но он может надежно читать только до 9600 бод. Я'смог изменить скорость передачи данных моих устройств' с 115200 бод на 9600 через программный последовательный порт; вы просто должны ожидать возвращения мусора и игнорировать его:

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.
Комментарии (0)
Решение

Я подключил модуль FTDI232 со скоростью 115200 бод и теперь могу читать спецификации модуля ESP8266:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

После этого я отправил команду AT+IPR=9600, которая сначала показалась мне правильной. Но после перезагрузки модуля я получил только мусорный ответ на любой скорости передачи данных.

НЕ ОТПРАВЛЯЙТЕ AT+IPR=9600 НА ВАШ МОДУЛЬ ESP8266(12e).

Возможно, команда AT+UART_DEF, как упомянул JRobert, работает, но я использовал команду AT+CIOBAUD=9600 и она сработала. Постоянно!

Надеюсь, это может помочь другим.

Комментарии (0)

Похоже, что у вас проблемы с блоком питания. Каков номинал вашего блока питания? И попробуйте добавить небольшой конденсатор между vcc и землей. Также стоит обновить прошивку до версии 0.9, в которой исправлена проблема со скоростью передачи данных.

Вы можете найти новую прошивку на https://github.com/espressif/esp8266_at

Комментарии (2)