Forum: Mikrocontroller und Digitale Elektronik ESP8862 I/O Status im Tiefschlaf?


von A. B. (sfalbuer)


Angehängte Dateien:

Lesenswert?

Moin!

Ich habe mir eine Anzeige gebaut die mir stets den aktuellen Ethereum 
Kurs anzeigt. Die Idee ist dass das ESP8826 Modul die Daten Empfängt und 
Anzeigt, sich zwei Minuten schlafen legt, aufwacht, ggf. den Wert 
aktualisiert und sich wieder schlafen legt um Strom zu sparen. 
Theoretisch klappt das auch mit ESP.deepSleep() ganz gut.

Das problem ist nur dass der ESP scheinbar im Schlafmodus alle I/O auf 
GND zieht. Das führt dann dazu dass beim Display (HDLR2416) der Clear 
Pin ein Flankenwechsel erfährt und dann das Display nichts mehr Anzeigt 
sobald sich das Modul im Schlafmodus befindet.

Meine einzige Idee die ich  gerade habe ist folgende: Ein Logikbaustein 
der den Ausgang nur dann Schaltet wenn die Eingänge sich jeweils in 
einem unterschiedlichen Zustand befinden. Davon bräuchte ich zwei weil 
das gleiche Problem beim WRITE Pin auch auftaucht. Zwei zusätzliche I/Os 
hätte ich noch frei dafür.

Wäre das machbar? Wenn ja, was für einen Chip benötige ich? (Habe von 
Logikbausteinen keine Ahnung) oder ist die Lösung doch viel einfacherer?

Gruss

A.B

Beitrag #5008546 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

Vermutlich zieht der ESP die Pins nicht auf GND, sondern schaltet sie 
hochohmig. Versuche mal einen Pull-Up Widerstand.

von A. B. (sfalbuer)


Lesenswert?

Hab ich schon. 15k zieht den Pin auf 1,7V. Das reicht aber nicht. Eine 
Idee wäre den Widerstand zu verringern so dass man auf die 2V kommt die 
als HIGH wahrgenommen werden von dem Display.

Gruss

Alexander

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ja mach das.

von Hmmhmm (Gast)


Lesenswert?

A. B. schrieb:
> Hab ich schon. 15k zieht den Pin auf 1,7V. Das reicht aber nicht. Eine
> Idee wäre den Widerstand zu verringern so dass man auf die 2V kommt die
> als HIGH wahrgenommen werden von dem Display.
>
> Gruss
>
> Alexander

Dann ist da ein Pulldown von etwa 15k drin, und er treibt die Ausgänge 
nicht, sondern er schaltet seinen Pulldown ein.
Denn 3V3 / 2 ist fast 1,7 -> 1:1 Spannungsteiler -> Pulldown 15k oder 
so.

Ein kleinerer Pullup (1k) würde das Problem lösen, und den Ausgang 
hochziehen. Natürlich braucht das Strom, aber wenn du am Netz hängst ist 
das wurscht.

Besser für die Batterie (falls du auf eine solchen läufst) ein Inverter. 
74HC1G14 oder so.  Natürlich musst du die Logik in der Software 
ausdrehen. Der würde sich mit 20µA begnügen.

von A. B. (sfalbuer)


Lesenswert?

Nein, keine Batterie. Trotzdem gönnt sich das Modul rund 80mA und macht 
99,9% der Zeit nichts. Daher der Wunsch es auszuschalten wenn nix 
passiert. mit dem Pull-Up werde ich mal rumtesten. Der Pull Up hängt 
allerdings an 5V. Bei 1k wären das also 5mA die dort verbraten werden?

Grus

A.B

von Stefan F. (Gast)


Lesenswert?

> Der Pull Up hängt allerdings an 5V.

Hast du denn verstanden, dass alle I/O Pins des ESP8266 maximal 3,6V 
vertragen. Da liegt es doch nahe, den Pull-Up an die Versorgungsspannung 
des ESP anzuschließen.

von A. B. (sfalbuer)


Lesenswert?

Hier steht was anderes:

https://hackaday.io/page/2024-esp8266-is-5v-tolerant-after-all

Änder es trotzdem auf 3.3V Danke für den Hinweis.

von Hmmhmm (Gast)


Lesenswert?

A. B. schrieb:
> Nein, keine Batterie. Trotzdem gönnt sich das Modul rund 80mA und macht
> 99,9% der Zeit nichts. Daher der Wunsch es auszuschalten wenn nix
> passiert. mit dem Pull-Up werde ich mal rumtesten. Der Pull Up hängt
> allerdings an 5V. Bei 1k wären das also 5mA die dort verbraten werden?
>
> Grus
>
> A.B

Also gegen 5V würde ich nicht ziehen, wenn der ESP mit 3V3 läuft. Da 
zieht man gegen 3V3.

Was den Strom angeht:
Das kann man schon optimieren. Annahme: Der ESP hat einen 10k Pulldown, 
und du ziehst gegen 3V3. Das liefert:
- 1k : 3,0V
- 2k2 : 2,7V
- 4k7 : 2,2V
Wenn dein Display mit 2V für HIGH zufrieden ist, tu halt einen 4k7 rein. 
Dann brauchst du nur noch so 700µA (wenn der ESP LOW treibt).

Wenn es zu der Sorte gehört, die mit 5V laufen und 0,7xVCC haben wollen, 
brauchst du Pegelshifter. Ein 74HCT1G14 wäre gleichzeitig ein Inverter 
und würde den Pullup wegoptimieren.

PS: Kaufe nicht versehentlich stattdessen 74HC1G14. Das war mal ein 
teurer Fehler bei uns ind der Firma :-)

von Stefan F. (Gast)


Lesenswert?

> Hier steht was anderes:

Es mag sein, dass interne Schutzschaltung bei seinem Chip bei 5,8V 
angesprochen hat. Der Hersteller garantiert jedoch nur 3,6V und weist 
wie auch alle Händler ausdrücklich darauf hin, dass die Eingänge NICHT 
5V tolerant sind.

von A. B. (sfalbuer)


Lesenswert?

Moin!

Es war der I/O Pin der krudes zeug gemacht hat. Es hing eine Test LED an 
dem I/O welche die Messung verfälscht hat. Habe einen anderen Pin 
genommen und jetzt gehts. Danke trotzdem! WIEDER was gelernt.


Gruss

A.B

von A. B. (sfalbuer)


Lesenswert?

Zur Vollständigkeit hier noch die Projektdoku:

https://wiki.das-labor.org/w/EtherNode

Das Problem war letztlich u.a dass der GPIO9 sich nicht als Ausgang 
verwenden lässt ( das muss man erst mal rausfinden..)

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.