獨(dú)立看門(mén)狗(iwdg)1
簡(jiǎn)介:
其用于檢測(cè)和解決由軟件錯(cuò)誤導(dǎo)致的故障,當(dāng)計(jì)數(shù)器達(dá)到設(shè)定的超時(shí)時(shí)間值時(shí)會(huì)產(chǎn)生系統(tǒng)復(fù)位。其特點(diǎn)為:1、其運(yùn)用的時(shí)鐘是由獨(dú)立的RC振蕩器產(chǎn)生的,因此可以在待機(jī)和停止模式下運(yùn)行。2、在看門(mén)狗激活后,如果遞減計(jì)數(shù)器的值達(dá)到0X000時(shí)會(huì)產(chǎn)生系統(tǒng)復(fù)位。
2功能簡(jiǎn)述:
通過(guò)向關(guān)鍵字寄存器(IWDG_KR)寫(xiě)入0XCCCC啟動(dòng)獨(dú)立看門(mén)狗,計(jì)數(shù)器會(huì)從復(fù)位值0XFFF,遞減計(jì)數(shù),當(dāng)計(jì)數(shù)器的值達(dá)到0X000時(shí),產(chǎn)生復(fù)位信號(hào)。在計(jì)數(shù)值還未達(dá)到0X000時(shí),向IWDG_KR寄存器寫(xiě)入0XAAAA,IWDG_RLR寄存器的值就會(huì)重裝載到計(jì)時(shí)器,從而可以避免產(chǎn)生復(fù)位(俗稱(chēng)喂狗)。從而可以看出,當(dāng)軟件運(yùn)行出問(wèn)題時(shí),在一定的時(shí)間內(nèi)無(wú)法做到喂狗的功能時(shí),就會(huì)產(chǎn)生系統(tǒng)復(fù)位,實(shí)現(xiàn)其對(duì)軟件故障的檢測(cè)和解決。
3相關(guān)寄存器:
1、關(guān)鍵字寄存器:
關(guān)鍵字寄存器的有效位為位0到位15,位16到位31保留,前邊已經(jīng)介紹過(guò)通過(guò)向該寄存器中寫(xiě)入0XAAAA,可以使IWDG_RLR寄存器中的值重裝載到計(jì)數(shù)器,避免系統(tǒng)復(fù)位。由于IWDG_PR(預(yù)分頻器寄存器)和IWDG_RLR(重載寄存器)是具有寫(xiě)保護(hù)的寄存器,在該寄存器中寫(xiě)入鍵值0X5555可使能對(duì)IWDG_PR和IWDG_RLR的訪問(wèn)。
2、預(yù)分頻器寄存器:
該寄存器的有效位為位0到位2,其他位保留,通過(guò)設(shè)置PR[2:0]的值,設(shè)定相應(yīng)的分頻系數(shù)。
3、重載寄存器:
上面已經(jīng)提到該寄存器中的值會(huì)重裝載到計(jì)數(shù)器中,計(jì)數(shù)器將會(huì)從該值遞減計(jì)數(shù),由此可見(jiàn):該寄存器中的值和預(yù)分頻器寄存器中的值共同決定超時(shí)周期。
4、狀態(tài)寄存器:
該寄存器只有位0和位1為有效位,位0(RVU)為預(yù)分頻器寄存器的值更新標(biāo)志位,位1(PVU)為計(jì)數(shù)器重載值更新標(biāo)志。
4相關(guān)代碼分析:
通過(guò)相關(guān)庫(kù)函數(shù)對(duì)獨(dú)立看門(mén)狗的配置還是相對(duì)簡(jiǎn)單的,其中初始化的過(guò)程如下:
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能對(duì)IWDG->PR IWDG->RLR的寫(xiě)
IWDG_SetPrescaler(prer); //設(shè)置IWDG分頻系數(shù)
IWDG_SetReload(rlr); //設(shè)置IWDG裝載值
IWDG_ReloadCounter(); //reload(喂狗)
IWDG_Enable(); //使能看門(mén)狗
窗口看門(mén)狗(wwdg)1簡(jiǎn)介:
對(duì)比獨(dú)立看門(mén)狗來(lái)看,所謂的窗口看門(mén)狗就是設(shè)定了一個(gè)窗口值(上限和下限值)。當(dāng)遞減計(jì)數(shù)器值小于0X40(窗口下限值)時(shí)產(chǎn)生復(fù)位。在設(shè)置的窗口外重載遞減計(jì)數(shù)器也會(huì)執(zhí)行復(fù)位。窗口看門(mén)狗可以設(shè)置提前喚醒中斷,當(dāng)遞減計(jì)數(shù)器等于0X40時(shí)會(huì)觸發(fā)該中斷,可以在該中斷中做喂狗等相關(guān)操作。
2框圖:
窗口看門(mén)狗的框圖如下:對(duì)比的框圖來(lái)看下邊的相關(guān)介紹!

