Forum: Mikrocontroller und Digitale Elektronik GPIO 2 mit PWM nutzen und trotzdem flashen können


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von dost0011 (Gast)


Lesenswert?

Hallo,

ich muss von einem WEMOS D1 Mini Board den berüchtigten GPIO 2 (D4) 
nutzen. Der GPIO 2 wird für eine PWM benutzt.

Folgende Überlegung:
An der PWM hängt ein Fahrtregler, welcher bei 5V (nicht 3.3V!) voll 
durchgesteuert wird. Wenn ich den ESP8266 flashe, muss der GPIO2 auf 
HIGH stehen (somit würde der Motor also mit Vollgas laufen).

Ich habe jetzt eine Kollektorschaltung an den GPIO2 gehängt.
Damit schlage ich 2 Fliegen mit einer Klappe:
- Es gibt automatisch eine Invertierung, so dass ich beim Flashen kein 
Motorvollgas habe
- ich kann als analoge Ausgangsspannung 5V statt 3.3V erzeugen

Das Problem:
Jetzt lässt sich der WEMOS nicht mehr in der Schaltung flashen.

Ich verstehe es nicht. Der GPIO2 hat intern einen 10kOhm Pullup 
Widerstand und hängt über ein 10kOhm Widerstand an der Basis des 
Transistors BC237.
Warum zieht mir die Basis des Transistors das Potential so weit runter, 
dass es kein HIGH mehr für den ESP8266 ist? (Kollektorstrom ca. 
5V/10000kOhm)

Selbst mit einem externen Pullup Widerstand (auch 10kOhm) klappt es 
nicht.
Das Dumme ist, dass ich nichts messen kann:

Sobald ich den WEMOS D1 Mini in die Schaltung einsetze, fängt der munter 
an die PWM zu bedienen - somit kann ich die Spannung an dem Pin nicht 
messen - flashen kann ich nicht.

Wenn ich den WEMOS nicht in die Schaltung einsetze, dann habe ich keine 
3.3V und der Pullup-Widerstand kann nicht arbeiten...

Keine Ahnung, wie ich das lösen soll / kann?

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

zeichne doch mal auf wie du das verschaltet hast.
Wieviel Flash ist auf dem ESP drauf? Wenn man möglicht alle Pins 
nebenwirkungsfrei benutzen will ist das flashen per OTA eine feine 
Sache.

Sascha

von dost0011 (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht ist der Pullup mit 10k auch zu wenig...

von HG (Gast)


Lesenswert?

dost0011 schrieb:
> Vielleicht ist der Pullup mit 10k auch zu wenig...

Oder der Basiswiderstand zu klein, mach den mal auf 220k oder so. Mit 
10k Pullup und 10k Basiswiderstand krebst der Portpin als Eingang ja 
max. auf halber Betriebsspannung rum (Basisdiode vernachlässigt).

von Einer K. (Gast)


Lesenswert?

dost0011 schrieb:
> Das Problem:
> Jetzt lässt sich der WEMOS nicht mehr in der Schaltung flashen.

Dann mache es dir doch per OTA Update.
Einmal Seriell, und dann nie wieder.

von dost0011 (Gast)


Lesenswert?

Hi,

bist Du sicher, dass OTA geht, wenn der PIN GPIO2 auf LOW sitzt?
Ich glaube nicht...

von Einer K. (Gast)


Lesenswert?

Ob ich mir sicher bin?
Wann bin ich mir schon sicher?


Ob ich das so tue?
Ein klares: Ja!
(mal abgesehen von dem PWM)

Falls es da Probleme gibt, würde ich dich bitten, dieses meinen ESP 
nicht mitzuteilen.

von dost0011 (Gast)


Lesenswert?

Hallo,

also es läuft jetzt auch ohne OTA...
Grund: der Pullup war mit 10K zu schwach und der Basiswiderstand mit 10K 
zu heftig. Basiswiderstand auf 100K erhöht und Pullup auf 4.7K und es 
lief sofort zuverlässig.

Nur für alle, die mal vor demselben Problem stehen...

von Wolfgang (Gast)


Lesenswert?

dost0011 schrieb:
> Warum zieht mir die Basis des Transistors das Potential so weit runter,
> dass es kein HIGH mehr für den ESP8266 ist?

dost0011 schrieb:
> schemeit-Projekt.png

Die Basis liegt etwa auf 0,7V und R4+R1 teilen sich die restliche 2.6V, 
bleiben also 2V am GPIO als Input. Warum hängst du R4 nicht an 5V und, 
falls der ESP8266 keine Schutzdioden drin hat, noch eine Schottky-Diode 
vom GPIO nach 3V3.

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.