Adaptador de programação sem fio Arduino ou AVR com carregador ESP8266

Uma pequena observação sobre um adaptador caseiro baseado no ESP8266, que permite baixar o firmware para um microcontrolador com um gerenciador de inicialização UART ou Arduino instalado.
Recentemente, ao projetar dispositivos em microcontroladores AVR, para programar eu produzo apenas um conector de 6 pinos (não ISP) para o adaptador FTDI. Permite baixar o firmware e depurar o UART após o firmware. Foi exatamente o que o Arduino fez, a ideia foi emprestada a partir daí. Isso é conveniente.
Enquanto isso, mais de uma vez eu tive que lidar com uma situação em que você precisa fazer o download do firmware para o microcontrolador, mas já é o caso que não se encaixa no local de trabalho / fica no mezanino / em outra cidade / murado na parede. Nesses casos, o adaptador FTDI não é aplicável por causa do curto cabo USB e foi necessário esquivar-se com um laptop. Pensando em um programador sem fio. Aqui, o ESP8266 é o mais adequado, pois possui UART e em qualquer versão possui pelo menos um GPIO, adequado para reiniciar o controlador e entrar no modo de programação.

O seguinte material foi encontrado na rede sobre o tópico:
  1. Programando um Arduino via WiFi com o ESP8266 - um módulo do tipo ESP-01 é conectado na fiação do Arduino pro mini e, em seguida, um script python é usado para baixar o firmware
  2. Programar um Arduino remotamente com o módulo ESP8266 - aqui, como eu o entendo, sem entrar em detalhes, um dos GPIO Arduino está conectado ao RESET. Primeiro, o microcontrolador é instruído a reiniciar-se e, em seguida, o download do firmware começa
  3. ESP8266-transparent-bridge - firmware para ESP8266 que faz Wi-Fi transparente a partir do módulo - ponte UART com suporte para comandos AT para controlar o GPIO2. O autor sugere pressionar o botão de reset no Arduino e executar o avrdude com as opções -c avrisp e -P net: xxxx: 23, mas isso permite automatizar o AT. Foi esse firmware que tomei como base


Os recursos do adaptador são os seguintes:
  • Conector de seis pinos com pinagem como adaptador FTDI
    Texto oculto
    image
  • Trabalhe em circuitos com uma tensão de alimentação de microcontrolador de 3,3V ou 5V, selecionável por jumpers
  • Operação estável em velocidades de até 57600 inclusive
  • Reiniciando o microcontrolador usando os comandos AT para entrar no modo de programação

O desempenho foi testado em um Arduino Pro mini chinês com um carregador de inicialização padrão e em um ATmega8 com optiboot instalado e velocidades de 9600, 19200 e 57600. A uma velocidade padrão (115200), o controlador se recusou a piscar.

Para quem não quer soldar e pagar
No caso de aplicação em circuitos de potência de 3,3V, basta conectar o módulo esp-01 à fiação do Arduino (VCC -> VCC, GND ---> GND, RX ---> TX, TX ---> RX, GPIO2 ---> DTR). A placa é feita para facilitar a conexão e a capacidade de trabalhar em circuitos com uma tensão de microcontrolador de 5V.

Diagrama de circuito e placa de circuito

Módulos do tipo esp-02 são usados, mas o esp-01 comum também é adequado, apenas a placa precisará ser redirecionada levemente. Os jumpers selecionam o modo de operação 3.3 / 5V. U1 - estabilizador converte 5V para 3.3V, se necessário. R2 e R3 é um divisor, também para o modo 5V. Após a montagem, é necessário instalar o jumper RPOG e usar o mesmo FTDI ou qualquer outro adaptador UART para carregar a ponte transparente ESP8266 .
Modelo de placa de circuito de um lado (vetor SVG):
imagem
se você precisar de negativo, abra-o com um editor de texto e substitua # 000000 por #FFFFFF e vice-versa.
Formato KiCad no github

Firmware do microcontrolador
Normalmente, para baixar o firmware, você deve reiniciar o microcontrolador. O adaptador FTDI faz disso um impulso na perna do DTR (o primeiro no conector), é conectado através da capacitância ao pé do microcontrolador RESET. No nosso caso, o GPIO2 é exibido no lugar do DTR (consulte UPD). Para reiniciar o microcontrolador, são utilizados os comandos AT “+++ AT GPIO2 1” e “+++ AT GPIO2 0”, que alteram o nível para GPIO2 ESP8266. Uma gota é suficiente para reiniciar o controlador. Imediatamente após a reinicialização, o carregador de inicialização funciona por algum tempo e aguarda a imagem do firmware via UART, ela pode ser transferida usando o utilitário avrdude. A seguir, é um script que o controlador está piscando:
#!/bin/bash

HEXILE="firmware.hex"
ADDRESS=x.x.x.x
BAUD=57600

echo "+++AT BAUD $BAUD" | nc $(ADDRESS) 23
echo "+++AT GPIO2 1" | nc $(ADDRESS) 23
echo "+++AT GPIO2 0" | nc $(ADDRESS) 23
avrdude -P net:$(ADDRESS):23 -F -U flash:w:$(HEXILE):i

Esses comandos podem ser incluídos no Makefile.
O firmware sem fio também pode ser ativado no Windows instalando os utilitários nc e avrdude.
Um vídeo demonstrando o trabalho do exemplo do pro chinês Arduino mini



UPD :
sav13 sugerido usando esp-link como firmware para o ESP8266 , é compatível com o circuito do adaptador atual. Este firmware tem várias vantagens sobre a ponte transparente ESP8266, incluindo Interface WEB para configuração, não há necessidade de usar comandos AT, funcionalidade adicional, com mais detalhes aqui .

Source: https://habr.com/ru/post/pt392833/


All Articles