STM窗口看門狗實驗_第1頁
STM窗口看門狗實驗_第2頁
STM窗口看門狗實驗_第3頁
STM窗口看門狗實驗_第4頁
STM窗口看門狗實驗_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

STM窗口看門狗實驗ALIENTEK第8講窗口看門狗8.1窗口看門狗原理8.2窗口看門狗寄存器8.3窗口看門狗配置步驟8.4實驗講解《例說STM32》22023/1/12ALIENTEK8.1窗口看門狗原理《例說STM32》32023/1/12廣州市星翼電子科技有限公司窗口看門狗(WWDG)通常被用來監測由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運行序列而產生的軟件故障。除非遞減計數器的值在T6位(WWDG->CR的第六位)變成0前被刷新,看門狗電路在達到預置的時間周期時,會產生一個MCU復位。在遞減計數器達到窗口配置寄存器(WWDG->CFR)數值之前,如果7位的遞減計數器數值(在控制寄存器中)被刷新,那么也將產生一個MCU復位。這表明遞減計數器需要在一個有限的時間窗口中被刷新。他們的關系可以用下圖來說明:ALIENTEK《例說STM32》42023/1/12廣州市星翼電子科技有限公司上圖中,T[6:0]就是WWDG_CR的低七位,W[6:0]即是WWDG->CFR的低七位T[6:0]就是窗口看門狗的計數器,而W[6:0]則是窗口看門狗的上窗口,下窗口值是固定的(0X40)。當窗口看門狗的計數器在上窗口值之外被刷新,或者低于下窗口值都會產生復位。上窗口值(W[6:0])是由用戶自己設定的,根據實際要求來設計窗口值,但是一定要確保窗口值大于0X40,否則窗口就不存在了。窗口看門狗的超時公式如下:Twwdg=(4096×2^WDGTB×(T[5:0]+1))/Fpclk1;其中: Twwdg:WWDG超時時間(單位為ms) Fpclk1:APB1的時鐘頻率(單位為Khz) WDGTB:WWDG的預分頻系數 T[5:0]:窗口看門狗的計數器低6位ALIENTEK《例說STM32》52023/1/12廣州市星翼電子科技有限公司根據上面的公式,假設Fpclk1=36Mhz,那么可以得到最小-最大超時時間表如下表所示:總結:STM32F的窗口看門狗中有一個7位的遞減計數器,它會在出現下述2種情況之一時產生看門狗復位:

1)當計數器的數值從0x40減到0x3F時

2)當喂狗的時候如果計數器的值大于某一設定數值時,此設定數值在WWDG_CFR寄存器定義

對于一般的看門狗,程序可以在它產生復位前的任意時刻刷新看門狗,但這有一個隱患,有可能程序跑亂了又跑回到正常的地方,或跑亂的程序正好執行了刷新看門狗操作,這樣的情況下一般的看門狗就檢測不出來了。ALIENTEK8.2窗口看門狗相關寄存器《例說STM32》62023/1/12廣州市星翼電子科技有限公司控制寄存器(WWDG_CR)ALIENTEK《例說STM32》72023/1/12廣州市星翼電子科技有限公司可以看出,這里我們的WWDG_CR只有低八位有效,T[6:0]用來存儲看門狗的計數器值,隨時更新的,每個看窗口看門狗計數周期(4096×2^WDGTB)減1。當該計數器的值從0X40變為0X3F的時候,將產生看門狗復位。WDGA位則是看門狗的激活位,該位由軟件置1,以啟動看門狗,并且一定要注意的是該位一旦設置,就只能在硬件復位后才能清零了。ALIENTEK《例說STM32》82023/1/12廣州市星翼電子科技有限公司配置寄存器(WWDG_CFR)ALIENTEK《例說STM32》92023/1/12廣州市星翼電子科技有限公司該位中的EWI是提前喚醒中斷,也就是在快要產生復位的前一段時間(T[6:0]=0X40)來提醒我們,需要進行喂狗了,否則將復位!因此,我們一般用該位來設置中斷,當窗口看門狗的計數器值減到0X40的時候,如果該位設置,并開啟了中斷,則會產生中斷,我們可以在中斷里面向WWDG_CR重新寫入計數器的值,來達到喂狗的目的。注意這里在進入中斷后,必須在不大于113us的時間(PCLK1頻率為36M且WDGTB為0的條件下)內重新寫WWDG_CR,否則,看門狗將產生復位!ALIENTEK《例說STM32》102023/1/12廣州市星翼電子科技有限公司狀態寄存器(WWDG_SR)該寄存器用來記錄當前是否有提前喚醒的標志。該寄存器僅有位0有效,其他都是保留位。當計數器值達到40h時,此位由硬件置1。它必須通過軟件寫0來清除。對此位寫1無效。即使中斷未被使能,在計數器的值達到0X40的時候,此位也會被置1。ALIENTEK8.3窗口看門狗配置步驟《例說STM32》112023/1/12廣州市星翼電子科技有限公司1)使能WWDG時鐘。WWDG不同于IWDG,IWDG有自己獨立的40Khz時鐘,不存在使能問題。而WWDG使用的是PCLK1的時鐘,需要先使能時鐘。2)設置WWDG_CFR和WWDG_CR兩個寄存器在時鐘使能完后,我們設置WWDG的CFR和CR兩個寄存器,對WWDG進行配置。包括使能窗口看門狗、開啟中斷、設置計數器的初始值、設置窗口值并設置分頻數WDGTB等。ALIENTEK《例說STM32》122023/1/12廣州市星翼電子科技有限公司3)開啟WWDG中斷并分組在設置完了WWDG后,需要配置該中斷的分組及使能。這點通過我們之前所編寫的MY_NVIC_Init函數實現就可以了。4)編寫中斷服務函數在最后,還是要編寫窗口看門狗的中斷服務函數,通過該函數來喂狗,喂狗要快,否則當窗口看門狗計數器值減到0X3F的時候,就會引起軟復位了。在中斷服務函數里面也要將狀態寄存器的EWIF位清空。

ALIENTEK8.4實驗講解《例說STM32》132023/1/12廣州市星翼電子科技有限公司硬件設計:窗口看門狗與獨立看門狗一樣,與外部電路基本沒什么關系,全部在內部實現,但是考慮到指示STM32的狀態,使用了2個外部的LED,DS0和DS1。其他的沒有什么電路。實驗現象:將代碼下載到MiniSTM32后,可以看到DS0亮一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論