Inhoudsopgave:

Firmware herstellen of upgraden op ESP8266 (ESP-01) module met Arduino UNO - Ajarnpa
Firmware herstellen of upgraden op ESP8266 (ESP-01) module met Arduino UNO - Ajarnpa

Video: Firmware herstellen of upgraden op ESP8266 (ESP-01) module met Arduino UNO - Ajarnpa

Video: Firmware herstellen of upgraden op ESP8266 (ESP-01) module met Arduino UNO - Ajarnpa
Video: Светильник на адресных LED, для подсветки, уведомлений и аварийного освещения. ESP32 и WLED 2024, November
Anonim
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO
Herstel of upgrade firmware op ESP8266 (ESP-01) module met behulp van Arduino UNO

De ESP-01-module die ik oorspronkelijk gebruikte, kwam met oudere AI Thinker-firmware, wat de mogelijkheden ervan beperkt omdat veel nuttige AT-opdrachten niet worden ondersteund.

Het is over het algemeen een goed idee om uw firmware te upgraden voor bugfixes en ook, afhankelijk van de functionaliteiten die nodig zijn van de ESP-module, kan een completere set ondersteunde AT-commando's nodig zijn. Deze tutorial legt ook uit hoe je de originele Espressif-firmware kunt herstellen of flashen als je je ESP-firmware verprutst, bijvoorbeeld door een aantal verkeerde AT-commando's. Dit is wat er gebeurde toen ik probeerde de standaard baudrate te wijzigen van 115200 naar 9600. Ik gebruikte de volgende opdracht (gebaseerd op een snelle Google-zoekopdracht):

BIJ + IPR = 9600

Hiermee werd de ESP-01-module gemetseld. Geen enkele AT-commando werkte meer, wat me ertoe aanzette meer onderzoek te doen en na vele uren vond ik eindelijk een manier om mijn ESP-01 te herstellen en de nieuwste compatibele firmware te installeren. Dus besloot ik dat het de moeite waard was om het hele proces te delen.

Let op: op basis van mijn ervaring raad ik u ten zeerste aan om het commando AT+IPR niet te gebruiken om uw baudrate te wijzigen, aangezien u hiervoor hoogstwaarschijnlijk uw firmware opnieuw moet flashen. Er zijn echter veel verschillende varianten van de ESP-01-module met verschillende flitsgroottes en fabrieksfirmwareversies, dus uw ervaring kan variëren.

De ESP-01-module is niet 5 V-compatibel en heeft 3,3 V nodig om hem van stroom te voorzien, maar ook om correct te werken op logisch niveau. Om met de computer te communiceren heeft de module bovendien een USB naar serieel converter nodig. Dus in plaats van een spanningsomvormer en een USB-naar-serieel-adapter te gebruiken, besloot ik voor een eenvoudigere oplossing te kiezen. Omdat ik al een Arduino UNO heb, heb ik de laatste gebruikt om de ESP-01-module van stroom te voorzien en communicatie tussen de ESP-01 en de computer tot stand te brengen, die effectief als een seriële brug werkte.

Benodigdheden

  1. ESP-01-module
  2. Arduino UNO (met USB-kabel)
  3. Jumper DuPont-draden
  4. Breadboard

Stap 1: Draadverbindingen

Draadverbindingen
Draadverbindingen
Draadverbindingen
Draadverbindingen
Draadverbindingen
Draadverbindingen

De draadverbindingen met de Arduino UNO- en ESP-01-module kunnen eenvoudig worden gemaakt met behulp van startkabels en een breadboard. De verbindingen tussen het Arduino-ontwikkelbord en de ESP-module staan beschreven in de tabel. De RX- en TX-verbindingen zijn in dit geval niet omgekeerd, aangezien de communicatie niet plaatsvindt tussen de Arduino en ESP-module, maar tussen de ESP en de computer. Dus in dit geval wordt het Arduino UNO-bord gebruikt als een seriële brug via de ingebouwde USB-naar-serieel-converter.

De RX-pinsverbinding tussen het Arduino-bord en de ESP-module moet worden gemaakt via een spanningsdeler, aangezien de ESP-01 op logisch niveau van 3,3 V werkt en het ontvangen van een logisch niveau van 5 V van de Arduino UNO de ESP-module kan beschadigen. U kunt een eenvoudige 3,3 V-spanningsdeler bouwen met slechts 2 weerstanden, zoals weergegeven in de afbeelding. Optioneel kunt u een logisch niveau-converter gebruiken.

Let op: voor mijn opstelling heb ik de RX-pinnen gewoon rechtstreeks aangesloten (niet aan te raden!) En alles werkte, maar als u besluit af te zien van de logische niveauconversie, ga dan op eigen risico verder!

Om een gemeenschappelijke massaverbinding tot stand te brengen, wordt de Arduino UNO-aardingspin verbonden met de aardingspin van de ESP-module.

De Arduino UNO wordt gebruikt om 3,3 V stroom rechtstreeks aan de VCC-pin van de ESP-module te leveren. Verbind de 3,3 V-pin met het breadboard met behulp van een jumperdraad, aangezien de 3,3 V niet alleen wordt gebruikt voor de VCC-pin van de ESP, maar ook voor de CH_PD-pin van de ESP om de ESP-chip in te schakelen.

De RESET-pin op de Arduino UNO is verbonden met Ground om elke code die via de Arduino is geüpload te omzeilen, zodat de code in plaats daarvan van de computer naar de ESP-01 wordt verzonden.

De tabelafbeelding toont de volledige set verbindingen voor knipperende firmware, maar sluit in dit stadium de ESP's Reset- en GPIO_0-pinnen niet aan, aangezien we de firmware-informatie pas in de volgende stap zullen lezen.

Stap 2: Controleer de firmwareversie

Controleer de firmwareversie
Controleer de firmwareversie

Om uw ESP-01-firmwareversie te vinden, typt u in de Arduino IDE Serial Monitor:

AT+GMR

Opmerking: alle AT-opdrachten moeten in hoofdletters worden getypt zonder spaties.

Hier is de seriële uitgang voor mijn ESP-01 (uw ESP-module geeft mogelijk niet precies dezelfde informatie weer, omdat dit afhankelijk is van het specifieke model en de releasedatum):

AT+GMR

OP versie: 0.25.0.0 (5 juni 2015 16:27:16) SDK-versie: 1.1.1 Ai-Thinker Technology Co. Ltd. 23 juni 2015 23:23:50 OK

Om te upgraden naar de nieuwste officiële Espressif ESP8266EX-firmware, gaat u naar het bronnengedeelte van de website:

Opmerking: de lijst met beschikbare firmware is mogelijk niet allemaal compatibel met uw ESP-01-model. Raadpleeg het gedeelte Problemen oplossen aan het einde van deze zelfstudie voor meer informatie.

Stap 3: De installatie voorbereiden: voordat de firmware knippert

De installatie voorbereiden: voordat de firmware knippert
De installatie voorbereiden: voordat de firmware knippert

Nu zullen we de Arduino UNO voorbereiden op de ESP-01 firmware-knipperprocedure.

Zorg ervoor dat de Arduino RESET-draad is losgekoppeld van de aarde. Ook moeten de TX- en RX-draden van de Arduino UNO worden losgekoppeld van de ESP-01-module.

Open Arduino IDE en ga in het bovenste menu naar Bestand > Voorbeelden > 01. Basics > BareMinimum. Upload de schets naar de Arduino UNO. Deze blanco schets zorgt ervoor dat er geen communicatiestoringen optreden met de ESP-module.

Sluit de RX- en TX-kabels opnieuw aan tussen de UNO en ESP-01. Sluit ook de RESET-pin van de UNO aan op Ground.

De CH_PD- of CH_EN-pin staat voor 'Chip Power-Down' of 'Chip Enable' en moet HOOG worden getrokken of op 3,3 V worden aangesloten om de ESP-chip in te schakelen.

Er zijn twee extra startkabels nodig voor de volgende ESP-pinnen: GPIO_0 en RESET.

GPIO_2 wordt niet gebruikt en wordt losgekoppeld.

