Skocz do zawartości

ESP8266 nodemcu v3 - nie uruchamia się po deepsleep


KamilWGM

Pomocna odpowiedź

8 godzin temu, _LM_ napisał:

Z tego co tutaj https://www.esp8266.com/viewtopic.php?p=64543#p64510. piszą potrzebujesz rezystora pomiędzy GPIO16 a RST. W każdym razie ja ten temat będę niedługo "odgrzewał" bo potrzebuje czujnika na ESPNOW zasilania akumulatorowego to przyjrzę się ponownie temu zagadnieniu 

 

7 godzin temu, jand napisał:

Jest też inny wątek (ciągnący się od 5 lat) opisujący podobne problemy, a więc nie jesteś osamotniony.

Zawarte są tam różne  pomysły rozwiązania, które u jednych działają, a u innych nie.

Widzę czeka mnie ciekawa lektura, w najbliższym czasie wypróbuje wszystkie rozwiązania podane w ww. linkach i w miarę możliwości będę dawał znać o efektach. 

6 godzin temu, orb777 napisał:

A z minimalnym kodem, tj. print + sleep + deepsleep dzieje się to samo?

Tak, to samo image.thumb.png.ebb4d06d0cdc37f4f77eb7ec38c21b3b.png

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

Wypróbowałem niestety wszystkie możliwości związane z dolutowaniem odpowiednich elementów w odpowiednie miejsca, próbowałem również przejścia w tryb light sleep co również zakończyło się fiaskiem. 

Wymyśliłem aby dwoma tranzystorami PNP wykonywać podwójny reset 

image.thumb.png.55f3c1f8ebd83b0e3e3676245cab5aee.png

Niestety na GPIO16 po pierwszym resecie pojawia się stan HIGH. Co dyskwalifikuje to rozwiązanie, czy jest możliwość zmodyfikowania tego układu w celu 2x resetów z tego co mam, bądź jakiś inny układ który będzie spełniał to zadanie? 

 

//Edit

Mam na myśli reset jeden po drugim z opóźnieniem wykorzystując jednokrotny stan niski na GPIO 16. Wykorzystując tylko hardware, niestety software po wyjściu z deep sleep trafia w "zombie mod" który nie jest w żaden sposób programowalny. 

Edytowano przez KamilWGM
Link do komentarza
Share on other sites

Pokazany powyżej schemat nie zapewnia podwójnego resetu. Oba tranzystory zaczynają przewodzić jednocześnie, a wypadkowy impuls (tylko jeden) ma czas trwania dłuższego impulsu. Niestety, na dwóch tranzystorach się tego nie rozwiąże.

Z tego, co mi tak na szybko przychodzi do głowy, to użycie trzech układów 555, połączonych "szeregowo". Pierwszy (wyzwalany przez GPIO16) odpowiada za pierwszy reset, drugi za przerwę pomiędzy resetami, a trzeci za drugi reset.

W sumie jednak prościej kupić drugi mikrokontroler, nie wykazujący tej przypadłości.

Edytowano przez jand
Link do komentarza
Share on other sites

Jeden CD4093 załatwi problem sygnałów resetu. Mimo to szukałbym rozwiązania w stanie układu takim jakim jest teraz. Jestem 100% pewny że to musi zadziałać 

Link do komentarza
Share on other sites

Dnia 14.11.2024 o 20:08, jand napisał:

Pokazany powyżej schemat nie zapewnia podwójnego resetu. Oba tranzystory zaczynają przewodzić jednocześnie, a wypadkowy impuls (tylko jeden) ma czas trwania dłuższego impulsu. Niestety, na dwóch tranzystorach się tego nie rozwiąże.

Z tego, co mi tak na szybko przychodzi do głowy, to użycie trzech układów 555, połączonych "szeregowo". Pierwszy (wyzwalany przez GPIO16) odpowiada za pierwszy reset, drugi za przerwę pomiędzy resetami, a trzeci za drugi reset.

W sumie jednak prościej kupić drugi mikrokontroler, nie wykazujący tej przypadłości.

Jak wyżej napisałem, zdałem sobie sprawę z niemożliwości działania dwóch tranzystorów do zamierzonego efektu.

Dzięki za pomysł z układem 3x555 w wolnej chwili przeanalizuje jego wady i zalety.

Na ten moment nie chce kupować kolejnych uC. 

