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. (Gast)


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. (Gast)


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.

von Rubble C. (Gast)


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. (Gast)


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. (Gast)


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. (Gast)


Lesenswert?

WDT konfigurierst Du mittels menuconfig 🙄

von Stefan F. (Gast)


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.

von Nummer E. (ritaripp)


Lesenswert?

So, hab jetzt eine Neue Lieferung aus der Bucht die für Deepsleep-wakeup
geeignet ist mit Flash: 25Q80  von !!! moguwuhehe  !!!

ESP8266 ESP-01S Serial WIFI Wireless Transceiver ModuleAdapter PCB Board 
2023 DE

(Achtung ,Unter dieser Bezeichung gibt es mehrere Anbieter )

von Karl S. (bullrin)


Lesenswert?

Hi,

ich hab bei meinem ESP01S auch versucht den DeepSleep Modus über löten 
freizuschalten. Leider habe ich nicht die nötien Lötskills, um so kleine 
Kontakte zu löten. Zumindest hat es beim ersten Versuch nicht geklappt 
und beim zweiten Versuch hatte ich dann keine Kontaktfläche mehr.

Kann mir vielleicht jemand einen ESP01S verkaufen, bei dem der DeepSleep 
funktioniert?

Grüße

von Markus W. (vice88)


Angehängte Dateien:

Lesenswert?

Ich habe auch einen ESP01-S und bekomme das aufwachen aus dem Deep sleep 
nicht korrekt hin.

Ich habe es mit reiner Drahtbrücke von GPIO16 --> RST und mit 660 Ohm + 
100 nF versucht. Anbei die Resetsignale nach dem deep sleep.

Für beide Szenarien folgender Minimalcode:
1
void setup() {
2
  // put your setup code here, to run once:
3
  // Start serial communication at a baud rate of 115200
4
  Serial.begin(74880);
5
  // Wait until serial communication is established
6
  while (!Serial);
7
  // Print a message to the Serial Monitor
8
  Serial.println("Waking up...");
9
  // Delay for 3 seconds
10
  delay(3000);
11
  // Print a message to the Serial Monitor
12
  Serial.println("Going to deep sleep...");
13
  // Put the ESP8266 into deep sleep for 5 seconds
14
  ESP.deepSleep(5 * 1000000, WAKE_RF_DISABLED);
15
  // Delay for 2 seconds (this part will be executed after waking up from deep sleep)
16
  delay(2000);
17
}

Terminal output nach einem HW-reset:
1
ets Jan  8 2013,rst cause:2, boot mode:(3,6)
2
3
load 0x4010f000, len 3424, room 16 
4
tail 0
5
chksum 0x2e
6
load 0x3fff20b8, len 40, room 8 
7
tail 0
8
chksum 0x2b
9
csum 0x2b
10
v00042250
11
~ld
12
error: pll_cal exceeds 2ms!!!
13
rf cal sector: 252
14
freq trace enable 0
15
rf[112] : 0�Waking up...
16
Going to deep sleep...
17
18
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)
Ab hier tut sich aber dann nichts mehr und der Chip zieht 32 mA 
(Drahtbrücke) bzw. 25 mA (RC).

Er sendet zwar ein Resetsignal (wie gesagt im Anhang), aber startet das 
Programm irgendwie nicht neu.
Eingespeister DC Ströme:
1) Start des Programms Idc = 15 mA
2) Start deep_sleep Idc = 0,02 mA (nur Draht), 0,27 mA (RC Glied)
3) Nach dem deep sleep Idc = 25 mA

Ich habe tatsächlich auch den Flash "CT 580A-UGLI".

Die Frage ist, ob es tatsächlich an dem Flashchip liegen kann oder ob 
ich irgendwo noch einen Denkfehler bzw. Anwenderfehler habe?

von Nummer E. (ritaripp)


Lesenswert?

Dieser Beitrag hat den Zusammenhang Flash-Speicher und Deepsleep
geklärt und mit "von Markus W" bestätigt.

von Steve van de Grens (roehrmond)


Lesenswert?

Ja, das Problem ist bekannt. Nicht jeder Flash Speicher funktioniert mit 
Deep-Sleep.

Nummer E. schrieb:
> Dieser Beitrag hat den Zusammenhang Flash-Speicher
> und Deepsleep geklärt und mit "von Markus W" bestätigt.

Ich glaube du hast den Link zum Beitrag vergessen.

von Nummer E. (ritaripp)


Lesenswert?

Steve van de Grens schrieb:
> Ja, das Problem ist bekannt. Nicht jeder Flash Speicher funktioniert mit
> Deep-Sleep.
>
> Nummer E. schrieb:
>> Dieser Beitrag hat den Zusammenhang Flash-Speicher
>> und Deepsleep geklärt und mit "von Markus W" bestätigt.
>
> Ich glaube du hast den Link zum Beitrag vergessen.

Nicht vergessen aber eingespart :)

Meine Vorsätze fürs neue Jahr "sparen".

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.