Wciąż szukam odpowiedzi na to pytanie:
Dlaczego chociaż MCU stm32 mają doskonały watchdog (mam na myśli Watchdoga Window (WWDG)), istnieje prosty watchdog (Independent Watchdog (IWDG))?
Znalazłem tę stronę , która powiedziała:
ST Microelectronics ma linię urządzeń Cortex-M3. M3 stał się niezwykle popularny na niższych urządzeniach wbudowanych, a STM32F ST jest reprezentatywny dla tych części (chociaż WDT jest dodatkiem ST i niekoniecznie odzwierciedla implementacje innych dostawców). STM32F ma dwa różne mechanizmy ochronne. „Independent Watchdog” to dość waniliowy projekt, który nie ma wiele do zaoferowania poza łatwością użycia. Ale ich Windows Watchdog zapewnia bardziej niezawodną ochronę. Po upływie czasu odliczania generowany jest reset, który może być utrudniony przez ponowne załadowanie timera. Nic specjalnego. Ale jeśli przeładowanie nastąpi zbyt szybko, system również się zresetuje. W tym przypadku „zbyt szybko” jest określane przez wartość, którą program wprowadza do rejestru sterującego.
Kolejna fajna funkcja: może wygenerować przerwanie tuż przed resetowaniem. Napisz trochę kodu, aby złapać przerwanie i możesz podjąć pewne działania, na przykład, aby ustawić system w bezpiecznym stanie lub wykonać migawkę danych w celu debugowania. ST sugeruje użycie ISR do przeładowania watchdoga - to znaczy, wykop psa, aby reset nie nastąpił. Nie słuchaj ich rad. Jeśli program się zawiesi, programy obsługi przerwań mogą równie dobrze nadal działać normalnie. A użycie ISR do ponownego załadowania WDT unieważnia cały powód działania strażnika okien.
a to :
Nowa seria procesorów STM32F4 Cortex ™ -M4 firmy STMicroelectronics ma dwa niezależne organy nadzorujące. Jeden działa z własnego wewnętrznego oscylatora RC. Oznacza to, że wszystkie rodzaje rzeczy mogą się zawalić w procesorze, a WDT nadal będzie działać. Istnieje również „strażnik okien” (WWDT), który wymaga, aby kod często go łaskotał, ale niezbyt często. Jest to bardzo skuteczny sposób na zapewnienie, że rozbity kod, który losowo zapisuje się w mechanizmie ochronnym, nie powoduje łaskotania WDT, a WWDT może wygenerować przerwanie krótko przed potwierdzeniem resetu.
ok, spójrzmy do podręcznika :
STM32F10xxx ma dwa wbudowane urządzenia peryferyjne typu watchdog, które oferują połączenie wysokiego poziomu bezpieczeństwa, dokładności pomiaru czasu i elastyczności użytkowania. Oba urządzenia peryferyjne watchdog (niezależne i Window) służą do wykrywania i usuwania usterek spowodowanych awarią oprogramowania oraz do wyzwalania resetu systemu lub przerwania (tylko watchdog okna), gdy licznik osiągnie określoną wartość limitu czasu. Niezależny organ nadzorujący (IWDG) jest taktowany przez własny dedykowany zegar niskiej prędkości (LSI), dzięki czemu pozostaje aktywny nawet w przypadku awarii głównego zegara. Zegar watchdoga (WWDG) jest wstępnie przeskalowany z zegara APB1 i ma konfigurowalne okno czasowe, które można zaprogramować w celu wykrycia nienormalnie późnego lub wczesnego działania aplikacji. IWDG najlepiej nadaje się do aplikacji, które wymagają, aby watchdog działał jako całkowicie niezależny proces poza główną aplikacją, ale mają niższe ograniczenia dokładności pomiaru czasu. WWDG najlepiej nadaje się do aplikacji, które wymagają, aby strażnik zareagował w dokładnym oknie czasowym.
Watchdog okna służy do wykrywania wystąpienia błędu oprogramowania, zwykle generowanego przez zakłócenia zewnętrzne lub nieprzewidziane warunki logiczne, które powodują, że program aplikacji porzuca normalną sekwencję. Obwód watchdog generuje reset MCU po upływie zaprogramowanego okresu czasu, chyba że program odświeży zawartość zliczania, zanim bit T6 zostanie skasowany. Reset MCU jest również generowany, jeśli 7-bitowa wartość zliczania w dół (w rejestrze kontrolnym) zostanie odświeżona, zanim zliczacz osiągnie wartość rejestru okna. Oznacza to, że licznik musi zostać odświeżony w ograniczonym oknie.
Jak widać, żaden z nich nie powiedział, że Dlaczego nie ma dwóch watchdog. jeśli zapytam, jakie są różnice między oboma organami nadzorującymi, policzysz wszystkie funkcje, które widzisz powyżej, a jeśli chcesz porównać oba, oczywiście strażnik systemu Windows (WWDG) będzie zwycięzcą! to dlaczego są dwa stróżujące?
Chcę wiedzieć, kiedy powinienem używać IWDG, a kiedy WWDG?
i czy jest jakiś powód, który mówi nam, dlaczego nazywają drugi zegarek o tej nazwie -> „Watchdog okna”?