1. 程式人生 > >STM32F4的視窗看門狗WWDG

STM32F4的視窗看門狗WWDG

不管是開發指南,中英文參考手冊,還是其他啥!講來講去就講些廢話,不就是下面這個東西嘛,理解了下面這個根本,其他的理解都是水到渠成……


Figure 214. Watchdog blockdiagram

把這個圖看懂,其他一切都搞定!

喜歡原汁原味的,不喜歡把人家(所謂英語專業翻譯家們)咀嚼的再拿來嚼一嚼,不光蒼白無味,而且可能還會中毒(翻譯者本人可能都沒理解,誤導人!),所以下面直接上English!!

研究思路:

上面是解決方案啊,就是問題的答案,那麼這個答案的問題是什麼?就是這個東西是怎麼產生的?為什麼要產生這個東西?咱們放一放,後來再講!

1解決方案,答案,解說:

1.1理解兩句話:《

STM32F4xx英文參考手冊》中22.1WWDG introduction

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,而且在視窗看門狗WWDGWDGA位使能情況下,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

WDGA1

自然RESET輸出為1

1.2使能WWDGProgrammable 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

感覺不錯文章: