Strona 1 z 2

Watchdog dla modułów LoRa v.1.0

: pn gru 25, 2023 7:11 pm
autor: bikeman
Watchdog to niezbędny element nadzorujący aktywność dowolnych modułów LoRa (LilyGO, Heltec, DIY, itp.), szczególnie tych pracujących w sposób nienadzorowany, w miejscach niedostępnych, itd. Dla ciekawych świata :D, opisałem szczegółowo zasadę działania.

Obrazek
=> bikeman/20231225_144953.jpg

Praca układu polega na ciągłym monitorowaniu dowolnego aktywnego pinu modułu LoRa i w przypadku stwierdzenia braku aktywności modułu, wykonanie resetu sprzętowego. Prototyp został przetestowany na module LoRa opartym na DIY ESP32 + E22-900M30S.

Schemat modułu Watchdog
================================

Obrazek
=> bikeman/schemat_.jpg

Opis linii czasowej modułu Watchdog
================================

Obrazek
=> bikeman/watchdog_timeline.jpg

1. W przypadku modułu DIY, na GPIO02 [PIN24] występuje co ~1 sekundę, impuls trwający ~1 milisekundę. Jednak może to być dowolny inny pin modułu, na którym występuje dowolna aktywność, czyli przynajmniej jedno zbocze narastające i opadające, w ciągu ustalonego minimalnego okresu badania aktywności.

2. Jeśli na B1 [PIN2] układu UCY74123 występuje zmienny przebieg, na wyjściu Q1 [PIN13] występuje stan wysoki.

3. Jednocześnie na ~Q2 [PIN] dołączonego do EN/RST modułu LoRa, występuje również stan wysoki.

4. Gdy na B1 [PIN2] układu UCY74123, przestaje docierać zmienny przebieg, oznacza, że moduł LoRa zaliczył zwis.

5. Przy dalszym braku impulsów kontrolnych, po okresie czasu ustalonym wartościami elementów C1-R1, następuje zmiana stanu watchdog Q1 [PIN13] na niski.

6. To pociąga wygenerowanie impulsu resetującego ~Q2 [PIN12], który jest podłączony do EN/RST modułu LoRa. Należy zidentyfikować, w posiadanym module, pin odpowiadający za reset modułu. W przypadku DIY to jest EN/RST [PIN2].

7. Długość impulsu resetującego, ustala się wartościami R2-C2.

8. Moduł LoRa resetuje się, zaczynają się pojawiać ponownie impulsy na kontrolowanym pinie GPIO02 [PIN24]

9. Następuje zmiana stanu watchdog Q1 [PIN13] na wysoki. Powracamy do punktu 2.

10. Po zresetowaniu lory, jeśli lora nie zacznie wysyłać przynajmniej jednego zmiennego przebiegu na "czujkę", watchdog nie podejmie kolejnej próby resetu (reset w nieskończoność). Takie działanie zabezpiecza przed sytuacja, gdy lora podnosi się dłużej niż czas oczekiwania watchdoga, z jakiegoś powodu i nie podaje impulsów do czujki, wtedy watchdog uwalałby procesy w czasie podnoszenia i nigdy nie dopuścił do pełnego uruchomienia.

Uwagi
======
Pobór prądu przez moduł Watchdog wynosi ok 34mA.
Rozmiary prototypu: 2x8 cm.
Jeśli występować będzie niedopasowanie napięciowe poziomów logicznych, pomiędzy modułem LoRa (poziomy 3.3V), a 74123 (poziomy 5V), należy sygnał resetujący na PIN EN/RST (LoRa) podłączyć przez rezystor 1k. Sygnał wejściowy na PIN 2 (74123) można podłączyć bezpośrednio. Można również zastosować dwukierunkowy konwerter stanów logicznych (koszt ~1PLN), np.: https://pl.aliexpress.com/item/1005004225321778.html
W kolejnej wersji PCB, rezystor na wyjściu resetującym, będzie uwzględniony w na PCB.

