Forum: Mikrocontroller und Digitale Elektronik Portproblem Wemos D1 mini D7/D8


von WD1m (Gast)


Lesenswert?

Hallo,

ich ersetze im aktuell Projekt einen ATmega 8 durch einen Wemos D1 mini.
Das Programm lief fehlerfrei auf dem 8er in Bascom, auf dem Wemos zeigt 
sich ein unschönes Verhalten:

An den Ports D7 und D8 hängt über je 4,7k und BC548 ein bistabiles 
Relais (inkl. Freilaufdioden).
Zu Beginn wird das Relais in einen definierten Startzustand (auf Netz) 
gebracht. Also den Port für "Solar" auf Low, den Port für Netz für 100ms 
auf High.
Das Relais schaltet auch auf "Netz", nachdem es vorher kurz auf "Solar" 
schaltet. Wenn also D8 auf High geht, geht kurz vorher D7 laut 
Logigtester von "low" auf "undefiniert".
Tausche ich im Programm D7 und D8 tritt der Fehler genausowenig auf, wie 
wenn ich die Relais manuell ohne Wemos schalte. Mit dem Mega8 geht's 
auch.
Testweise habe ich mal 10k von D7 nach Masse eingebaut, dann geht's 
auch.

Kennt das Problem jemand?
1
const int Relais_solar = D7;
2
const int Relais_netz = D8;
3
4
void setup() {
5
  pinMode (Relais_solar, OUTPUT); //Relais 1 Solar
6
  pinMode (Relais_netz, OUTPUT);  //Relais 1 Netz
7
8
  digitalWrite (Relais_solar, LOW);
9
  digitalWrite (Relais_netz, HIGH);
10
  delay(100);
11
  digitalWrite (Relais_netz, LOW);
12
}
13
14
void loop() {
15
}

von Port (Gast)


Lesenswert?

WD1m schrieb:
> Das Programm lief fehlerfrei auf dem 8er in Bascom, auf dem Wemos zeigt
> sich ein unschönes Verhalten:

Bascom kann keinen Code für den esp8266 generieren!

von WD1m (Gast)


Lesenswert?

Wie oben zu sehen, ist es auch nicht in Bascom...

von ESP-Bastler (Gast)


Lesenswert?

D8 (GPIO16) hat einen eingebauten Pull-Down (und wird u.a. für wake up 
from sleep verwendet), während die anderen Ports Pull-Ups haben.

Das wäre mal ein Ansatzpunkt ....

von Michael U. (amiga)


Lesenswert?

Hallo,

D7 ist GPIO13 und sollte eigentlich unkritisch sein.
D8 ist GPIO15, der muß zur Bootzeit aif L sein, da stört normalerweise 
Deine Schaltung also auch nicht.
Dein Problem ist mir also irgendwie unklar und mir bei meinen Sachen 
auch noch nie begegnet. Das einige Pins des ESP8266 beim Start 
undefiniertes Verhalten zeigen können, ist durch den Bootloader bedingt. 
Das sit aber alles erledigt, bevor er Deine Sachen überhaupt ausführt.

Gruß aus Berlin
Michael

von WD1m (Gast)


Lesenswert?

Richtig, der Bootloader kann es nicht sein, denn bei einer Pause von 10 
Sekunden bevor ich den Port auf High setze, tritt das Problem eben erst 
nach den 10 Sekunden auf. Port D7 hat in der Tat weder Pullup noch 
Pulldown, so dass er unkritisch "sein sollte". Das erklärt auch, warum 
ggf. der Fehler mit D8 nicht auftritt, der hat 12K Pulldown - mit 
Pulldown an D7 ist auch der Fehler weg.
Leider weiß ich nicht, welche Version des Wemos ich habe; die aktuellste 
scheint es aufgrund des fehlenden Lötjumpers an GPIO16/D0 aber nicht zu 
sein - gekauft vor ein paar Wochen bei Reichelt. Win zweiter Wemos ist 
leider nicht zur Hand - ich lebe jetzt mit dem zusätzlichen Pulldown an 
D7. Win Oszi habe ich leider nicht, sonst würde ich mehr gerne mal 
anschauen, was da genau passiert.

von Mario M. (thelonging)


Lesenswert?

Nimm D1 und D2, das sind die einzigen Anschlüsse, die beim Booten 
dauerhaft auf L sind.
http://rabbithole.wwwdotorg.org/2017/03/28/esp8266-gpio.html

von WD1m (Gast)


Lesenswert?

Das D7 beim booten kurz auf High geht habe ich leider auch schon 
feststellen müssen - erklärt aber nicht, warum er es auch tut, wenn D8 
auf High geht (eben nochmal ohne Relais getestet, ganz deutliches High).

An D1 hängt leider auch schon ein kritisches Bauteil, welches 
keinesfalls beim Booten aktiviert werden darf.
An D0 hängt ein Schalter nach GND, den könnte ich mit geschätzem 2,2K 
Serienwiderstand wahrscheinlich auch an D7 hängen.

von Michael U. (amiga)


Lesenswert?

Hallo,

laß eben den PullDown dran. Ich würde auch nicht ausschließen, daß die 
Jungs von Espressif da irgendwie beim IOmux Mist bauen, welche Version 
des ESP8266 hast Du installiert?
Wenn die kurz auf Input mit PullUp setzen könnte das schon reichen, um 
Deinen Transistor anzusteuern. Würde auch den undefinierten Zustand des 
Logiktesters erklären.
Falls Du die ESP8266 Version wechseln willst: deinstallieren und dann 
die gewünschte installieren, up- /downgrade bei den ESP 
Boardmanager-Links ist mir sonst öfter auf die Füße gefallen mit netten 
Effekten...

Gruß aus Berlin
Michael

von WD1m (Gast)


Lesenswert?

Wo sehe ich die Versionsinfo?

von Port (Gast)


Lesenswert?

WD1m schrieb:
> Wie oben zu sehen, ist es auch nicht in Bascom...

Warum schreibst du dann von Bascom? Du hast die Farbe des Tisches, auf 
dem du arbeitest, nicht dazugeschrieben.

von WD1m (Gast)


Lesenswert?

Lesen kannst du also - schade, dass es am Verstehen hapert...

Wenigstens können das die anderen, die auch was beitragen können!

von Port (Gast)


Lesenswert?

WD1m schrieb:
> Lesen kannst du also - schade, dass es am Verstehen hapert...
>
> Wenigstens können das die anderen, die auch was beitragen können!

Ja dann sag halt die Tischfarbe! Foto und Schaltplan vom Aufbau wären 
auch nicht schlecht.

von WD1m (Gast)


Lesenswert?

Da das Lesen bei dir offenbar auch nicht funktioniert hat:

Das Problem besteht, wie schon geschrieben, auch ohne externe 
Beschaltung - nur Wemos am USB-Kabel.

von Port (Gast)


Lesenswert?

WD1m schrieb:
> Da das Lesen bei dir offenbar auch nicht funktioniert hat:
>
> Das Problem besteht, wie schon geschrieben, auch ohne externe
> Beschaltung - nur Wemos am USB-Kabel.

Na los, poste es! Trau dich!

von Michael U. (amiga)


Lesenswert?

Hallo,

xWD1m schrieb:
> Wo sehe ich die Versionsinfo?
Du hast blind darauf vertraut, daß schon jemand erraten wird, daß Dein 
Code aus der Arduino-Ecke stammt...
Ich soll jetzt also auch blind raten: ArduinoIDE? ESP8266 per 
Boardmanager installiert? Dann solltest Du ja auch wissen, was Du da wie 
installiert hast,
Das kann ich aus Deinem Codeausschnitt nicht erraten.

Gruß aus Berlin
Michael

von WD1m (Gast)


Lesenswert?

Ist die Arduino-IDE 1.8.10 - frisch installiert (letzte Woche).

von WD1m (Gast)


Lesenswert?

Board: LOLIN(Wemos) D1, R2 & mini

von WD1m (Gast)


Lesenswert?

esp8266 2.6.1

von Port (Gast)


Lesenswert?

Michael U. schrieb:
> Du hast blind darauf vertraut, daß schon jemand erraten wird, daß Dein
> Code aus der Arduino-Ecke stammt...

Aber aber!

Er hat doch was von Bascom gelabert :-)

Lass den Typ mal weiter beleidigt sein. Irgendwann kapiert er das man 
ihm so nicht helfen kann.

Das Jahr ist bald vorbei :-)

von Michael U. (amiga)


Lesenswert?

Hallo,

WD1m schrieb:
> esp8266 2.6.1

Du kannst ja zum Test mal die 2.6.1 deinstallieren und dafür die 2.5.2 
testen, wenn Du Lust dazu hast. Mit der 2.6.0 kamen etliche Änderungen 
rein.
Wäre interessant, ob es das Problem da auch schon gab.

Gruß aus Berlin
Michael

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.