Sida 1 av 1

Defekta ESP8266, zombie efter deep sleep

Postat: 29 december 2024, 21:24:37
av JanErik
Dessa cirkulerar på de vanliga marknadsplatserna och finns många diskussioner på andra forum.
Är det nån som råkat ut för dem?

Jag har två här, köpta i höstas, ESP-07S. Samma remsa så föga förvånande att de båda är defekta.

Problemet är alltså, mikrokontrollern ska normalt efter deepsleep dra GPIO16 låg, som då ska vara kopplad till Reset för att väcka den.

Så långt funkar det på dessa. Men den kräver en dubbeldipp för att vakna, vilket de fungerade inte kräver.

Ett annat kännetecken är att GPIO0 pulsar 26MHz efter att den skulle vaknat.

Beställt tre nya nu, men ponera att dessa också är defekta. Vad ska man göra för workaround?
Kunde man få ihop en högimpedant transistorkrets som ger en andra puls, nån sorts vippa?
Alternativt dra in pulståget från GPIO0 genom en transistor till reset?
Finns ju ett utbud av "resetkretsar", finns det nån som skulle ge dubbla pulser?
En AtTiny eller motsvarande i deepsleep som vaknar när input går låg och ger två pulser ut?

Re: Defekta ESP8266, zombie efter deep sleep

Postat: 29 december 2024, 21:46:38
av Akai
Använder ESP32 modul i en produkt på jobbet, där har vi problem med att vissa individer inte vaknar upp efter flash. De kan sen vakna slumpmässigt om ström bryts och återkopplas. Reset hjälper inte. Omprogrammering hjälper inte.

Jag har inte lagt jättemycket krut på dem utan bara bytt modul på de enheter som inte vill vara med.

Det är säkert inte samma fel.. men ändå.

Re: Defekta ESP8266, zombie efter deep sleep

Postat: 29 december 2024, 21:56:26
av JanErik
ESP32 har ju detta internt, behöver ingen jumper mellan GPIO och reset.

Re: Defekta ESP8266, zombie efter deep sleep

Postat: 30 december 2024, 18:07:11
av JanErik
Har testat lite nu med en annan ESP8266 mellan GPIO16 och Reset.
När dess input-pin från zombiens GPIO16 går låg ger dess output-pin två dippar till zombiens Reset.
1ms dip verkar räcka MEN det måste vara 50ms mellan första och andra dip. Det försvårar lite alla analoga kopplingar.

Re: Defekta ESP8266, zombie efter deep sleep

Postat: 13 januari 2025, 13:12:06
av JanErik
Denna något bisarra och okommenterade kod från https://github.com/esp8266/Arduino/issues/6318 verkar fungera,

Kod: Markera allt

static uint32 *rtc = (uint32 *)0x60000700;

void nk_deepsleep(uint32 time_us) {
  rtc[0] = 0x30;
  rtc[1] = rtc[7] + 5;
  rtc[3] = 0x10010;
  rtc[4] = 0;
  rtc[6] = 8;
  rtc[17] = 4;
  rtc[2] = 1 << 20;
  ets_delay_us(10);
  rtc[0] &= 0xFCF;
  rtc[0] = 0;
  rtc[1] = rtc[7] + (45 * (time_us >> 8));
  rtc[3] = 0x640C8;
  rtc[6] = 0x18;
  rtc[16] = 0x7F;
  rtc[17] = 0x20;
  rtc[39] = 0x11;
  rtc[40] = 0x03;
  rtc[2] = 1 << 20;
  __asm volatile("waiti 0");
}

// nk_deepsleep(300*1000000); //300 sec
Även om strömmen är runt 30 uA mot 22 uA på ESP.DeepSleep().

Har dock fått en fungerande nu.

Har också ett par ATTiny13 påväg som jag ska pröva, gjort en fungerande resetter med en DigiSpark, ATTiny85.