Як змінити баудрат ESP8266 (12e) назавжди?


11

ВАЖЛИВО: НЕ ВИКОРИСТОВУЙТЕ AT+IPR=9600! (див. оновлення)

У мене є модуль 12E ESP8266, який спілкується на 115200 бодах. Оскільки я використовую його з Arduino Nano з SoftwareSerial, речі стають безладними. Тому я виявив, що мені слід знизити швидкість передачі модуля ESP.

Я знайшов це посилання про те, як це зробити.

я задаюся питанням

  • Це постійна зміна чи потрібно робити це кожен раз після включення модуля?

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

  • Десь я читав, що в нових версіях прошивки ESP8266 швидкість передачі даних за замовчуванням до 9 600. Хтось може це підтвердити, і якщо так, то краще прошивати цю новішу прошивку?

Постачальник модуля:

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.

ОНОВЛЕННЯ

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

НЕ ВИКОРИСТОВУЙТЕ AT+IPR=9600НА ESP8266 (-12E).

Я так і не встиг відновити це! Я спробував повторно прошивати, але я отримую невірні винятки з голови.

На новому модулі я надіслав 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 

Ви можете спробувати апаратний серій? Або низько потягніть шпильку для скидання, а потім поговоріть з ESP безпосередньо через USB. Може перевірити, чи працюють вони.
Пол

@Paul: нано має лише один набір апаратних послідовних портів. Тож якщо я використовую ті, я більше не можу надсилати дані на послідовний монітор Arduino, що ускладнює розуміння того, що відбувається ... Зрозуміло, мені потрібно піти на оновлення прошивки.
mvermand

добре ви могли б використовувати серійний порт програмного забезпечення для налагодження? Вам знадобиться кабель "usb-serial / ttl".
Павло

1
stackoverflow.com/questions/34248581/… Це відповість на ваше запитання.
N.Sinha

1
Здається, що встановлення швидкості передачі даних з AT + IPR = 9600 також цеглить ESP01 . Я спробував кілька пропозицій у цій темі, щоб відновити його. Розв’язання за посиланням, яке подав Марко Андре Сільва, працювало для мене.
Стефф

Відповіді:


10

Залежно від того, якою останньою версією інтерпретатора AT Instruction Set є ваш чіп, дві інструкції, які ви намагалися, можуть бути невірними; вони не вказані в документі набору інструкцій ESP8266 AT Espressif . Пошуки "CIOBAUD" або "IPR" у поточному документі (версія 1.5.3) не дають результатів.

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

AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
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.

3

Я підключив модуль 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команду, яка спочатку, здавалося, зробила трюк. Але після перезавантаження модуля все, що я отримав, - це відповідь на сміття, в будь-якому бодураті.

НЕ надсилайте за + IPR = 9600 до ВАШОГО МОДУЛЯ ESP8266 (12e)

Можливо, AT+UART_DEFкоманда - як згадував Дж. Роберт - працює, але я використав цю AT+CIOBAUD=9600команду, і вона спрацювала. Постійно!

Я сподіваюся, що це може допомогти іншим.


3

Я також цеглив Esp тим самим командою. Після годин пошуку я знайшов спосіб скинути цегляний esp. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware Мені довелося встановити баудрат на 115200 замість 9600, а між файлами, що завантажують, мені довелося відключити esp від живлення . Я сподіваюся, що це допоможе вам і всім, хто зробив те саме і знайшов вашу публікацію через Google.


Ключовим ділом для мене було також перемикання ESP між кожним файлом - інші сайти об'єднують усі файли в одну esptool.pyкоманду, але це не працювало для мене. Лише після розбиття його на окремі команди, по одній на файл і переключення між ними, я нарешті зміг відновити прошивку AT. Дякую за підказку!
davidA

Крім того, я спробував використовувати те, esptool.pyщо поставляється з IDF ESP32 (v2.1-beta1), і це успішно працює з однією командою для відтворення всіх файлів на моєму ESP8266 (який він також підтримує) - так що лише один цикл живлення + GPIO0- Необхідний ВНД.
davidA


0

Схоже, у вас виникають проблеми з електроживленням. Який ваш рейтинг живлення? і спробуйте додати невеликий конденсатор між VCC і землею. Також хороша ідея оновити прошивку до 0,9, що має виправлену проблему.

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


Я не думаю, що це питання живлення. У мене зовнішній блок живлення, який більш ніж здатний. Я намагався без цього, а потім Arduino продовжував перезавантажуватися ... Я виявив на форумі, що це пов’язано з проблемами живлення. Тож зараз мені там добре. Я дійсно думаю, що проблема полягає в тому, що SoftSerial не може впоратися з бодратами 115k.
mvermand

1
ESSP дійсно прискіпливий, додайте невеликий конденсатор між VCC і землею. Я також живив шахту від зовнішнього джерела живлення і переживав перезавантаження.
NccWarp9
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.