STM32F4的視窗看門狗WWDG
不管是開發指南,中英文參考手冊,還是其他啥!講來講去就講些廢話,不就是下面這個東西嘛,理解了下面這個根本,其他的理解都是水到渠成……
Figure 214. Watchdog blockdiagram
把這個圖看懂,其他一切都搞定!
喜歡原汁原味的,不喜歡把人家(所謂英語專業翻譯家們)咀嚼的再拿來嚼一嚼,不光蒼白無味,而且可能還會中毒(翻譯者本人可能都沒理解,誤導人!),所以下面直接上English!!
研究思路:
上面是解決方案啊,就是問題的答案,那麼這個答案的問題是什麼?就是這個東西是怎麼產生的?為什麼要產生這個東西?咱們放一放,後來再講!
1解決方案,答案,解說:
1.1理解兩句話:《
1.1.1先來看第一句話:
The watchdog circuit generatesan MCU reset on expiry of a programmed time period, unless the programrefreshes the contents of the downcounter before the T6 bit becomes cleared.
先看懂倆符號:
上面的logic gates來自《Digital Design and Computer Architecture
再看下面視窗看門狗的數位電路:
Figure 214. Watchdog blockdiagram
只要T6位(注意這個T6位是7-bit downcounter最高位)為0,而且在視窗看門狗WWDG的WDGA位使能情況下,Reset輸出為1
1.1.2好,再看第二句話:
An MCU reset is also generatedif the 7-bit downcounter value (in the control register) is refreshed beforethe downcounter has reached the window register value.
再看下面數位電路:
Figure 214. Watchdog block diagram
the downcounter has reached thewindow register value
the comparator輸出為1
WDGA為1
自然RESET輸出為1
1.2使能WWDG後,Programmable free-running downcounter
1.3Early wakeup interrupt (EWI): triggered (if enabled and the watchdogactivated) when the downcounter is equal to 0x40.
在T6位馬上要減少到0時,果斷early出發中斷去“喂狗”:
1.4程式的思路就是按照上面“Figure 214. Watchdog block diagram”,理解了整個“解決方案”的執行過程了。根本不需要死記硬背!說不定還能提出自己的解決方案!自己設計數位電路!!!這就是創新那!!
2解決的問題解說:
The window watchdog is used to detect the occurrenceof a software fault, usually generated by external interference or byunforeseen logical conditions, which causes the application program to abandonits normal sequence.
總之,一句話,程式如果是正常執行的,就可以定期去報到:我很正常。除非除了什麼意外:被別人揍暈(external interference)或者自己把自己搞暈(unforeseen logical conditions),在規定時間沒能去報到,那就復位reset!
感覺不錯文章: