logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ESP8266 D1 mini nie wykonuje kodu po wyjściu z deepsleep

sen_soltysa 17 Cze 2019 14:34 3546 17
REKLAMA
  • #1 18015895
    sen_soltysa
    Poziom 10  
    Posty: 10
    Ocena: 1
    Cześć.
    Mam problem z ESP8266 D1 mini (konkretnie to ta płytka: https://www.aliexpress.com/item/D1-mini-Mini-...ment-board-based-ESP8266-by/32651747570.html).

    Problem polega na tym, że po wyjściu z deepsleep-a (co widać na monitorze portu w Arduino IDE) płytka nie wykonuje już kodu. Na konsoli pojawia się tylko takie coś:

    ets Jan 8 2013,rst cause:5, boot mode:(3,6)

    ets_main.c

    Nic się potem nie dzieje. Jeśli nacisnę ponownie reset to dostaję:

    ets Jan 8 2013,rst cause:2, boot mode:(3,6)

    I program dalej nie stratuje.
    Naciskam jeszcze raz reset i wtedy dopiero program startuje.

    Spróbowałem jeszcze z zwarciem D0 i RST (chociaż podobno w tej płytce nie trzeba), ale efekt końcowy jest podobny, tylko cause jest "2".

    ets Jan 8 2013,rst cause:2, boot mode:(3,6)

    Co jest nie tak. Walnięta płytka? Jeśli nie korzystam z deepsleep-a to płytka działa prawidłowo.
    Deepsleep jest odpalany komendą:
    ESP.deepSleep(10 * 1000000);
    Próbowałem już nawet najprostszej aplikacji która nie robi nic oprócz wysyłania tesktu na seriala - nie pomaga.
  • REKLAMA
  • #2 18015954
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Jak robisz coś przed uśpieniem to dodaj jakiś delay, chyba powinieneś zdecydować co z radiem po wybudzeniu:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    W komentarzu masz możliwe opcje.
    Rozumiem, że masz podłączony IO16 do RST?
    SLEEP_TIME2 po prostu jest liczbą zdefiniowaną na początku szkicu.
    Edit:
    GPIO16 to właśnie D0 na Wemos, ale zawsze sprawdzaj pinout płytki, te oznaczenia Dcośtam bywa mylące w różnych płytkach. I u mnie mam podłączone do RESET kabelkiem by działało. Gdy jest podłączone mam problem z programowaniem, więc raczej nie jest to robione na stałe w żadnej płytce. Na czas programowania usuwam to połączenie.
    Pomogłem? Kup mi kawę.
  • #3 18015962
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 18015986
    sen_soltysa
    Poziom 10  
    Posty: 10
    Ocena: 1
    Tak płytka wygląda z bliska - może ktoś zerknąć?: https://photos.app.goo.gl/tBWyDVT9Ks8JPHi86
    Jeśli chodzi o ten WAKE_RFCAL to zszedłem na niższy poziom tzn nie budzi się też w aplikacji w której nie ma wifi. Jeśli chodzi o programowanie to oczywiście w czasie wgrywania aplikacji nie ma zwory D0/RST,
  • #5 18016046
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Ostatnio miałem jakąś badziewną płytkę Wemos, zasilana z USB działała z różną skutecznością, problem rozwiązał się po zasileniu jej bezpośrednio na pin 5V. Może masz z tej samej serii? Ja faktycznie używałem jej do serwerka z WIFI i po losowym czasie przestawał działać.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #6 18016295
    Konto nie istnieje
    Poziom 1  
  • #7 18016750
    sen_soltysa
    Poziom 10  
    Posty: 10
    Ocena: 1
    Sprawdziłem zasilanie z zewnątrz (PIN G i PIN 5V) - płytka działa, ale efekt taki sam tzn po podłączeniu zasilania aplikacja podłącza się do wifi, potem daję z aplikacji deepsleep na 10 sekund, po tym czasie widać że płytka się budzi (krótkie mignięcie diodą), ale połączenie do wifi nie następuje. Czyli dokładnie tak samo jak przy zasilaniu przez USB.

    Jeśli chodzi o to co jest wybrane w Arduino IDE, to mam ustawione: LOLIN(WEMOS) D1 R2 & mini.
    PS. Próbowałem refalshować - zarówno w fabrycznym firmware jak i Ai-Thinker dzieje się dokładnie to samo.
  • #9 18016801
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #10 18016923
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Z Twojej fotki niewiele widać, ale z tego co się dowiedziałem jest to problem sprzętowy, zerknij czy Twój ESP8266 wygląda tak:
    ESP8266 D1 mini nie wykonuje kodu po wyjściu z deepsleep
    no jeden mój tak wygląda i jest z nim ten sam problem. Sygnał reset z GPIO16 (D0) jest za krótki i nieskuteczny. Sporo osób ma z tym problem, trzeba będzie uważać przy zakupie, https://github.com/esp8266/Arduino/issues/6007.
    Kilka osób wymieniło płytkę Wemos mini z modułem ESP opisanym DOIT - jak na fotce powyżej.
    Pomogłem? Kup mi kawę.
  • #11 18017046
    sen_soltysa
    Poziom 10  
    Posty: 10
    Ocena: 1
    To jest dokładnie ten czip - DOIT.AM. Przeczytałem wątek który podałeś i opisywane jest tam takie samo zachowanie.
    Już widzę że tą płytkę muszę reklamować u sprzedawcy i szukać innej.
    Dziękuję za podesłanie tego linku!
  • #12 18017137
    Konto nie istnieje
    Poziom 1  
  • #13 18017361
    sen_soltysa
    Poziom 10  
    Posty: 10
    Ocena: 1
    Mój jest chyba "EX" - takie coś wyświetla mi Arduino IDE:

    esptool.py v2.6
    Serial port COM5
    Connecting....
    Chip is ESP8266EX
    Features: WiFi

    Problem więc chyba jest szerszy.

    ESP8266 D1 mini nie wykonuje kodu po wyjściu z deepsleep
  • #15 18017407
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Raczej nie dotyczy tylko ESP-12S skoro ludzie zgłaszają tam problemy z ESP-12F (od tego wątek się rozpoczął). Po logo na blaszce też ciężko dojść jak się będzie chip zachowywał, bo pewnie można zamówić ze swoim wzorem ( i koniecznie z napisem FCC). Pół biedy jak w ciągu ostatniego roku zamówiłem jeden moduł Wemos w ogóle, ale niektórzy kupili tam 100 chipów i nie wiedzą co z nimi zrobić. Moduł ESP-12S od razu można rozpoznać po obudowie, piny flash nie są wyprowadzone na dolną krawędź. Mam jeszcze zlutowany moduł na płytce ESP-12 i ten też się nie wybudzał, ale to był pierwszy kupiony i po prostu uznałem, że ten typ tak ma.
    Pomogłem? Kup mi kawę.
  • #16 18017413
    Konto nie istnieje
    Poziom 1  
  • #17 18017548
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Nie wiem, chodzi Ci o to że można rozpoznać to po wyglądzie na witrynie sklepowej? Akurat mam również takiego Wemos jak na fotce #16 i wybudzanie działa OK. Na Ali są sprzedawane moduły ESP-12S i są droższe od ESP-12E czy ESP-12F, może walor ekonomiczny zauważa się w większej skali...
    ESP8266 D1 mini nie wykonuje kodu po wyjściu z deepsleep
    Po czym poznać, że ten po prawej nie będzie działał? Kształt laminatu, bo zaoszczędzili też nic nie wniesie, bo mam bez obciętych rogów i też wybudzanie działa.
    Dodatkowo nawet jeśli obejrzysz przed zakupem to i tak nie wiadomo, jak moduł będzie faktycznie wyglądał. Nie testuje też modułu od razu po wypakowaniu, jak u niego ze spaniem. Ale trzeba będzie zacząć.
    Pomogłem? Kup mi kawę.
  • #18 18017570
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Użytkownik ma problem z płytką ESP8266 D1 mini, która nie wykonuje kodu po wyjściu z trybu deepsleep. Po wybudzeniu pojawiają się komunikaty o błędach resetu, a płytka nie łączy się z Wi-Fi. Użytkownicy sugerują dodanie opóźnienia przed uśpieniem, sprawdzenie połączeń GPIO, a także zasilania. Wskazano na możliwe problemy sprzętowe związane z modułem ESP-12S, który może być mniej niezawodny. Użytkownik potwierdził, że płytka działa przy zasilaniu zewnętrznym, ale problem z deepsleep nadal występuje. Wskazano również na konieczność reklamacji wadliwej płytki.
Wygenerowane przez model językowy.
REKLAMA