Czasy poszczególnych przebiegów watchdoga można doświadczalnie ustawić za pomocą doboru elementów RC-12.
W zaprojektowanym układzie należy stosować wyłącznie wersje układu TTL w wersji standardowej, czyli 74123, 64123, itp. Zastosowanie układów z serii 74LS123, 74HC123, 74HCT123 zakończy się niepowodzeniem, ze względu na zbyt wysoką czułość (indukcja) i przypadkowe wzbudzanie się modułu, co będzie powodować nieuzasadnione częste resety modułu LoRa. Wykonanie modułu na wspomnianych układach jest możliwe pod warunkiem stworzenia specjalnie zaprojektowanego PCB wykluczającego wpływ indukcyjności wzajemnej elementów układu oraz dodanie elementów eliminujących przenoszenie zakłóceń przez zasilanie. Moim założeniem było stworzenie układu, do wykonania w warunkach domowych, bez specjalistycznego sprzętu.

Poniżej wersja profesjonalna (PCB by Blue). Rozmiar PCB to tylko 2x4cm. Na poniższych zdjęciach widać obie strony PCB oraz zmontowany układ. Nie są wlutowane złącza kablowe KF-350, ale jeśli ktoś ma potrzebę, można je wlutować. Na płytce jest dodatkowa zworka na goldpinach, umożliwiająca sterowanie resetem zarówno poziomem niskim, jak i wysokim. Wystarczy przełożyć zworkę.

Obrazek
=> bikeman/20240121_202520.jpg

Obrazek
=> bikeman/20240121_202527.jpg

Obrazek
=> bikeman/20240121_202848.jpg

Pliki PCB (gerber):

Obrazek
=> bikeman/PCB1.jpg

Obrazek
=> bikeman/PCB3.jpg

=> bikeman/WatchDog_gerber.zip

Kilka dodatkowych fotek dla atencji 8-)
=======================

Obrazek
=> bikeman/20231225_132042.jpg

Obrazek
=> bikeman/20231225_144942.jpg

Obrazek
=> bikeman/20231225_144953.jpg

Obrazek
=> bikeman/20231225_145003.jpg

Obrazek
=> bikeman/20231225_145014.jpg

Obrazek
=> bikeman/rst_impulse.jpg

Re: Watchdog dla modułów LoRa v.1.0

: ndz sty 21, 2024 10:58 pm
autor: bikeman
Jako, że jest duże zainteresowanie uzyskaniem PCB, proszę uprzejmie poniżej zadeklarować zapotrzebowanie na konkretną ilość płytek. Zsumuję, skalkuluję i podam cenę. Bedzie akceptacja, będziemy zamawiać :)

Re: Watchdog dla modułów LoRa v.1.0

: ndz sty 21, 2024 11:25 pm
autor: V-Tom
Sławku ja deklaruję zakup 10sztuk. Dzięki

Re: Watchdog dla modułów LoRa v.1.0

: pn sty 22, 2024 5:51 pm
autor: ACSO
Moduł Lora w trybie Client pobiera ok 65mA, a trybie Router ok 11mA.
Przy zasilaniu bateryjnym lub solarnym dodatkowe 35mA dla układu Watchdog to bardzo dużo.
Widzę, że projekt zewnętrznego układu jest mocno zaawansowany.
A jest od dawna na rynku gotowe rozwiązanie o znikomym poborze prądu.
Dodatkowo w minimalnej konfiguracji wymaga jedynie zasilnia, a nadzorowane urządzenie
zasilane jest z układu.
Chodzi o układ TPL5110.
Sam układ kosztuje ok 1-2zł. Sa też gotowe moduły za 17-35zł.
Do minimalnej konfiguracji wystarczą dwa rezystory.
Zapewnia czas resetu od 100ms do 2 godzin i czas ten może być resetowany ze sterowanego układu.
Może resetować lub cyklicznie wyłączać zasilanie nadzorowanego układu.
Pozdrawiam
Adam ML09

Re: Watchdog dla modułów LoRa v.1.0

: wt sty 23, 2024 9:23 am
autor: Ma_Ster
No to zapisuję swoją szanowną d... na 10szt płytek 😁👍

Re: Watchdog dla modułów LoRa v.1.0

