Adaptateur de programmation sans fil Arduino ou AVR avec chargeur ESP8266

Une courte note sur un adaptateur fait maison basé sur ESP8266, qui vous permet de télécharger le firmware sur un microcontrôleur avec un chargeur de démarrage UART ou Arduino installé.
Récemment, lors de la conception de périphériques sur des microcontrôleurs AVR, pour la programmation, je ne produisais qu'un seul connecteur 6 broches (pas ISP) pour l'adaptateur FTDI. Il vous permet de télécharger le firmware et de déboguer UART après le firmware. C'est exactement ce qu'a fait Arduino, l'idée a été empruntée à partir de là. C'est pratique.
Pendant ce temps, plus d'une fois, j'ai dû faire face à une situation où vous devez télécharger le firmware sur le microcontrôleur, mais c'est déjà dans le cas qui ne rentre pas dans le lieu de travail / se trouve sur la mezzanine / dans une autre ville / muré dans le mur. Dans de tels cas, l'adaptateur FTDI n'est pas applicable en raison du court câble USB et a dû esquiver avec un ordinateur portable. Penser à un programmeur sans fil. Ici, l'ESP8266 est le meilleur ajustement, car il a UART et dans n'importe quelle version a au moins un GPIO, adapté pour redémarrer le contrôleur et entrer en mode de programmation.

Le matériel suivant a été trouvé sur le réseau sur le sujet:
  1. Programmation d'un Arduino via WiFi avec l'ESP8266 - un module de type ESP-01 est connecté sur le câblage à l'Arduino pro mini, puis un script python est utilisé pour télécharger le firmware
  2. Programando un Arduino remotamente con el módulo ESP8266 - ici, si je comprends bien, sans entrer dans les détails, l'un des GPIO Arduino est connecté à RESET. Tout d'abord, le microcontrôleur est invité à redémarrer lui-même, puis le téléchargement du micrologiciel commence
  3. ESP8266-transparent-bridge - firmware pour ESP8266 rendant le Wi-Fi transparent à partir du module - Pont UART avec prise en charge des commandes AT pour contrôler GPIO2. L'auteur suggère d'appuyer sur le bouton de réinitialisation de l'Arduino, puis d'exécuter avrdude avec les options -c avrisp et -P net: xxxx: 23, mais cela vous permet d'automatiser AT. C'est ce firmware que j'ai pris comme base


Les fonctionnalités de l'adaptateur sont les suivantes:
  • Connecteur à six broches avec brochage comme l'adaptateur FTDI
    Texte masqué
    image
  • Fonctionne dans des circuits avec une tension d'alimentation de microcontrôleur de 3,3 V ou 5 V, sélectionnable par cavaliers
  • Fonctionnement stable à des vitesses allant jusqu'à 57600 inclus
  • Redémarrage du microcontrôleur à l'aide des commandes AT pour entrer en mode de programmation

Les performances ont été testées sur un Arduino pro mini chinois avec un chargeur de démarrage d'origine et sur un ATmega8 avec optiboot installé et des vitesses de 9600, 19200 et 57600. À une vitesse par défaut (115200), le contrôleur a refusé de flasher.

Pour ceux qui ne veulent pas souder et faire des frais
En cas d'application dans des circuits de puissance 3,3V, il suffit de connecter simplement le module esp-01 au câblage Arduino (VCC -> VCC, GND ---> GND, RX ---> TX, TX ---> RX, GPIO2 ---> DTR). La carte est faite pour la facilité de connexion et la possibilité de travailler dans des circuits avec une tension de microcontrôleur 5V.

Schéma de circuit et carte de circuit imprimé

Des modules de type esp-02 sont utilisés, mais l'esp-01 commun convient également, seule la carte devra être légèrement redirigée. Les cavaliers sélectionnent le mode de fonctionnement 3,3 / 5V. U1 - le stabilisateur convertit 5V en 3,3V si nécessaire. R2 et R3 est un diviseur, également pour le mode 5V. Après l'assemblage, vous devez installer le cavalier RPOG et utiliser le même FTDI ou tout autre adaptateur UART pour charger le pont transparent ESP8266 .
Modèle de carte de circuit imprimé simple face (vecteur SVG):
image
Si vous avez besoin d'un négatif, ouvrez-le simplement avec un éditeur de texte et remplacez # 000000 par #FFFFFF et vice versa.
Format KiCad sur github

Micrologiciel du microcontrôleur
En règle générale, pour télécharger le micrologiciel, vous devez redémarrer le microcontrôleur. L'adaptateur FTDI en fait une impulsion sur la jambe du DTR (le premier dans le connecteur), il est connecté via la capacité au pied du microcontrôleur RESET. Dans notre cas, GPIO2 est affiché à la place du DTR (voir UPD). Pour redémarrer le microcontrôleur, les commandes AT "+++ AT GPIO2 1" puis "+++ AT GPIO2 0" sont utilisées, qui changent le niveau en GPIO2 ESP8266. Une goutte suffit pour redémarrer le contrôleur. Immédiatement après le redémarrage, le chargeur de démarrage fonctionne pendant un certain temps et attend l'image du micrologiciel via UART, elle peut être transférée à l'aide de l'utilitaire avrdude. Voici un script que le contrôleur clignote:
#!/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

Ces commandes peuvent être incluses dans le Makefile.
Le micrologiciel sans fil peut également être activé dans Windows en installant les utilitaires nc et avrdude.
Une vidéo démontrant le travail de l'exemple de l'Arduino chinois pro mini



UPD :
sav13 a suggéré d'utiliser esp-link comme firmware pour ESP8266 , il est compatible avec le circuit adaptateur actuel. Ce micrologiciel présente plusieurs avantages par rapport au pont transparent ESP8266, notamment Interface WEB pour la configuration, il n'est pas nécessaire d'utiliser les commandes AT, des fonctionnalités supplémentaires, plus en détail ici .

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


All Articles