工作過(guò)程:
通過(guò)設(shè)置WWDG_CR寄存器的WDGA位可以使能看門(mén)狗,遞減計(jì)數(shù)器為控制寄存器的低7位,其中當(dāng)?shù)?位(即T6)由1變?yōu)?(即由0X40遞減為0X3F)時(shí)就會(huì)復(fù)位,在配置寄存器低7位存放看門(mén)狗上限值,計(jì)數(shù)器中的值與上限值比較,如果在上限值之上喂狗也會(huì)執(zhí)行復(fù)位,這也是窗口看門(mén)狗與獨(dú)立看門(mén)狗的不同之處。由此可見(jiàn),喂狗的時(shí)間只能在上限和下限值之間,否則就會(huì)執(zhí)行復(fù)位操作。
4相關(guān)寄存器:
1、控制寄存器(WWDG_CR):
前面已經(jīng)介紹過(guò)了,其中有效位為位0到位7,位7(WDGA)為看門(mén)狗激活位,位0到位6做計(jì)數(shù)器。
2、配置寄存器(WWDG_CFR):
該寄存器的有效位為位0到位9,位0到位6前面已經(jīng)介紹過(guò)存放的是計(jì)數(shù)器的上限值,位7和位8用來(lái)設(shè)置定時(shí)器時(shí)基,從而選定相應(yīng)的時(shí)鐘分頻器。其中位9就是上邊介紹到的提前喚醒中斷(EWI)。
3、狀態(tài)寄存器(WWDG_SR):
該寄存器中的有效位只有位0,用來(lái)做提前喚醒中斷的標(biāo)志位(EWIF)。
-
看門(mén)狗
+關(guān)注
關(guān)注
10文章
583瀏覽量
71815 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124545 -
時(shí)鐘控制
+關(guān)注
關(guān)注
0文章
17瀏覽量
7008
原文標(biāo)題:stm32f10x中iwdg和wwdg的區(qū)別
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開(kāi)發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
獨(dú)立看門(mén)狗(IWDG)的基礎(chǔ)知識(shí)

獨(dú)立看門(mén)狗的特點(diǎn)及功能描述
看門(mén)狗基本介紹
看門(mén)狗的作用
stm32f10x獨(dú)立看門(mén)狗 精選資料分享
STM32F4——獨(dú)立看門(mén)狗與窗口看門(mén)狗 精選資料分享
獨(dú)立看門(mén)狗、窗口看門(mén)狗的作用
看門(mén)狗的相關(guān)資料分享
什么是stm32看門(mén)狗?獨(dú)立看門(mén)狗和窗口看門(mén)狗工作原理解析

STM32看門(mén)狗配置(獨(dú)立看門(mén)狗IWDG和窗口看門(mén)狗WWDG)

STM32L051使用HAL庫(kù)操作實(shí)例(6)-(IWDG)獨(dú)立看門(mén)狗實(shí)驗(yàn)

STM32:獨(dú)立看門(mén)狗、窗口看門(mén)狗的配置

評(píng)論