: wt sty 23, 2024 10:00 am
autor: bikeman
ACSO pisze: pn sty 22, 2024 5:51 pm Moduł Lora w trybie Client pobiera ok 65mA, a trybie Router ok 11mA.
Przy zasilaniu bateryjnym lub solarnym dodatkowe 35mA dla układu Watchdog to bardzo dużo.
Widzę, że projekt zewnętrznego układu jest mocno zaawansowany.
A jest od dawna na rynku gotowe rozwiązanie o znikomym poborze prądu.
Dodatkowo w minimalnej konfiguracji wymaga jedynie zasilnia, a nadzorowane urządzenie
zasilane jest z układu.
Chodzi o układ TPL5110.
Sam układ kosztuje ok 1-2zł. Sa też gotowe moduły za 17-35zł.
Do minimalnej konfiguracji wystarczą dwa rezystory.
Zapewnia czas resetu od 100ms do 2 godzin i czas ten może być resetowany ze sterowanego układu.
Może resetować lub cyklicznie wyłączać zasilanie nadzorowanego układu.
Pozdrawiam
Adam ML09
Owszem prąd 34mA, w pewnych sytuacjach (np., zasilanie solarne) może nie być zadowalający. Jednak planuje oparcie modułu na układach CMOS z serii 74LS123, 74HC123, 74HCT123. Wtedy pobór prądu spadnie do kilku mA.

Generalnie restart cykliczny nie jest zdrowy dla mikrokontrolerów z wielu powodów. Dodatkowo wspomniana przez Ciebie koncepcja nie jest układem watchdog, tylko killer. Regularne killowanie procesów naraża na regularną utratę przesyłanych informacji, może spowodować uszkodzenie danych w pamięci, jeśli skilujesz urządzenie w trakcie ich zapisu. Uwalanie mikrokontrolera w czasie przetwarzania czegokolwiek (12x na dobę?), jest bardzo mało profesjonalne i w ogólnym założeniu przynosi więcej szkód niż pożytku. Poza tym, żeby uwalać jakikolwiek układ w określonym okresie czasu, nie potrzeba aż tak wyrafinowanego rozwiązania, jak TPL.

Koncepcja watchdoga opiera się na restarcie urządzenie, tylko wtedy, kiedy się zawiesza, a nie regularnym ubijaniu. Oczywiście każdy może sobie wybrać rozwiązanie koncepcyjne pod swoje potrzeby.
Moja koncepcja pozwala na proste ustalenie czasu oczekiwania na aktywność, ustalenie czasu impulsu resetującego, oraz możliwość resetowania stanem niskim lub wysokim. Co pozwala na proste podłączenie modułu przekażnika, jeśli sytuacja tego wymaga.

Re: Watchdog dla modułów LoRa v.1.0

: wt sty 23, 2024 3:52 pm
autor: ACSO
Witam
Zapewnia czas resetu od 100ms do 2 godzin i czas ten może być resetowany ze sterowanego układu.
Czyli jak pisałem układ może działać jak prawdziwy Watchdog nie Killer
Ma do tego dedykowane wejście.
Adam ML09

Re: Watchdog dla modułów LoRa v.1.0

: wt sty 23, 2024 3:56 pm
autor: V-Tom
V-Tom pisze: ndz sty 21, 2024 11:25 pm Sławku ja deklaruję zakup 10sztuk. Dzięki
Ok, Twoja argumentacja na zello do mnie przemawia. W takim układzie zamiast 10 wezmę 5 sztuk, w oczekiwaniu na kolejne wersje. ;)

Re: Watchdog dla modułów LoRa v.1.0

: wt sty 23, 2024 4:50 pm
autor: Yendrek
Ello,elo.dotarłem , deklaruję się na 5 płytek.

Re: Watchdog dla modułów LoRa v.1.0

: czw sty 25, 2024 8:18 pm
autor: bikeman
ACSO pisze: wt sty 23, 2024 3:52 pm Witam
Zapewnia czas resetu od 100ms do 2 godzin i czas ten może być resetowany ze sterowanego układu.
Czyli jak pisałem układ może działać jak prawdziwy Watchdog nie Killer
Ma do tego dedykowane wejście.
Adam ML09
W takim wypadku, niewątpliwie, jest to z pewnością ciekawe rozwiązanie dla "wyżyłowanych" układów opartych o zasilanie solarne, gdzie mój "projekt" może być zbyt prądożerny.

Może warto umieścić tutaj lub gdziekolwiek (a tu link), podobny do tego, gotowy schemat aplikacyjny, aby mniej zaawansowani koledzy/koleżanki, mogli wybrać odpowiednie dla siebie rozwiązanie i w prosty sposób wdrożyć w swoich urządzeniach?

Samo ogólne wskazanie rozwiązania, bez opisu realizacji, testów praktycznych, itp, dla znakomitej ilości osób ma niewielkie znaczenie praktyczne.
Także, jeśli możesz, wskaż odpowiednie źródła lub umieść opis rozwiązania konkretnego układu.