De ESP-01 moet in de programmeermodus worden gezet, zodat er code naar kan worden geüpload. Maar de ESP-01 heeft niet de benodigde extra hardware aan boord om dit direct te bereiken, dus het moet allemaal apart worden aangesloten. Voor mijn eigen gebruik heb ik niet de moeite genomen om schakelaars te gebruiken, maar in plaats daarvan heb ik gewoon twee mannelijke en vrouwelijke jumperkabels gebruikt die zijn aangesloten op de GPIO_0- en RESET-pinnen van de ESP-01-module en deze in de gemeenschappelijke Ground-pinnen van het breadboard van de Arduino UNO's Ground gestoken.

Voordat de knipperprocedure wordt gestart, is GPIO_0 gedurende de gehele knipperprocedure verbonden met massa om de programmeermodus in te schakelen.

De RESET-pin wordt een seconde met aarde verbonden en vervolgens verwijderd. Hierdoor kan de nieuwe firmware worden geüpload.

Stap 4: Download Flashing Tool en Firmware

Flashing-tool en firmware downloaden
Flashing-tool en firmware downloaden

De gebruikte firmware is van Espressif, de oorspronkelijke fabrikant van de ESP8266-chip.

Ga naar: https://www.espressif.com/en/products/hardware/esp8266ex/resources om toegang te krijgen tot de officiële tools en AT-firmwarebestanden.

Download onder het tabblad 'Extra' de Flash Download Tools (ESP8266 & ESP32), momenteel is de nieuwste versie V3.6.8.

Download op het tabblad 'AT' de nieuwste compatibele AT-firmware, namelijk ESP8266 AT Bin V1.6.2 voor mijn ESP-01-model. Het hangt af van het ESP-01-model, omdat het verschillende flashgeheugengroottes kan hebben. Meer informatie hierover vindt u in het gedeelte DETECTED INFO van het programma Flash Download Tools nadat u op START hebt geklikt om de flashprocedure te starten. Dus als u niet zeker bent over de flash-grootte of welke firmwarebestanden u moet selecteren, voert u het programma gewoon uit om de juiste informatie over uw ESP-module te krijgen.

Na het knipperen kunt u AT-commando's gebruiken om de ESP-01 te testen en ermee te werken. Download de officiële ESP8266 AT instructieset:

Stap 5: Knipperprocedure

Knipperende procedure
Knipperende procedure
Knipperende procedure
Knipperende procedure
Knipperende procedure
Knipperende procedure
Knipperende procedure
Knipperende procedure

Pak het zipbestand Flash Download Tools uit en open het exe-bestand. Zorg ervoor dat u het als beheerder uitvoert als u Windows gebruikt. Er wordt eerst een DOS-venster geopend, gevolgd door een pop-upvenster. Selecteer ESP8266 Downloadtool. Dit opent een venster met verschillende configureerbare opties.

Raadpleeg in dit stadium de schermafbeelding om precies te zien welke opties u moet selecteren en wat u moet typen in de hexadecimale codevakken naast elk van de geselecteerde firmwarebestanden.

Opmerking: Selecteer de firmwarebestanden in dezelfde volgorde, aangezien de flashprocedure opeenvolgend wordt uitgevoerd. Het bestand blank.bin moet drie keer worden geselecteerd, zoals weergegeven in de schermafbeelding van de AT-instructieset.

Raadpleeg het officiële AT-document met instructieset om de juiste hexadecimale codes of adressen te vinden. Ik heb een screenshot bijgevoegd van de tabel die ik heb gebruikt voor het flashen van mijn ESP-module.

Druk dan gewoon op de START-knop en kijk hoe de magie gebeurt. De knoptekst toont SYNC en het gedeelte DETECTED INFO toont de specificaties van uw ESP-module. Vervolgens wordt DOWNLOAD weergegeven in de tekst en wordt de voortgangsbalk geactiveerd wanneer de firmwarebestanden worden geüpload naar het ESP-flashgeheugen. Nadat de firmware-flashprocedure is voltooid, ziet u: FINISH.

