• <label id="gmp5l"></label>

    <li id="gmp5l"></li>
      • 您好,歡迎訪問(wèn)上海意泓電子科技有限責(zé)任公司網(wǎng)站!
        4新聞資訊
        您的位置: 首頁(yè) ->  新聞資訊 -> 單片機(jī)

        ?STM32之獨(dú)立看門(mén)狗原理

        文章出處:?jiǎn)纹瑱C(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
        2020
        11-10

        STM32的獨(dú)立看門(mén)狗由內(nèi)部專門(mén)的40Khz低速時(shí)鐘驅(qū)動(dòng),即主時(shí)鐘發(fā)生故障,它也仍然有效,這里我們需要注意獨(dú)立看門(mén)狗的時(shí)鐘不是準(zhǔn)確的40Khz,二是在30~60Khz之間變化的一個(gè)時(shí)鐘,只是我們估算以40Khz來(lái)計(jì)算,看門(mén)狗對(duì)時(shí)間要求不是很青雀,時(shí)鐘有點(diǎn)偏差還是可以接受的。

        獨(dú)立看門(mén)狗相關(guān)的幾個(gè)寄存器

        1.1. 鍵值寄存器(IWDG_KR)

        寄存器各位描述如下:

        獨(dú)立看門(mén)狗工作原理:在鍵值寄存器(IWDG_KR)中寫(xiě)入0XCCCC,開(kāi)始啟用獨(dú)立看門(mén)狗,此時(shí)計(jì)數(shù)器開(kāi)始從其復(fù)位值OXFFF遞減計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)數(shù)到末尾0X000的時(shí)候,會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)(IWDG_RESET),無(wú)論何時(shí),只要寄存器IWDG_KR中被寫(xiě)入0XAAAA,IWDG_RLR中的值就會(huì)被重新加載到計(jì)數(shù)器中從而避免產(chǎn)生看門(mén)狗復(fù)位。

        預(yù)分頻寄存器(IWDG_PR)和重載寄存器(IWDG_RLR)的寫(xiě)保護(hù)  :IWDG_PR和IWDG_RLR寄存器具有寫(xiě)保護(hù)功能,要想修改這兩個(gè)寄存器的值,首先要向IWDG_KR中寫(xiě)入0X5555。以不同的值寫(xiě)入這個(gè)寄存器或者重裝載(寫(xiě)入0XAAAA)都會(huì)重新啟動(dòng)寫(xiě)保護(hù)。

        1.2. 預(yù)分頻寄存器(IWDG_PR)

        該寄存器是用來(lái)設(shè)置看門(mén)狗的時(shí)鐘分頻系數(shù),最低為4,最高位256,雖然是32位寄存器,我們只使用了最低3位,其他保留,預(yù)分頻寄存器各位定義如下:

        1.3. 計(jì)數(shù)重裝載寄存器(IWDG_RLR)

        該寄存器保存重裝載計(jì)數(shù)器中的值,32位寄存器,我們只使用了低12位有效,寄存器描述如下:

        2. 獨(dú)立看門(mén)狗啟動(dòng)過(guò)程

        這樣,只要我們對(duì)以上三個(gè)寄存器進(jìn)行相應(yīng)設(shè)置,我們就可以啟動(dòng)STM32獨(dú)立看門(mén)狗了,啟動(dòng)過(guò)程如下:

        2.1. 1、向IWDG_KR中吸入0X5555

        通過(guò)這一步我們?nèi)∠薎WDG_PR和IWDG_RLR的寫(xiě)保護(hù),下一步我們?cè)O(shè)置他們初值。

        設(shè)置IWDG_PR和IWDG_RLR的初值。

        我們計(jì)算一下看門(mén)狗的喂狗時(shí)間(看門(mén)狗溢出時(shí)間)計(jì)算公式

        Tout=((4*2^prer)*rlr)/40

         其中Tout就是看門(mén)狗溢出時(shí)間(單位ms),prer是看門(mén)狗時(shí)鐘預(yù)分頻值(IWDG_PR值),范圍為0~7,rlr位看門(mén)狗重載值(IWDG_RLR)。比如我們?cè)O(shè)置prer為4,rlr的值為625,我們就可以計(jì)算得到Tout=64*625/40=1000ms,這樣,看門(mén)狗的溢出時(shí)間就是1S,只要在這一秒鐘內(nèi),有一次吸入0XAAAA到IWDG_KR,就不會(huì)導(dǎo)致看門(mén)狗復(fù)位(寫(xiě)入多次也是可以的)(由于看門(mén)狗的時(shí)鐘不是準(zhǔn)確40Khz,所以喂狗不要太晚,以免發(fā)生看門(mén)狗復(fù)位)。

        2.2. 2、向IWDG_KR中寫(xiě)入0XAAAA

        通過(guò)這句可以將重載寄存器(IWDG_RLR)中的計(jì)數(shù)初值載入到看門(mén)狗計(jì)數(shù)器中(也可以時(shí)鐘該命令喂狗)。

        2.3. 3、向IWDG_KR中寫(xiě)入0XCCCC

        通過(guò)這句我們就啟動(dòng)了STM32的看門(mén)狗了,使能了看門(mén)狗,在程序里面我們就必須間隔一定的時(shí)間就喂狗,否則導(dǎo)致程序復(fù)位,利用這一點(diǎn),我們通過(guò)一個(gè)LED來(lái)指示是否復(fù)位,驗(yàn)證獨(dú)立看門(mén)狗。

        STM32中看門(mén)狗核心在芯片內(nèi)部,不需要外部電路,這里我們使用到了外部電路中的2個(gè)IO口,一個(gè)用來(lái)輸入喂狗信號(hào),一個(gè)用來(lái)指示程序是否復(fù)位,喂狗使用WK_UP按鍵,程序重啟指示使用DS0。


        上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

        CopyRight 2020-2025 www.jlodreman.com All rights reserved   滬ICP備2021005866號(hào)

        亚洲人成影院在线观看,91综合永久在线观看,欧洲亚洲日韩国产AV一级,中文字幕在线视频播放
      • <label id="gmp5l"></label>

        <li id="gmp5l"></li>