Start z STM32 VL Discovery – 12 — WatchDOG

Start z STM32 VL Discovery – 12 — WatchDOG
Razem głosów: 3 co stanowi: 93.33% całości.

Free Image Hosting at www.ImageShack.us

No cóż kiedyś ta chwila nadejść musiała choć starałem się jej unikać jak diabeł święconej wody.

Założenie „kundelka” jest stosunkowo proste i nad wyraz skuteczne, ale jednak wielu zwłaszcza

początkujących się go obawia.  Mi wydaje się brakuje ogłady by jakoś skutecznie i dobrze go wam opisać,

Tak więc oprę się tutaj o artykuł z bloga http://mirekk36.blogspot.com, gdzie sam Mirek opisał

bardzo starannie i jasno zjawisko „kundelka” na przykładzie mikrokontrolerów  AVR , który to opis

jest dostępny pod adresem :

http://mirekk36.blogspot.com/2012/10/watchdog-avr-prostsze-niz-myslisz.html

i który zainspirował mnie w sumie do powstania tego artykułu traktującego o Psiaku w STM32.

W związku z czym nie będziemy się tu już zajmować genezą WatchDog-a, a skupię się na różnicach

i przykładzie wykorzystania „kundelka” z długim łańcuchem :)

Free Image Hosting at www.ImageShack.us

Sygnał zegara dla licznika WatchDOG-a pochodzi z obwodu LSI  widać to z lewej strony schematu,

który to może zostać podzielony przez 8 bitowy Prescaler.  Następnie sygnał trafia do 12 bitowych

liczników. Gdy licznik zliczy do zera, generowane jest przerwanie RESET, ale nim to nastąpi ustawiana

jest flaga IWDG flag dzięki czemu możemy podglądnąć miejsce w którym nastąpiła awaria.

Wyjście przerwania RESET widać na schemacie po prawej stronie oznaczenie IWDG RESET.

Resetowanie 12 bitowego licznika jest dokonywane poprzez Key Register – IWDG_KR, jest to rejestr

do którego możemy tylko zapisywać. W przypadku zapisania do tego Rejestru wartości 0xAAAA

dojdzie do jego przeładowania i nie wystąpi wygenerowanie RESETU.

Oczywiście wartość początkową oraz czas po jakim ma nasz „kundelek” wygenerować reset

możemy ustawiać w dość szerokim zakresie :

Free Image Hosting at www.ImageShack.us

Jak więc widać czas można ustawić od 0,1ms, aż do stosunkowo dużej wartości jaką jest 26 sek.

Preskaler ustawiany jest przez 3 bity rejestru IWDG_PR oraz poprzez ustawienie 12 bitowego

rejestru IWDG_RLD co widać w tabeli wyżej.  Jeśli chcecie więcej szczegółów odsyłam do noty.

PROGRAM :

Program napiszemy trochę później na tym etapie proponuje przeczytać świetny artykuł

na blogu :  http://mirekk36.blogspot.com/2012/10/watchdog-avr-prostsze-niz-myslisz.html

który pomoże dogłębnie poznać mechanizm „kundelka” wprawdzie na AVR , ale zasada jest praktycznie

taka sama , a następnie zaglądnąć do noty wybranego STM32 np STM32F100 zawartego

na płytce STM32VLDiscovery.

Nasz przykładowy programik obrazujący działanie „kundelka” wygląda następująco:

Myślę, że jego działanie jest jasne i nie wymaga tłumaczenia , życzę udanej zabawy oraz używania WatchDOGA , bo naprawdę może nam czasem zaoszczędzić i nerwów i kłopotów.

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay