Como alterar a taxa de transmissão do ESP8266 (12e) permanentemente?


11

IMPORTANTE: NÃO USE AT+IPR=9600! (ver atualização)

Eu tenho um módulo ESP8266 12E que se comunica em 115.200 bauds. Como eu o uso com um Arduino Nano com SoftwareSerial, as coisas ficam confusas. Então, descobri que deveria reduzir a taxa de transmissão do módulo ESP.

Encontrei este link sobre como fazê-lo.

estou pensando

  • É uma alteração permanente ou você precisa fazer isso sempre que o módulo é ligado?

  • Posso conseguir o mesmo enviando o comando do Arduino pelo SoftSerial? Bem, acho que não desde que tentei e sempre recebo um erro em AT+CIOBAUD=9600ou AT+IPR=9600.

  • Li em algum lugar que, nas versões mais recentes do firmware do ESP8266, a taxa de transmissão é 9.600. Alguém pode confirmar isso? Em caso afirmativo, é melhor atualizar esse firmware mais recente?

O fornecedor do módulo:

Ai-Thinker Technology Co.,Ltd.

Eu acho que a versão atual do firmware é 0.3.0. Se eu enviar AT+GMR, recebo:

sending AT+GMR

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

Novamente um pouco de lixo por causa da taxa de transmissão que é muito alta.

Outras informações sobre o módulo:

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.

ATUALIZAR

(*) Usei um módulo FTDI232 para enviar AT+IPR=9600para o meu módulo ESP8266-12E e o coloquei em bloco !

NÃO USE AT+IPR=9600EM UM ESP8266 (-12E).

Não consegui recuperá-lo até agora! Tentei voltar a piscar, mas recebo exceções de cabeça inválidas.

Em um novo módulo, enviei o AT+CIOBAUD=9600comando e funcionou. Permanentemente!

Especificações do meu módulo:

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 

Você poderia tentar a série de hardware? Ou puxe o pino de redefinição para baixo e fale com o ESP diretamente via USB. Pode verificar se isso funciona.
Paulo

@ Paul: o nano possui apenas um conjunto de portas seriais de hardware. Portanto, se eu usá-los, não consigo mais enviar dados ao Monitor Serial do Arduino, dificultando a compreensão do que está acontecendo ... Acho que vou precisar atualizar o firmware.
Mvermand 13/05

bem, você poderia fazer uso do serialport do software para depuração? Você precisará de um cabo "usb-serial / ttl".
Paul

11
stackoverflow.com/questions/34248581/… Isso responderá à sua pergunta.
N.Sinha 26/02

11
Parece que definir a taxa de transmissão com AT + IPR = 9600 também gera um ESP01 . Tentei várias sugestões neste segmento para recuperá-lo. A solução no link fornecido por Marco Andre Silva funcionou para mim.
Steffe

Respostas:


10

Dependendo da versão recente do interpretador AT Instruction Set que seu chip possui, as duas instruções que você tentou podem não ser válidas; eles não estão listados no documento do conjunto de instruções ESP8266 AT da Espressif . As pesquisas por "CIOBAUD" ou "IPR" no documento atual (versão 1.5.3) não retornam resultados.

Os comandos da taxa de transmissão agora são "AT + UART_CUR" e "AT + UART_DEF", que configuram o UART inteiro para a sessão atual ou para as sessões atuais e futuras, respectivamente. O protótipo do manual para o comando é:

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

Eu os usei e posso confirmar que eles funcionam.

O que eu descobri usando o serial de software é que ele pode enviar 115200 baud o suficiente para enviar comandos para o dispositivo (embora eu não construa um aplicativo que dependa disso), mas só pode ler com segurança até 9600 baud. Consegui alterar as taxas de transmissão de meus dispositivos de 115200 para 9600 em serial de software; você só precisa esperar que o lixo volte e ignorá-lo:

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

Conectei um módulo FTDI232 a 115200 baud e agora podia ler as especificações do módulo 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 

Depois disso, enviei o AT+IPR=9600comando, que primeiro parecia fazer o truque. Mas, após a reinicialização do módulo, tudo o que obtive foi a resposta ao lixo, a qualquer taxa de transmissão.

NÃO ENVIE AT + IPR = 9600 PARA O MÓDULO ESP8266 (12e)

Talvez o AT+UART_DEFcomando - como mencionado por JRobert - funcione, mas eu usei o AT+CIOBAUD=9600comando e funcionou. Permanentemente!

Espero que isso possa ajudar os outros.


3

Também misturei meu Esp com o mesmo comando. Depois de horas pesquisando, encontrei uma maneira de redefinir o esp emparedado. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware Eu tive que definir a taxa de transmissão para 115200 em vez de 9600, e entre os arquivos enviados tive que desconectar o esp da energia . Espero que ajude você e todos que fizeram o mesmo e encontraram sua postagem no Google.


Fazer o ciclo de energia do ESP entre cada arquivo também foi a coisa mais importante para mim - outros sites combinam todos os arquivos em um único esptool.pycomando, mas isso não funcionou para mim. Somente depois de dividi-lo em comandos individuais, um por arquivo e alternar entre cada um, finalmente consegui restaurar o firmware AT. Obrigado pela dica!
precisa saber é o seguinte

Além disso, tentei usar o esptool.pyque acompanha o ESP32 IDF (v2.1-beta1) e que funciona com sucesso com um único comando para atualizar todos os arquivos no meu ESP8266 (que também suporta) - para que apenas um ciclo de energia + GPIO0- GND necessário.
DavidA


0

Parece que você está tendo problemas com a fonte de alimentação. Qual é a sua classificação de fonte de alimentação? e tente adicionar um pequeno capacitor entre vcc e terra. Também é uma boa idéia atualizar o firmware para 0.9, que possui um problema de baudrate corrigido.

Você pode encontrar um novo firmware em https://github.com/espressif/esp8266_at


Eu não acho que isso seja um problema de fonte de alimentação. Eu tenho uma fonte de alimentação externa que é mais do que capaz. Eu tentei sem antes e, em seguida, o Arduino continuou reiniciando ... Encontrei em um fórum que era devido a problemas de fonte de alimentação. Então agora estou bem lá. Realmente acho que a questão é que o SoftSerial não pode lidar com a taxa de transmissão de 115k.
Mvermand #

11
esp é muito exigente, adicione um pequeno capacitor entre vcc e terra. Eu também alimento o meu de uma fonte de energia externa e estava passando por reinicializações.
NccWarp9
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.