Dnia 15.11.2024 o 20:15, _LM_ napisał:

Jeden CD4093 załatwi problem sygnałów resetu. Mimo to szukałbym rozwiązania w stanie układu takim jakim jest teraz. Jestem 100% pewny że to musi zadziałać 

Być może jeszcze za mało kumam w świecie elektroniki ale bramka CD4093 chyba potrzebuje dwóch sygnałów, podpowiedz mi proszę jak przy założeniu że mam jednokrotny stan niski na GPIO16 wykorzystać bramkę?

Cytat

Mimo to szukałbym rozwiązania w stanie układu takim jakim jest teraz. Jestem 100% pewny że to musi zadziałać 

 Wybacz mi za głupie pytania(przemęczenie chyba daje się we znaki) ale masz tu na myśli esp + rezystory i kondensatory podłączone do odpowiednich pinów według rozwiązań z powyższych linków? 

Link do komentarza
Share on other sites

1 godzinę temu, KamilWGM napisał:

Być może jeszcze za mało kumam w świecie elektroniki ale bramka CD4093 chyba potrzebuje dwóch sygnałów, podpowiedz mi proszę jak przy założeniu że mam jednokrotny stan niski na GPIO16 wykorzystać bramkę?

4093 to cztery bramki nand z wejściem schmitta a więc łącząc kaskadowo kolejne linie opóźniające da się zbudować układ wytwarzający podwójny sygnał reset. Po prostu podałem to jako alternatywę dla 555 z resztą... nawet ten CMOS 4093 jest bezsensowny w tym zastosowaniu bo przecież deep sleep stosuje się po to aby oszczędzać energię a nie ładować kolejne odbiorniki.
 

 

1 godzinę temu, KamilWGM napisał:

Wybacz mi za głupie pytania(przemęczenie chyba daje się we znaki) ale masz tu na myśli esp + rezystory i kondensatory podłączone do odpowiednich pinów według rozwiązań z powyższych linków? 

Spoko no problem, poskładałbym już dawno podobny układ aby pomóc Ci rozwiązać ten problem ale mam obsuwę z innych powodów. Tak czy inaczej będę znów uruchamiał urządzenie na esp8266 które wymaga trybu usypiania więc w tym czasie postaram się więcej pomóc. 

Link do komentarza
Share on other sites

7 godzin temu, _LM_ napisał:

poskładałbym już dawno podobny układ aby pomóc Ci rozwiązać ten problem

Tyle że ESP8266 z innej partii produkcyjnej może nie przejawiać tej usterki.

Link do komentarza
Share on other sites

Ok a ten najprostszy układ?
LTspice_bCa4imhAf3.thumb.png.4eb45b2fac441efc60d462b9481ea037.png

LTspice_MSN9N7XepA.thumb.png.9d1a651e6fcdf2f75b73d43500e1d3cf.png

schmitt.zip

Ewentualnie zrobiłbym go w wersji z tranzystorami polowymi żeby pobierał mniej mocy 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Jeszcze wersja z wydłużeniem impulsu reset

LTspice_AFgYfKlCKE.thumb.png.c97d4cbd8056f961f288027fba867f15.png

Korekta: C1 100...470nF R5 100kΩ R2 470kΩ

EDIT po korekcie wartości przebiegi wyglądają dużo lepiej
LTspice_UTnUlTPTGt.thumb.png.f4365ddbd118722d01f013245f08c8e4.png

 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Czy ten układ ma być wmontowany pomiędzy GPIO 16 a RST?

Jeśli tak, to nie może odwracać fazy

Uzupełnienie:

Tak sobie pomyślałem, że zamiast dwóch impulsów reset wystarczy może jeden, ale dłuższy (trwający jeszcze jakiś czas po zakończeniu stanu niskiego na GPIO16)??

Edytowano przez jand
  • Lubię! 1
Link do komentarza
Share on other sites

11 minut temu, jand napisał:

Jeśli tak, to nie może odwracać fazy.

A myślisz że czemu dodałem pliki do spice-a? No i czy nie widać na wykresach jak ten układ się zachowa?

Edytowano przez _LM_
Link do komentarza
Share on other sites

40 minut temu, jand napisał:

Tak sobie pomyślałem, że zamiast dwóch impulsów reset wystarczy może jeden, ale dłuższy (trwający jeszcze jakiś czas po zakończeniu stanu niskiego na GPIO16)??

brawo 😉 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.