新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32 之 外部開門狗(iwdg)

        STM32 之 外部開門狗(iwdg)

        作者: 時間:2016-12-03 來源:網(wǎng)絡(luò) 收藏
        獨立看門狗(IWDG)由專用的40kHz的低速時鐘驅(qū)動,

        即使主時鐘發(fā)生故障它也仍然有效。
        窗口看門狗由從APB1時鐘分頻后得到的時鐘驅(qū)動,
        通過可配置的時間窗口來檢測應(yīng)用程序非正常的過遲或過早的操作。

        本文引用地址:http://www.104case.com/article/201612/325145.htm

        IWDG最適合應(yīng)用于那些需要看門狗作為一個在主程序之外,
        能夠完全獨立工作,并且對時間精度要求較低的場合。

        WWDG最適合那些要求看門狗在精確計時窗口起作用的應(yīng)用程序

        IWDG主要性能
        ●自由運行的遞減計數(shù)器
        ●時鐘由獨立的RC振蕩器提供(可在停止和待機模式下工作)
        ●看門狗被激活后,則在計數(shù)器計數(shù)至0x000時產(chǎn)生復位


        下面是使用代碼:

        C語言:Codee#18865
        voidLSI_RCC_Configuration(void)
        {
        RCC_LSICmd(ENABLE);//打開LSI
        while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY)==RESET);//等待直到LSI穩(wěn)定
        }


        =================================================================================

        voidIWDG_Configuration(void)
        {
        IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);// 打開使能,因為iwdg的寄存器有寫保護,必須先寫入0x5555,才能操作寄存器
        IWDG_SetPrescaler(IWDG_Prescaler_256);// 獨立看門狗使用內(nèi)部低速振蕩器LSI,對LSI進行256分頻
        IWDG_SetReload(2500);// 設(shè)定獨立看門狗計數(shù)器的計數(shù)值(0x000~0xFFF;0~4095),復位時間為16s
        IWDG_ReloadCounter();// 重載獨立看門狗計數(shù)器,向寄存器寫入0xAAAA,或者更新計數(shù)值
        IWDG_Enable();// 開啟看門狗,向寄存器寫入0xCCCC即可
        }

        喂狗程序直接使用IWDG_ReloadCounter();函數(shù)。

        其中 LSI_RCC_Configuration(); // 內(nèi)部低速時鐘配置 該函數(shù)可以不用,但是等低速內(nèi)部時鐘穩(wěn)定后再開外部看門狗比較好。


        現(xiàn)在說說如何計算外部看門狗計數(shù)器復位的時間。

        先給出datasheet上的預(yù)分頻和對應(yīng)的時間范圍:

        我們來舉個例子:

        比如上面的代碼所示,預(yù)分頻256,然后計數(shù)值是2500次,則外部看門狗計數(shù)器復位時間為16秒。

        首先LSI是40KHz,這里不考慮其上下浮動的情況。

        • 40000Hz / 256 = 156.25Hz 這里40KHz就是40000Hz進行256分頻后,計數(shù)器的頻率為156.25Hz;
        • 1 / 156.25Hz = 0.0064s156.25Hz換算成時間就是0.0064秒,即為每次計數(shù)用時0.0064秒;
        • 0.0064s * 2500 = 16s 則2500次計數(shù)用時16秒,16秒后計數(shù)初值被減到零,觸發(fā)復位,被狗咬到。


        如何測試:

        stm32 的速率比較高,如果用LED作測試可能無法看到他的復位效果。

        所以還是用仿真器比較好用,下面是一個示意:



        關(guān)鍵詞: STM32外部開門狗iwd

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 霍城县| 塘沽区| 江津市| 浠水县| 正镶白旗| 游戏| 五常市| 神农架林区| 沁源县| 德化县| 怀集县| 遂宁市| 双牌县| 安乡县| 平潭县| 沁水县| 景洪市| 浏阳市| 辽宁省| 莫力| 老河口市| 郎溪县| 拜城县| 秭归县| 若羌县| 桓台县| 庆阳市| 黑龙江省| 喜德县| 颍上县| 古丈县| 藁城市| 聊城市| 陵水| 全南县| 万载县| 泰和县| 铜鼓县| 淮安市| 牡丹江市| 长春市|