Gravação de Firmware no ESP8266




Introdução

Se o seu módulo ESP8266 não está respondendo a comandos AT e você já verificou muitas vezes seu circuito, seu código e até as configurações do monitor serial, é possível que ele esteja sem o firmware de comandos AT. O firmware é apagado quando um código é gravado diretamente no módulo, assim como os códigos antigos são apagados em placas Arduino ao gravar um novo código.

De toda forma, é possível regravar o firmware de comandos AT no módulo de maneira simples, permitindo que você volte a usar o módulo.

Lista de Materiais

Circuito de Gravação

Para realizar a gravação do firmware no módulo, monte o circuito da imagem a seguir:

circuito-gravacao
Circuito para Gravação

O jumper entre o pino IO0 e o GND é necessário para que o módulo entre em modo de gravação. Portanto, após conectar o conversor USB-UART na USB do seu computador, pressione o botão do circuito (para reiniciar a placa) e mantenha o jumper conectado.

Outro jumper ao qual você deve se atentar é o do próprio conversor USB-UART, que deve estar conectado entre o pino central e o pino de 5 V (como na imagem acima). Não se preocupe com o fato de o módulo ESP8266 operar em 3,3 V, pois o adaptador para ESP8266 possui regulação de tensão (no pino VIN) e conversão de nível lógico, para facilitar a integração com conversores USB e as placas Arduino mais populares.

Além disso, vale lembrar que para o conversor USB-UART ser reconhecido corretamente em seu computador, é necessário instalar o driver USB.

Gravação do Firmware

Para realizar a gravação do firmware, é necessário baixar uma ferramenta da própria ESPRESSIF (fabricante do ESP8266). Essa ferramenta pode ser baixada diretamente através do botão abaixo:

Download do "Flash Download Tool"

Observação: Infelizmente, essa ferramenta só é compatível com computadores que utilizam o sistema operacional Windows.

Ao acessar o link do botão acima, clique sobre o botão de download (demarcado em vermelho na imagem abaixo) na seção "Flash Download Tools" da página. Assim que o arquivo compactado for baixado, descompacte-o em um diretório acessível do seu computador (como a "Área de Trabalho", por exemplo). Com a pasta descompactada, execute como "Administrador" o aplicativo flash_download_tool_3.9.5. Ao executá-lo, será aberta uma janela do CMD do Windows, além de uma janela de configuração da ferramenta, como a da imagem a seguir:

janela-configuracao-ferramenta
Janela de Configuração da Ferramenta

Por padrão, a ferramenta deve estar configurada conforme a imagem acima, que é o modo necessário para a gravação do firmware. Caso não esteja configurado dessa forma, altere-a para que fique igual a imagem acima.

Após pressionar "OK", abrirá a janela para configurar a gravação que será efetivamente feita no módulo, como na imagem abaixo:

janela-configuracao-gravacao
Janela de Configuração da Gravação

A parte mais importante da configuração que precisamos fazer é informar ao gravador o arquivo binário do firmware que será gravado, bem como o endereço da memória flash onde ele será armazenado. O arquivo binário do firmware pode ser baixado através do botão abaixo.

Download do Firmware V1.6.2

Com a pasta compactada baixada, descompacte-a em um local acessível novamente para facilitar a configuração do gravador.

Agora que o arquivo binário do firmware está baixado no seu computador, clique sobre o botão de três pontinhos no primeiro campo de texto da janela. Neste momento, será aberto o navegador de arquivos do seu computador. Depois, basta você navegar até o local onde salvou o arquivo binário baixado anteriormente e selecioná-lo. Feito isso, no campo ao lado, digite 0x0 e clique sobre o checkbox desta primeira linha de configuração para informar ao gravador o que será gravado e em que local da memória da placa ficará.

Após essas ações, o seu gravador deve estar configurado como na próxima imagem:

configuracao-binario-endereco-memoria
Configuração de Binário e Endereço de Memória

Agora, faltam apenas algumas configurações para realizar a gravação do firmware no módulo. Certifique-se de que a velocidade de comunicação da SPI ("SPI SPEED") está configurada como 40MHz (configuração padrão) e altere o modo da SPI ("SPI MODE") para DOUT. Além disso, ainda na seção "SPIFlashConfig", certifique-se de que a opção "DoNotChgBin" está habilitada. Por fim, selecione a porta COM correspondente ao conversor USB-UART no seu computador e verifique se a velocidade de comunicação ("BAUD") está configurada como 115200 bps.

Ao finalizar, o seu gravador deve estar configurado como o da imagem a seguir:

gravador-configurado
Gravador Configurado

Com o gravador configurado, pressione o botão "START". Você verá que o display no "DownloadPanel1" irá mudar de IDLE para SYNC e, então, para DOWNLOAD. Aguarde alguns instantes que, assim que a gravação for concluída, será exibida a mensagem FINISH no display, como na imagem abaixo:

gravacao-concluida
Gravação Concluída

A gravação do firmware é executada diretamente pelo terminal CMD do Windows, e a janela fica aberta durante todo o processo. Portanto, se desejar, você pode monitorar a gravação através da janela do CMD.

Circuito após Gravação

Assim que a gravação de código estiver concluída, remova o jumper entre o IO0 e o GND, para que o circuito fique igual ao da imagem abaixo:

circuito-eletrico
Circuito Elétrico

Após remover o jumper entre o IO0 e o GND, pressione o botão de RESET para que o módulo saia do modo de gravação.

Validação da Gravação

Após remover o jumper do IO0 e reiniciar o módulo, abra a Arduino IDE e configure o seu monitor serial em 115200 bps e "Ambos NL & RC", para que você possa enviar o comando AT+GMR e validar a versão do firmware gravado. Em seguida, envie o comando AT+UART_DEF=9600,8,1,0,0 para que o módulo passe a se comunicar com a velocidade de 9600 bps.

configuracao-baudrate-modulo
Configuração do Baud Rate do Módulo

Feito isso, mude a velocidade do monitor serial para 9600 bps e, então, envie o comando AT para validar a comunicação nesta nova velocidade.

baudrate-alterado
Baud Rate Alterado

Conclusão

Neste tutorial, vimos como gravar o firmware de comandos AT do módulo ESP8266 para que ele possa ser utilizado facilmente com placas Arduino.

Avatar