Ein kurzer Hinweis zu einem hausgemachten Adapter auf Basis von ESP8266, mit dem Sie Firmware auf einen Mikrocontroller herunterladen können, auf dem ein UART-Bootloader oder Arduino installiert ist.Kürzlich habe ich beim Entwerfen von Geräten auf AVR-Mikrocontrollern zum Programmieren nur einen 6-poligen Anschluss (nicht ISP) für den FTDI-Adapter ausgegeben. Sie können die Firmware herunterladen und UART nach der Firmware debuggen. Genau das hat Arduino getan, die Idee wurde von dort entlehnt. Das ist bequem.In der Zwischenzeit musste ich mich mehr als einmal mit einer Situation auseinandersetzen, in der Sie die Firmware auf den Mikrocontroller herunterladen müssen, aber es ist bereits der Fall, dass sie nicht in den Arbeitsplatz passt / im Zwischengeschoss liegt / in einer anderen Stadt / in die Wand eingemauert. In solchen Fällen ist der FTDI-Adapter wegen des kurzen USB-Kabels nicht anwendbar und musste mit einem Laptop ausweichen. Denken Sie an einen drahtlosen Programmierer. Hier passt der ESP8266 am besten, da er über UART und in jeder Version über mindestens einen GPIO verfügt, der zum Neustart des Controllers und zum Aufrufen des Programmiermodus geeignet ist.Das folgende Material wurde im Netzwerk zum Thema gefunden:- Programmieren eines Arduino über WLAN mit dem ESP8266 - Ein Modul vom Typ ESP-01 wird über die Verkabelung mit dem Arduino Pro Mini verbunden. Anschließend wird die Firmware über ein Python-Skript heruntergeladen
- Programando un Arduino remotamente con el módulo ESP8266 - hier, so wie ich es verstehe, ohne auf Details einzugehen , ist einer der GPIO Arduino mit RESET verbunden. Zuerst wird der Mikrocontroller angewiesen, sich selbst neu zu starten, und dann beginnt der Firmware-Download
- ESP8266-transparent-bridge - Firmware für ESP8266, die transparentes WLAN aus dem Modul herstellt - UART-Bridge mit Unterstützung für AT-Befehle zur Steuerung von GPIO2. Der Autor schlägt vor, die Reset-Taste auf dem Arduino zu drücken und dann avrdude mit den Optionen -c avrisp und -P net: xxxx: 23 auszuführen. Auf diese Weise können Sie jedoch AT automatisieren. Es war diese Firmware, die ich als Grundlage genommen habe
Die Adapterfunktionen sind wie folgt:- Sechspoliger Stecker mit Pinbelegung wie FTDI-Adapter
- Arbeiten Sie in Schaltkreisen mit einer Mikrocontroller-Versorgungsspannung von 3,3 V oder 5 V, die über Steckbrücken ausgewählt werden können
- Stabiler Betrieb bei Geschwindigkeiten bis einschließlich 57600
- Neustart des Mikrocontrollers mit AT-Befehlen zum Aufrufen des Programmiermodus
Die Leistung wurde auf einem chinesischen Arduino Pro Mini mit einem Standard-Bootloader und auf einem ATmega8 mit installiertem Optiboot und Geschwindigkeiten von 9600, 19200 und 57600 getestet. Bei einer Standardgeschwindigkeit (115200) weigerte sich der Controller zu blinken.Für diejenigen, die nicht löten und eine Gebühr erheben möchten
Bei Anwendung in 3,3-V-Stromkreisen reicht es aus, das esp-01-Modul einfach an die Arduino-Verkabelung anzuschließen (VCC -> VCC, GND ---> GND, RX ---> TX, TX ---> RX, GPIO2 ---> DTR). Die Platine ist für eine einfache Verbindung und die Fähigkeit ausgelegt, in Schaltkreisen mit einer Spannung von 5 V Mikrocontroller zu arbeiten.Schaltplan und Leiterplatte
Es werden Module vom Typ esp-02 verwendet, aber das übliche esp-01 ist auch geeignet, nur die Karte muss leicht umgeleitet werden. Jumper wählen den Betriebsmodus 3.3 / 5V. Der U1 - Stabilisator wandelt bei Bedarf 5 V in 3,3 V um. R2 und R3 ist ein Teiler, auch für den 5V-Modus. Nach der Montage müssen Sie den RPOG-Jumper installieren und denselben FTDI oder einen anderen UART-Adapter verwenden, um die ESP8266-transparente Brücke zu laden .Einseitige Leiterplattenvorlage (SVG-Vektor):
Wenn Sie ein Negativ benötigen, öffnen Sie es einfach mit einem Texteditor und ersetzen Sie # 000000 durch #FFFFFF und umgekehrt.KiCad-Format auf GithubMikrocontroller-Firmware
Um die Firmware herunterzuladen, müssen Sie normalerweise den Mikrocontroller neu starten. Der FTDI-Adapter macht dies zu einem Impuls am Bein des DTR (dem ersten im Anschluss), er wird über die Kapazität mit dem Fuß des RESET-Mikrocontrollers verbunden. In unserem Fall wird GPIO2 anstelle des DTR angezeigt (siehe UPD). Um den Mikrocontroller neu zu starten, werden die AT-Befehle "+++ AT GPIO2 1" und dann "+++ AT GPIO2 0" verwendet, die den Pegel auf GPIO2 ESP8266 ändern. Ein Tropfen reicht aus, um den Controller neu zu starten. Unmittelbar nach dem Neustart arbeitet der Bootloader einige Zeit und wartet über UART auf das Firmware-Image. Es kann mit dem Dienstprogramm avrdude übertragen werden. Das folgende Skript blinkt auf dem Controller:#!/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
Diese Befehle können in das Makefile aufgenommen werden.Die drahtlose Firmware kann auch in Windows aktiviert werden, indem die Dienstprogramme nc und avrdude installiert werden.Ein Video, das die Arbeit am Beispiel des chinesischen Arduino pro mini zeigt
UPD :sav13 schlug vor, esp-link als Firmware für ESP8266 zu verwenden . Es ist mit der Stromadapterschaltung kompatibel. Diese Firmware hat gegenüber der ESP8266-transparenten Brücke mehrere Vorteile, einschließlich WEB-Schnittstelle für die Konfiguration, es ist nicht erforderlich, AT-Befehle zu verwenden, zusätzliche Funktionen, hier detaillierter .