Das ESP8266-Modul gibt zufällige / Müllzeichen bei externer Versorgung aus (funktioniert aber auf Arduinos 5 V und 3,3 V)

Zusammenfassung: Mit der 5-V- und 3,3-V-Versorgung von Arduino gibt das ESP8266-Modul Boot-Meldungen aus und reagiert auf AT-Befehle auf dem seriellen Terminal bei 115200 Baud als -

Bootmeldung:

<random/garbage characters>
Ai-Thinker Technology Co. Ltd.
ready

Ausgabe des "AT"-Befehls:

OK

Ausgang „AT+GMR“:

AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK

während bei einer externen (versuchte Mehrfachstromquelle - Details folgen) 3,3-V-Stromversorgung Müll-/Zufallszeichen in der Boot-Nachricht vorhanden sind und die Antwort auf den AT-Befehl ebenfalls Müllzeichen enthält.

Obwohl Arduinos 5 V und 3,3 V das Problem für mich behoben haben, wird es nicht empfohlen, diese zum Einschalten von ESP wie Arduinos zu verwenden

  • 5 V können für ESP gefährlich sein (werden innerhalb weniger Minuten nach dem Anschließen heiß) und
  • 3,3 V haben möglicherweise nicht genug Strom (gefährlich für Arduino / Atmega-Chip).

Jetzt muss ich also anscheinend nahe an das herankommen, was die 5-V- und 3-V-3- Pins von Arduino mit einer externen Stromquelle an die Vcc von ESP liefern.


Details: Ich hatte das ESP8266-Modul von Amazon gekauft und versuchte, einige grundlegende Tests zu bestehen, z. B. das Ausführen des AT-Befehls über den seriellen Monitor, und plante, später zum Programmierteil zu wechseln. Hier ist, was ich bisher wrt versucht habe. Eingangsleistung für das ESP-Modul.

Versuch1 (fehlgeschlagen):

AC ---> 5 V / 1 A DC-Ausgangsadapter ---> AMS1117 (3,3 V) --> ESP8266 Vcc

Gemäß den Informationen im iotbytes- Artikel habe ich ~ 3,3 V (gemessen über Voltmeter) an Vcc von ESP8266 von Pin Nr. 2 von ams1117 angelegt und alle Kondensatoren mit den im Beitrag vorgeschlagenen Werten verwendet.

  • (Beobachtung):
    Blaue LED blinkt schnell, rote LED leuchtet konstant,
    AI Thinker SSID erscheint, mit der ich mich über meinen Laptop verbinden kann (192.168.4.2) und pingen kann 192.168.4.1
    Serieller Monitor wird mit Müllwerten gefüllt alle Baudraten außer 115200. Bei 115200 ist der serielle Monitor ruhig und ich erhalte 2/3 Müllzeichen als Antwort auf den AT-Befehl.
  • (Pinbelegung): Verwendet Pin Nr. 2 (3,3-V-Ausgang) und Nr. 3 (Masse) von Ams1117, um das Modul mit Strom zu versorgen. Restliche andere Pinbelegungen sind gleich wie ein Artikel auf medium.com wie

    Esp8266 | Arduino
    ------------------
    RX      | RX
    TX      | TX
    GPIO 0  | None
    GPIO 2  | None
    
    
    Arduino | Arduino
    -------------------
    Reset   | GND
    
    Esp8266 | AMS1117
    ------------------
    Vcc     | 3.3v 
    CH_PD   | 3.3v (/Vcc of esp8266)   tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    

Danach habe ich versucht, voranzukommen, indem ich ESP8266 in den Programmiermodus versetzt habe, indem ich einem Video gefolgt bin . Musste nur 1 "zusätzliche" Verbindung hinzufügen -

Esp8266 | Esp8266
------------------
GPIO0   | GND (From AMS1117)

Und beim Hochladen des esp8266-LED-Blinkprogramms wurden (@9600/115200-Upload-Raten) -

Globale Variablen verwenden 27968 Byte (34 %) des dynamischen Speichers, sodass 53952 Byte für lokale Variablen übrig bleiben. Das Maximum beträgt 81920 Bytes. Warnung: espcomm_sync fehlgeschlagen Fehler: espcomm_open fehlgeschlagen Fehler: espcomm_upload_mem fehlgeschlagen Fehler: espcomm_upload_mem fehlgeschlagen

Ich habe versucht, einen 1k-Widerstand mit GPIO-Ground hinzuzufügen, aber es hat nicht funktioniert !!

Versuch2 (fehlgeschlagen):

9V/1A Batterie ---> Abwärtswandler (eingestellt auf 3,3V Ausgang) -> ESP8266's Vcc

  • (Beobachtung):
    Blaue LED blinkt einmal und bleibt aus (bis ich Vcc trenne und wieder anschließe), rote LED leuchtet konstant.
    Die SSID von AI Thinker wird angezeigt und kann eine Verbindung zum
    seriellen Monitor herstellen / pingen ... Müll als Antwort auf den AT-Befehl.

  • (Pinbelegung):

    Esp8266 | Arduino
    ------------------
    (Same as Attempt1)
    
    Arduino | Arduino
    ------------------
    (Same as Attempt1)
    
    Esp8266 | Buck Converter
    ------------------
    Vcc     | 3.3v
    CH_PD   | 3.3v (/Vcc of esp8266) - tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    

Versuch3 (fehlgeschlagen):

AC ---> 5 V / 1 A Ausgangs-DC-Adapter ---> Buck Converter (auf 3,3 V Ausgang eingestellt) --> ESP8266 Vcc

  • (Beobachtung): Dasselbe wie bei Versuch2
  • (Pinbelegung): Wie Versuch2

Versuch4 (bestanden):

Arduino (5v und 3v3) ---> Vcc von ESP8266

  • (Überwachung):

    Blaue LED blinkt einmal und bleibt aus (bis ich einen Befehl über den seriellen Monitor eingebe), rote LED leuchtet konstant. AI Thinker SSID wird angezeigt und kann eine Verbindung herstellen/pingen. Der serielle Monitor erfasst die Boot-/Willkommensnachricht von ESP8266 und antwortet auf AT-Befehle bei 115200 Baud.

  • (Pinbelegung):

    Esp8266 | Arduino
    ------------------
    RX      | RX
    TX      | TX
    GPIO 0  | None
    GPIO 2  | None
    Vcc     | 3.3v (also tried 5v) 
    CH_PD   | 3.3v (/Vcc of esp8266)   tried via jumper as well as 100 Ohm resistor
    GND     | GND 
    
    
    Arduino | Arduino
    -------------------
    Reset   | GND
    

Hinweis: Arduino wird über den USB-Anschluss (a to b) des Laptops mit Strom versorgt.

Was könnten die Gründe für dieses Verhalten von ESP mit externer Stromquelle sein? Bei Bedarf kann ich weitere Informationen posten. Jede Hilfe/Anregung könnte sehr nützlich sein.

"Jede Hilfe / Vorschlag" - kaufen Sie ein anständiges Netzteil. Wenn Sie keine Schaltpläne haben und die VCC-Welligkeit mit einem Zielfernrohr betrachten können, gibt es nicht viel zu diskutieren.
Danke @DmitryGrigoryev Ich kann Schaltpläne (Schaltplan?) Für alle 4 Fälle erstellen und posten. Ich habe kein Oszilloskop :( .
Schaltpläne würden helfen. Mir ist gerade aufgefallen, dass Sie möglicherweise vergessen haben, GND von Arduino mit GND von ESP zu verbinden, wenn ESP extern mit Strom versorgt wird. Könnte das das Problem sein? Wenn nicht, posten Sie die Schaltpläne: Dann werden sich mehr Leute Ihre Frage ansehen.
@DmitryGrigoryev - Ja, du hast Recht. Ich habe den GND von Arduino nicht mit dem GND von ESP verbunden - als ESP extern mit Strom versorgt wurde (Versuche 1-3). Ich habe alle Verbindungen im Pinbelegungsabschnitt erwähnt, und ich hätte sie definitiv im Pinbelegungsabschnitt als -- Arduino (GND) | erwähnt AMS1117/Abwärtswandler (GND) . Ich bin mir nicht sicher, ob es die mögliche Ursache sein könnte, aber wenn Sie empfehlen, kann ich dies versuchen.
Nun ja: TX- und RX-Signale benötigen GND, um die Schaltung zu vervollständigen, genau wie VCC.
Nochmals vielen Dank @DmitryGrigoryev Ihre vorherige Antwort war das letzte fehlende Teil dieses Puzzles :) Das Modul reagiert jetzt auf AT / AT + GMR-Befehle bei externer Stromversorgung. Sie könnten Ihren vorherigen Kommentar als Antwort posten.

Antworten (1)

Ihnen fehlt eine GND-Verbindung zwischen ESP und Arduino, wenn Sie das ESP extern mit Strom versorgen. Im Allgemeinen müssen Geräte, die spannungsbasierte Signale teilen, auch eine gemeinsame Masse teilen. Andernfalls wird ohne eine gemeinsame Referenzspannung bedeutungslos: Ein Signal von +5 V auf Arduino kann auf ESP als -1 V angesehen werden (vorausgesetzt, es besteht eine Differenz von 6 V zwischen den Massespannungen der beiden).

Sie können auch in Bezug auf den Strom argumentieren: Wenn Arduino seinen TX-Pin hoch treibt und ein Strom zu fließen beginnt, wie kehrt dieser Strom zu Arduino zurück?