Forum: Mikrocontroller und Digitale Elektronik ESP01s + deepsleep


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 Nummer E. (ritaripp)


Angehängte Dateien:

Lesenswert?

Hallo,
ich hatte bisher ESP-01  + deepsleep ohne Probleme.

Habe jetzt von Ali die preiswerten ESP-01s und diese Mistkäfer
reagieren nicht auf wakeup aus deepsleep.

Meine Frage richtet sich ausschliesslich an user die damit keine
Probleme haben !

Ich habe auch verschieden Reset-Impulsbreiten von GPIO16 ( GELB) 
probiert ohne Erfolg. ( 100µs bis 1ms )
Fällt die Spannung am Reset-PIN unter 2V ( Blau) reagiert der ESP und 
GPIO16 geht auf HIGH .
Und das wars . Nach einem externen Reset mit Taster verhält sich der ESP 
dann wieder normal.

Mit allen  ESP-01 funktioniert der wakeup aus deepsleep,
!!!  Mit dem ESP-01s funktioniert das nicht !!!

Config:
GPIO16 XPD_DCDC I/O Deep-sleep wakeup connected to EXT_RSTB mit einem 
Widerstand (0 bis 1000 Ohm) zur Einstellung der Pulsbreite.

ESP - Meldungen kann ich nicht abfragen ( alle Baudraten probiert )

Da bin ich mal gespannt

====================================================================
Nachtrag:

- void nk_deep_sleep(uint64_t time) funktioniert bei mir, aber 
verbraucht 2mA im deepsleep !!

- siehe auch Beitrag "ESP-12S startet nicht korrekt nach deep sleep."

- man muss für "echten" deepsleep die Flash-chips tauschen
  kosten nur 3€

Fazit: Finger weg vom ESP-01s wenn deepsleep gewünscht wird !

: Bearbeitet durch User
von Stefan F. (stefanus)


Lesenswert?

Was heißt "0 bis 1000" ohm in deinem Fall? Mit 0 wird es nicht gehen.

Bist du ganz sicher dass deine Module mit Flash Chips ausgestattet sind, 
die sich nicht eignen? Ich würde gerne deren Typ auf meine Homepage 
schreiben, als Warnung.

von Nummer E. (ritaripp)


Lesenswert?

Beim ESP-01s ist der 470 Ohm Widerstand in der Reset-Leitung eingespart
worden .  dh. GPIO16 wäre direkt mit EXT_RSTB verbunden , also 0 Ohm.
Die Impulsbreite ist dann ca. 10µs.

Wenn ich 470Ohm , wie beim ESP01 einbinde verbreitert sich der 
Resetimpuls auf ca. 200µs .

Ich habe jetzt 5 ESP-01 bestellt , die ebenfalls nicht mit deepsleep
gehen :  https://www.ebay.de/itm/255283289468

Ich habe von meinem ESP-01 aus 2020 den Flashchip genommen und in die
Aktuellen eingelötet mit Erfolg !

Es ist also egal ob ESP-01 oder ESP-01s . Entscheidend sind die
verbauten Flaships.

Wäre dankbar für einen Hinweis welche ESP-01.. aktuell mit deepsleep 
gehen .

von Stefan F. (stefanus)


Lesenswert?

Nummer E. schrieb:
> Ich habe von meinem ESP-01 aus 2020 den Flashchip genommen und in die
> Aktuellen eingelötet mit Erfolg !

Danke

> Wäre dankbar für einen Hinweis welche ESP-01..
> aktuell mit deepsleep gehen

Leider kann ich dabei nicht helfen. Meine sind von vor 2020 und ich habe 
so viele auf Vorrat, dass ich wohl nie wieder welche bestellen werde.

: Bearbeitet durch User
von Rubble C. (rubblechase)


Lesenswert?

Nummer E. schrieb:
> Finger weg vom ESP-01s wenn deepsleep gewünscht wird !

Halte ich für eine gewagte These.

Hatten manche ESPs nicht GPIO16 u. 17 am Flash Chip hängen? Dann einen 
anderen Input nehmen oder sehen dass Du die Flanke am Input für den 
Wakeup hinbiegen kannst.

Schau mal ins exakte Datenblatt deibnes ESPs.

von Nummer E. (ritaripp)


Angehängte Dateien:

Lesenswert?

Stefan F ,
vielleicht kannst du deine defekten ESP-01 sammlen und mir zuschicken ?
(Die alten Flashspeicher sind meist noch io ).


Ich habe jetzt 2 Lieferungen mit insgesamt 10 ESP-01 die für
Deepsleep-wakeup unbrauchbar sind !
Auf den Bildern der Verkaufsseiten stimmen die Flash-Beschriftungen
nicht mit der Lieferung überein , also unbedingt nachfragen .

Schlecht für deepsleep-wakeup sind Flash-Speicher CT 580A-UGLI  (siehe 
Bild)

-------------------------------------------------------
Deepsleep-Lösung für ESP-01 oder ESP-01s und bestimmte
Flash-Speicher zB. CT 580A-UGLI  (siehe Bild)
getFlashChipVendorId: 0xC4       ( ??? )

Zwischen GPIO16 und Res-Pin  ca. 20-700 Ohm einbinden
( beim ESP-01 schon vorhanden mit 470 Ohm )

Nach deepsleep-wakeup (GPIO16 wird LOW ) > 60ms warten

dann einen Reset-LOW -Impuls für > 20µs anlegen.

Meine Config :aktuelle Arduino-IDE mit nonos.SDK 2.2.1  und nonos.SDK 
3.0.5
und vielen verschiedenen Einstellungen probiert.

---------------------------------------------------------
Möglicher Weise könnte man den Flash mit neuen Timings in der SDK 
anpassen???
Denn 60 ms nach dem wakeup reagiert der ESP wieder !
Ist die Frage ob Expressif ein Interesse daran hat.

von Stefan F. (stefanus)


Lesenswert?

Nummer E. schrieb:
> ielleicht kannst du deine defekten ESP-01 sammlen und mir zuschicken ?

Ich habe noch keinen kaputt bekommen.

von Helmut -. (dc3yc)


Lesenswert?

Nummer E. schrieb:
> Flash-Speicher CT 580A-UGLI

Deswegen heißen sie ja auch UGLI, weil sie so hässlich sind und nicht 
funktionieren!

von Joachim B. (jar)


Lesenswert?

Helmut -. schrieb:
> Deswegen heißen sie ja auch UGLI, weil sie so hässlich sind und nicht
> funktionieren!

du hast meinen Text geklaut :-)

von Rubble C. (rubblechase)


Lesenswert?

Was bist Du denn für ein Vogel? Dass Bilder nicht mit dem Produkttyp 
übereinstimmen ist wohl auf jeder Verkaufsplattform explizit vermerkt. 
Und was soll das heissen nach 60ms reagiert er wieder? Das ist die Zeit 
die ein ESP für den Startup benötigt, und deepsleep-wakeup ist beim ESP 
nunmal das selbe wie ein Startup. Die Firma heisst übrigens Espressif 
nicht Expressif

von Nummer E. (ritaripp)


Lesenswert?

(ESP Booting Time nach Power ON: 120ms gemessen )

Anfrage:
Please, Do you deliver exactly the Flash 25Q80 as shown in Picture.
Its important to support deepsleep-wakeup .

Antwort:
Neue Nachricht von: technicalaim (31,348TURQUOISE_SHOOTING_STAR Star)
Hello, friend. Thank you for your letter.
Our product and pictures are consistent.
Looking forward to your order
------------------------------------------------

60ms könnte  am wdt liegen.
siehe auch ESP.h :
 * AVR macros for WDT management
 */
typedef enum {
    WDTO_0MS    = 0,   //!< WDTO_0MS
    WDTO_15MS   = 15,  //!< WDTO_15MS
    WDTO_30MS   = 30,  //!< WDTO_30MS
    WDTO_60MS   = 60,  //!< WDTO_60MS    !!!!!!!!!!!



Ich suche die "void esp_suspend()" unter System Linux Arduino-IDE ?
Da könnte der wdt versteckt sein.

: Bearbeitet durch User
von Rubble C. (rubblechase)


Lesenswert?

WDT konfigurierst Du mittels menuconfig 🙄

von Stefan F. (stefanus)


Lesenswert?

Rubble C. schrieb:
> Was bist Du denn für ein Vogel? Dass Bilder nicht mit dem Produkttyp
> übereinstimmen ist wohl auf jeder Verkaufsplattform explizit vermerkt.

Naja, gerade bei Aliexpress und chinesischen Händlern auf anderen 
Plattformen kann man sich meistens nur am Bild orientieren, weil die 
Produktbeschreibung noch ungenauer ist.

Wenn man bedenkt, dass die selben Händler auch Damenwäsche und 
Spielwaren verkaufen, wundert das nicht. Die können teilweise nicht 
einmal Polyester von Naturfasern unterscheiden. Wenn der erste seinen 
Artikel falsch beschreibt, wird der falsche Text von anderen Händlern 5 
Jahre lang kopiert.

: Bearbeitet durch User
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.