Come modificare il baudrate di ESP8266 (12e) in modo permanente?


11

IMPORTANTE: NON UTILIZZARE AT+IPR=9600! (vedi aggiornamento)

Ho un modulo ESP8266 12E che comunica a 115.200 baud. Da quando lo uso con un Arduino Nano con Software, le cose serie diventano confuse. Quindi ho scoperto che avrei dovuto ridurre il baud rate del modulo ESP.

Ho trovato questo link su come farlo.

mi chiedo

  • Si tratta di una modifica permanente o è necessario farlo ogni volta che il modulo viene alimentato?

  • Posso ottenere lo stesso inviando il comando da Arduino su SoftSerial? Beh, immagino non da quando ho provato e ho sempre ricevuto un errore su AT+CIOBAUD=9600o AT+IPR=9600.

  • Ho letto da qualche parte che nelle versioni firmware più recenti dell'ESP8266, la velocità di trasmissione predefinita è 9.600. Qualcuno può confermarlo e, in tal caso, è meglio eseguire il flashing di questo nuovo firmware?

Il fornitore del modulo:

Ai-Thinker Technology Co.,Ltd.

Penso che la versione corrente del firmware sia la 0.3.0. Se invio AT+GMRricevo:

sending AT+GMR

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

Ancora un po 'di immondizia a causa del baud rate che è troppo alto.

Altre informazioni sul modulo:

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.

AGGIORNARE

(*) Ho usato un modulo FTDI232 per inviare AT+IPR=9600al mio modulo ESP8266-12E e l'ho messo in muratura !

NON USARE AT+IPR=9600SU UN ESP8266 (-12E).

Finora non sono riuscito a recuperarlo! Ho provato a ripetere il flashing ma ottengo eccezioni di testa non valide.

Su un nuovo modulo ho inviato il AT+CIOBAUD=9600comando e ha funzionato. Permanentemente!

Le mie specifiche del modulo:

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 

Potresti provare l'hardware seriale? Oppure abbassa il pin di ripristino e parla direttamente con l'ESP tramite USB. Potrebbe verificare se quelli funzionano.
Paolo,

@Paul: il nano ha solo un set di porte seriali hardware. Quindi, se li utilizzo, non riesco più a inviare dati al monitor seriale Arduino, rendendo difficile capire cosa sta succedendo ... Immagino che dovrò andare per l'aggiornamento del firmware.
mvermand

bene potresti usare la porta seriale del software per il debug? Tuttavia avrai bisogno di un cavo "usb-serial / ttl".
Paolo,

1
stackoverflow.com/questions/34248581/… Questo risponderà alla tua domanda.
N.Sinha,

1
Sembra che l'impostazione del baud rate con AT + IPR = 9600 crei anche un ESP01 . Ho provato diversi suggerimenti in questo thread per recuperarlo. La soluzione nel link fornito da Marco Andre Silva ha funzionato per me.
Steffe,

Risposte:


10

A seconda della versione recente dell'interprete del set di istruzioni AT del chip, le due istruzioni che hai provato potrebbero non essere valide; non sono elencati nel documento del set di istruzioni ESP8266 AT di Espressif . Le ricerche di "CIOBAUD" o "IPR" nel documento corrente (versione 1.5.3) non restituiscono risultati.

I comandi di baud rate sono ora "AT + UART_CUR" e "AT + UART_DEF" che configurano l'intero UART per la sessione corrente o le sessioni correnti e future, rispettivamente. Il prototipo del manuale per il comando è:

AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

Li ho usati e posso confermare che funzionano.

Quello che ho trovato usando il software seriale è che può spingere abbastanza bene 115200 baud per inviare comandi al dispositivo (anche se non costruirò un'applicazione che dipende da esso) ma può leggere in modo affidabile fino a 9600 baud. Sono stato in grado di modificare le velocità di trasmissione dei miei dispositivi da 115200 baud a 9600 tramite software seriale; devi solo aspettarti che la spazzatura ritorni e ignorala:

// 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

Ho collegato un modulo FTDI232 a 115200 baud e ora potrei leggere le specifiche del modulo 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 

Dopo di che ho inviato il AT+IPR=9600comando, che prima sembrava fare il trucco. Ma dopo il riavvio del modulo, tutto ciò che ho ottenuto è stata la risposta di immondizia, a qualsiasi baudrate.

NON INVIARE A + IPR = 9600 AL MODULO ESP8266 (12e)

Forse il AT+UART_DEFcomando - come menzionato da JRobert - funziona, ma ho usato il AT+CIOBAUD=9600comando e ha funzionato. Permanentemente!

Spero che questo possa aiutare gli altri.


3

Ho anche fatto esplodere il mio Esp con lo stesso comando. Dopo ore di ricerche ho trovato un modo per ripristinare l'esp in muratura. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware Ho dovuto impostare il baudrate su 115200 anziché su 9600 e tra i file di caricamento ho dovuto scollegare l'esp dal potere . Spero che ciò aiuti te e tutti coloro che hanno fatto lo stesso e hanno trovato il tuo post su Google.


Anche il power cycling dell'ESP tra ogni file è stata la cosa chiave per me: altri siti combinano tutti i file in un singolo esptool.pycomando, ma per me non ha funzionato. Solo dopo averlo suddiviso in singoli comandi, uno per file, e passato da uno all'altro, sono stato finalmente in grado di ripristinare il firmware AT. Grazie per il suggerimento!
davidA

Inoltre, ho provato a utilizzare l' esptool.pyIDF ESP32 (v2.1-beta1) e quello funziona correttamente con un singolo comando per eseguire il flashing di tutti i file sul mio ESP8266 (che supporta anche) - quindi solo un ciclo di alimentazione + GPIO0- GND richiesto.
davidA


0

Sembra che tu abbia problemi di alimentazione. Qual è la tua valutazione dell'alimentazione? e prova ad aggiungere un piccolo condensatore tra vcc e ground. Inoltre è una buona idea aggiornare il firmware a 0.9 che ha risolto il problema di baudrate.

Puoi trovare il nuovo firmware su https://github.com/espressif/esp8266_at


Non penso che questo sia un problema di alimentazione. Ho un alimentatore esterno che è più che capace. Ho provato senza prima e poi Arduino ha continuato a riavviarsi ... Ho trovato su un forum che era dovuto a problemi di alimentazione. Quindi ora sto bene lì. Penso davvero che il problema sia che SoftSerial non è in grado di gestire il baudrate di 115k.
mvermand,

1
esp è davvero schizzinoso, aggiungi un piccolo condensatore tra vcc e ground. Ho anche alimentato il mio da una fonte di alimentazione esterna e ho riscontrato un riavvio.
NccWarp9,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.