Sluit het programma Flash Download Tools. Dit is nodig om de seriële poort vrij te maken zodat de Arduino IDE Serial Monitor het kan overnemen.

Koppel de ESP GPIO_0-pin los van de massaverbinding. Hierdoor wordt de programmeermodus uitgeschakeld.

Verbind RESET gedurende 1 seconde met aarde en verbreek de verbinding. Hiermee wordt de module gereset.

Open Arduino-IDE. Selecteer in het bovenste menu Extra > Poort > selecteer de juiste COM-poort. Open Serial Monitor en kies "Beide NL & CR" en selecteer baudrate van 115200, wat de standaard is.

Type:

BIJ

Als de knipperprocedure correct is verlopen, is het antwoord:

Oke

Om uw nieuwe firmware te verifiëren, typt u:

AT+GMR

Hier is de uitgang van de seriële monitor voor mijn ESP-01:

AT+GMR

BIJ versie:1.6.2.0 (13 april 2018 11:10:59) SDK-versie:2.2.1 (6ab97e9) compileertijd: 7 juni 2018 19:34:26 Bin-versie (Wroom 02): 1.6.2 OK

Stap 6: Wijzig de baudrate permanent

Wijzig de baudrate permanent
Wijzig de baudrate permanent

Dit onderdeel is optioneel. De standaard baudrate is 115200, maar als u deze wilt wijzigen in een andere baudsnelheid, typt u eenvoudig de volgende opdracht in de Arduino Serial Monitor.

Als u bijvoorbeeld wilt veranderen naar 9600 baudrate / 8 databits / 1 stopbits / geen pariteitsbit / geen flow control.

Typ in:

AT+UART_DEF=9600, 8, 1, 0, 0

Reactie moet zijn:

Oke

De bovenstaande opdracht verandert de baudrate permanent in 9600, maar u kunt een van de standaard baudsnelheden kiezen.

Stap 7: Problemen oplossen

Probleemoplossen
Probleemoplossen
Probleemoplossen
Probleemoplossen

Als er afwijkingen zijn na het succesvol flashen van de firmware, bijvoorbeeld in de seriële monitor, nadat u de standaard baudrate van 115200 hebt geselecteerd en typt: AT maar geen reactie ziet of als u AT+GMR typt en een andere andere informatie dan de firmwareversie-informatie, dan hebt u mogelijk de verkeerde firmware geflitst. In dat geval, in het Flash Download Tools-programma, nadat u op de START-knop hebt gedrukt om de firmware-flashprocedure te starten, leest de status groene knop SYNC en dat is het stadium waarin de ESP-module-informatie wordt geëxtraheerd en beschikbaar wordt gemaakt onder DETECTED INFO. Deze informatie is cruciaal om de juiste firmware te bepalen en de juiste bestanden te flashen.

Het volgende is voor mijn ESP-01-module:

flash-verkoper:

E0h: N.v.t. flash devID:4014h QUAD;8Mbit kristal:26 Mhz

Uw GEDETECTEERDE INFO hangt af van het ESP-01-model. Maar hiermee kunt u de juiste flitsgrootte afleiden. In mijn ESP is het 8Mbit, wat overeenkomt met 1 MB. Dit betekent dus dat ik 512 KB + 512 KB uit de firmwarebestanden moet kiezen. En dit betekent ook dat firmware 1.7.0 of 1.7.1 niet goed werkt voor mijn ESP-module, wat ik ook heb bevestigd door deze firmware te flashen en te testen. Ook wordt in de beschrijving van de 1.7.0- en 1.7.1-firmware op de officiële website van Espressif-bronnen de volgende informatie vermeld: "Limited by the size of the AT bin file, only `1024+1024 flash map` wordt ondersteund door standaard." 1024+1024 betekent dat het voor een ESP-module is met een totale flashgrootte van 2048 KB of 2 MB.

Opmerking: voor het geval u zich dit afvraagt, kunt u zonder enige beperking downgraden of upgraden tussen verschillende firmwareversies. Als er iets misgaat, kun je gewoon opnieuw flashen met andere parameters of een andere firmware proberen.

Aanbevolen: