Forum: Mikrocontroller und Digitale Elektronik ESP8266-01S - programmieren mit separater Spannungsquelle und USB Adapter


von David (daddy2024)


Lesenswert?

Guten Tag,
beim Programmieren/Flashen eines ESP8266-01S stellt sich bei mir 
folgendes Problem ein:

Ausgangssituation:
- ESP-01S hat ja keine eigene Entwicklungsumgebung, nutze einen USB to 
Serial Adapter, Spannungsversorgung von 3.3V kommt stabil von einer 
separaten Spannungsquelle (stabilisierter 3.3V Spannungsregler) und 
nicht direkt von dem USB Adapter. TX und RX vom ESP sind entsprechend 
mit dem Adapter verbunden; zusätzlich ist der Adapter mit dem 
gemeinsamen GND der Spannungsquelle und ESP GND verbunden. GPIO0 vom ESP 
ist vor der Aktivierung der Spannung mit GND fest verbunden.

Problem: Das Flasehn funktioniert nur, wenn der USB Adapter zuerst 
angeschlossen wird bevor die (externe) Spannungsversorgung aktiviert 
wird. Schließe ich zuerst die externe Spannung an und dann den Adapter 
in die USB Schnittstelle meldet der ESP bzw. die Arduino IDE, dass keine 
Verbindung zustande kommt. GND ist stets wie oben beschrieben mit ESP 
GND und ESP GPIO0 und Adapter GND verbunden.

Wieso spielt hier die Reihenfolge (Erst Adapter dann separate 
Spannungsquelle anschließen) eine Rolle ?

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

weil der USB Adapter mangels Stromversorgung die TXD (Ausgang des ESP) 
Leitung herunter zieht. Der ESP reagiert darauf, darfst du nicht machen.

von Dieter S. (hotsystems)


Lesenswert?

Ich habe u.a. dazu 1k Widerstände in die Leitungen (RX und TX) gesetzt.
Dann passiert das nicht.
Hier mein Programmer für den ESP8266-01:
https://forum.arduino.cc/t/zeigt-her-eure-geilen-projekte/359167/783
Der FTDI arbeitet mit 5V.

: Bearbeitet durch User
von David (daddy2024)


Angehängte Dateien:

Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> weil der USB Adapter mangels Stromversorgung die TXD (Ausgang des ESP)
> Leitung herunter zieht. Der ESP reagiert darauf, darfst du nicht machen.

Verstehe ich jetzt nicht wirklich, kannst du das bitte etwas erläutern. 
Es funktioniert ja gerade nur dann, wenn der USB Adapter ZUERST an die 
USB Schnittstelle angeschlossen wird. Zu dem Zeitpunkt und danach (bis 
die externe Spannungsquelle angeschlossen wird) ist der ESP noch 
spannungslos und bekommt nur TX/RX (HIGH Zustand vom Adapter) geliefert 
(beide Pins sind per Messung am Adapter HIGH, da der Adapter die beiden 
Pins intern hochzieht, zudem hat der ESP01s interne Pull-Ups, die aber 
zu dem Zeitpunkt noch gar nicht zum Tragen kommen). Erst dann wird die 
externe Spannungsquelle aktiviert und der ESP bekommt seine Versorgung. 
Dann bleiben TX und RX nach wie vor HIGH (durch die internen Pull-Ups). 
Insofern verstehe ich den Einfluss der Reihenfolge nicht. Neben GND sind 
nur TX und RX des ESP mit dem Adapter verbunden und diese sind HIGH (vom 
Adapter geliefert und nach Stromversorgung auch vom ESP durch interne 
Pull Ups).

Habe mal das Schaltbild mit dem Adpater angehängt...

von David (daddy2024)


Lesenswert?

Dieter S. schrieb:
> Ich habe u.a. dazu 1k Widerstände in die Leitungen (RX und TX) gesetzt.
> Dann passiert das nicht.
> Hier mein Programmer für den ESP8266-01:
> https://forum.arduino.cc/t/zeigt-her-eure-geilen-projekte/359167/783
> Der FTDI arbeitet mit 5V

Ich nutze keinen FTDI sondern einen 3.3V USB to Serial Adapter , wobei 
die Spannungsversorgung des Adapters nicht den ESP versorgt sondern 
lediglich die TX und RX Signale (mit 3.3V des Adapters). Die von dir 
erwähnten Widerstände sind nur für 5V relevant, trifft bei mir nicht zu.
(Schaltbild und Adapter s. Post vorher)

: Bearbeitet durch User
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

David schrieb:
> Verstehe ich jetzt nicht wirklich, kannst du das bitte etwas erläutern.
> Es funktioniert ja gerade nur dann, wenn der USB Adapter ZUERST an die
> USB Schnittstelle angeschlossen wird.

Häng mit dessen internen Schutzdioden zusammen. Wie bei fast allen CMOS 
IC leiten die Dioden Überspannung (alles was größer als 
Versorgungsspannung) vom RxD Eingang zum Vdd Pin ab.

In deinem Fehlerfall ist die Versorgungsspannung des USB Chips Null 
Volt, also darf an seinem RxD Eingang nicht viel mehr als Null Volt 
anliegen. Tut es aber bei dir, nämlich 3,3V, denn das ist der Ruhepegel 
vom seriellen Port (dem TxD Ausgang des ESP).

Die Schutzdioden sind nicht hochohmig. Sie belasten den ESP stark, 
ziehen das Signal runter, und darauf reagiert der ESP, indem er nicht 
Bootet.

> Es funktioniert ja gerade nur dann, wenn der USB
> Adapter ZUERST an die USB Schnittstelle angeschlossen
> wird. Zu dem Zeitpunkt und danach (bis die externe
> Spannungsquelle angeschlossen wird) ist der ESP noch
> spannungslos und bekommt nur TX/RX (HIGH Zustand vom
> Adapter) geliefert

Beim ESP (in umgekehrte Richtung) ist das ausnahmsweise erlaubt, weil 
dessen Eingänge eine besondere Schutzschaltung haben. Sie erlauben etwas 
nehr als 3,6V auch während die Versorgungsspannung Null Volt ist.

"Parasitäre Speisung durch ESD Dioden" ist in dem Zusammenhang ein 
interessantes Thema.

: Bearbeitet durch User
von Dieter S. (hotsystems)


Lesenswert?

David schrieb:
> Die von dir erwähnten Widerstände sind nur für 5V relevant,

Nicht nur. Die verhindern auch das ungünstige herunterziehen der 
Leitungen.
Dabei ist egal welcher Chip auf dem USB Serialwandler ist.
Mein Tipp, ein Versuch ist es Wert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.