一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32mp1 Cortex M4開發(fā)篇7:窗口看門狗

華清遠(yuǎn)見(jiàn)工控 ? 2021-10-29 17:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面:

本文章為《ARM Cortex-M4裸機(jī)開發(fā)篇》系列中的一篇,,全系列總計(jì)14篇。筆者使用的開發(fā)平臺(tái)為華清遠(yuǎn)見(jiàn)FS-MP1A開發(fā)板(STM32MP157開發(fā)板),Cortex-M4裸機(jī)開發(fā)篇除了講M4裸機(jī)開發(fā)外,還會(huì)講解通過(guò)M4控制資源擴(kuò)展板上的各種傳感器執(zhí)行器模塊(包括空氣溫濕度傳感器、LED燈、數(shù)碼管、蜂鳴器、震動(dòng)馬達(dá)、按鍵中斷、風(fēng)扇等),本篇是M4控制資源擴(kuò)展板中的一篇。

資源擴(kuò)展板是FS-MP1A開發(fā)板的擴(kuò)展模塊,主要包含了10余種助主流傳感器、執(zhí)行器件、總線控制器件,非常方便項(xiàng)目擴(kuò)展用。可拓展開發(fā)智慧家庭、智能醫(yī)療、智能安防、工業(yè)控制、圖像識(shí)別、環(huán)境檢測(cè)等方向的10個(gè)左右綜合項(xiàng)目,華清遠(yuǎn)見(jiàn)開發(fā)板也將配套提供所有項(xiàng)目的說(shuō)明文檔、實(shí)驗(yàn)源碼、應(yīng)用程序等資料。

針對(duì)FS-MP1A開發(fā)板,除了Cortex-M4裸機(jī)開發(fā)篇外,還包括其他多系列教程,包括Cortex-A7開發(fā)篇、FreeRTOS篇、Linux基礎(chǔ)及應(yīng)用開發(fā)篇、Linux系統(tǒng)移植篇、Linux驅(qū)動(dòng)開發(fā)篇、硬件設(shè)計(jì)篇、人工智能機(jī)器視覺(jué)篇、Qt應(yīng)用編程篇、Qt綜合項(xiàng)目實(shí)戰(zhàn)篇等。d=622457259672

1.資源擴(kuò)展板介紹

1.1硬件介紹&資源擴(kuò)展板可開發(fā)項(xiàng)目

poYBAGFn9z-AAMA3AAJtk6t7vns204.jpg

2.Cortex-M4 窗口看門狗

2.1實(shí)驗(yàn)?zāi)康?/strong>

熟悉STM32CubeIDE工具軟件的使用。

掌握STM32CubeIDE軟件的基本設(shè)計(jì)流程和設(shè)計(jì)步驟,能夠使用工具進(jìn)行設(shè)計(jì)、編程、仿真調(diào)試。

學(xué)習(xí)窗口看門狗的使用方法,掌握如何利用STM32MP157A芯片的窗口看門狗復(fù)位程序。

2.2實(shí)驗(yàn)環(huán)境

FS-MP1A開發(fā)平臺(tái)

ST-Link仿真器

STM32CubeIDE開發(fā)軟件

PC機(jī) XP、Window7/10 (32/64bit)

串口調(diào)試工具

2.3實(shí)驗(yàn)原理

看門狗其實(shí)就是一個(gè)定時(shí)器,從功能上說(shuō)它可以讓微控制器在程序發(fā)生意外(程序進(jìn)入死循環(huán)或跑飛)的時(shí)候,能重新回復(fù)到系統(tǒng)剛上電狀態(tài),以保障系統(tǒng)出問(wèn)題的時(shí)候可以重啟一次。說(shuō)的簡(jiǎn)單一點(diǎn),看門狗就是能讓程序出問(wèn)題時(shí)能重新啟動(dòng)系統(tǒng)。

窗口看門狗的工作原理是一個(gè)遞減計(jì)數(shù)器不斷的往下遞減計(jì)數(shù),當(dāng)減到一個(gè)固定值 0x40 時(shí)還不喂狗的話,產(chǎn)生復(fù)位,這個(gè)值叫作窗口的下限,是固定的值,不能改變。另外窗口看門狗計(jì)數(shù)器的值在減到某一個(gè)數(shù)之前喂狗的話也會(huì)產(chǎn)生復(fù)位,這個(gè)值叫作窗口的上限,上限值由用戶獨(dú)立設(shè)置。

窗口看門狗計(jì)數(shù)器的值必須在上窗口和下窗口之間才可以喂狗,這就是窗口看門狗中窗口兩個(gè)字的含義。

poYBAGF7Rw-AEe8RAAB_s7Gm7nk188.jpg

WWDG功能框圖

窗口看門狗時(shí)鐘

窗口看門狗時(shí)鐘來(lái)自PCLK1,由RCC時(shí)鐘控制器啟動(dòng)。

計(jì)數(shù)器時(shí)鐘:

計(jì)數(shù)器時(shí)鐘由 CK計(jì)時(shí)器時(shí)鐘經(jīng)過(guò)預(yù)分頻器分頻得到,分頻系數(shù)由配置寄存器 CFR 的位 8:7 WDGTB[1:0]配置,可以是[0,1,2,3],其中 CK計(jì)時(shí)器時(shí)鐘=PCLK1/4096,4096對(duì)應(yīng)于內(nèi)部分頻器的值。所以計(jì)數(shù)器的時(shí)鐘CNT_CK=PCLK1/4096/(2^WDGTB),這就可以算出計(jì)數(shù)器減一個(gè)數(shù)的時(shí)間 T= 1/CNT_CK =Tpclk1 * 4096 * (2^WDGTB)。

計(jì)數(shù)器:

窗口看門狗的計(jì)數(shù)器是一個(gè)遞減計(jì)數(shù)器,共有 7 位,其值存在控制寄存器 CR 的位 6:0,即 T[6:0],當(dāng) 7 個(gè)位全部為 1時(shí)是 0x7F,這個(gè)是最大值,當(dāng)遞減到 T6 位變成 0時(shí),即從0x40 變?yōu)?x3F時(shí)候,會(huì)產(chǎn)生看門狗復(fù)位。這個(gè)值 0X40 是看門狗能夠遞減到的最小值,所以計(jì)數(shù)器的值只能是:0x40~0x7F之間,實(shí)際上用來(lái)計(jì)數(shù)的是 T[5:0]。當(dāng)遞減計(jì)數(shù)器遞減到 0x40 的時(shí)候,還不會(huì)馬上產(chǎn)生復(fù)位,如果使能了提前喚醒中斷:CFR 位 9 EWI 置 1,則產(chǎn)生提前喚醒中斷,如果真進(jìn)入了這個(gè)中斷的話,就說(shuō)明程序肯定是出問(wèn)題了,那么在中斷服務(wù)程序里面我們就需要做最重要的工作,比如保存重要數(shù)據(jù),或者報(bào)警等,這個(gè)中斷我們也叫它死前中斷。

窗口值:

我們知道窗口看門狗必須在計(jì)數(shù)器的值在一個(gè)范圍內(nèi)才可以喂狗,其中下窗口的值是

固定的 0x40,上窗口的值可以改變,具體由配置寄存器 CFR 的位 6:0 W[6:0]設(shè)置。其值必須大于 0x40,如果小于或者等于 0x40就是失去了窗口的價(jià)值,而且也不能大于計(jì)數(shù)器的值,所以必須得小于 0x7F。

窗口看門狗激活情況下,滿足以下條件會(huì)產(chǎn)生復(fù)位。

1.當(dāng)遞減計(jì)數(shù)器的值小于0x40時(shí)(即從0x40到0x3F)會(huì)產(chǎn)生復(fù)位。

2.當(dāng)計(jì)數(shù)器值大于窗口寄存器的值時(shí),如果軟件重載計(jì)數(shù)器,則會(huì)產(chǎn)生復(fù)位。

poYBAGF7RxCACDupAABu19uUsho650.jpg

從上面的時(shí)序圖中可以看到,如果遞減計(jì)數(shù)器的值(T[6:0])大于窗口寄存器(W[6:0])的值,重載計(jì)數(shù)器會(huì)產(chǎn)生復(fù)位。當(dāng)遞減計(jì)時(shí)器的值小于0x40時(shí),也會(huì)產(chǎn)生復(fù)位。所以只能在W[6:0] ~ 0x3F之間刷新,在窗口之外重載遞減計(jì)數(shù)器時(shí)復(fù)位。存儲(chǔ)在窗口寄存器(WWDG_CR)中的值必須介于0xFF和0xC0之間。開啟窗口看門狗中斷時(shí),當(dāng)遞減計(jì)數(shù)器的值等于0x40時(shí)觸發(fā)中斷。

看門狗超時(shí)時(shí)間

pYYBAGF7Rw-AcsVOAAAgSt6Oylg669.jpg

WWDG時(shí)鐘是掛在APB1上的,本實(shí)驗(yàn)配置PCLK1時(shí)鐘為64MHz,預(yù)分頻為8,T[5:0]最大為63

ms

poYBAGF7Rw-AQYYgAABHHiIygi8920.jpg

2.4實(shí)驗(yàn)步驟

打開STM32CubeIDE->File->New->STM32 Project

poYBAGD1ME2AVPeTAACVnz-qkMk546.png

可以在左側(cè)搜索框內(nèi)輸入芯片型號(hào)STM32MP157A進(jìn)行搜索,選擇對(duì)應(yīng)芯片,點(diǎn)擊Next

poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg

填寫工程名,點(diǎn)擊Finsh

pYYBAGF7RxCALB5OAABYYhOwuAQ384.jpg

點(diǎn)擊Yes打開配置頁(yè)面

pYYBAGD1MFqAKmnWAAAp3TMlYLo989.png

配置WWDG1,勾選Cortex-M4,勾選Activated

配置WWDG計(jì)數(shù)器預(yù)分頻為8,窗口寄存器的值為90,遞減計(jì)數(shù)器刷新值為127

Early wakeup interrupt使能 Enable,開啟窗口看門狗中斷

pYYBAGF7RxCABOYIAADElFg6X18346.jpg

poYBAGF7RxCAGtbzAAAsGAfuDIs285.jpg

配置UART4,勾選Cortex-M4,Mode選擇Asynchronous,搜索框搜索PB2、PG11,分別配置為UART4_RX、UART4_TX

poYBAGF7RxCAJ4b8AADMv_hNViE303.jpg

默認(rèn)時(shí)鐘配置64MHz

pYYBAGF7RxCABF03AADEmtaJIAc131.jpg

在Code Generator處選擇為每個(gè)外設(shè)生成單獨(dú)的C和H文件,這樣設(shè)置方便閱讀代碼

poYBAGD1MGmAams0AACpGOkAn0s579.png

完成以上設(shè)置后,Ctrl+S保存,會(huì)提示是否需要生成代碼,選擇Yes即可自動(dòng)生成代碼。系統(tǒng)會(huì)自動(dòng)生成System Clock代碼

poYBAGD1MG2ADAi6AAAgBCPP1k8477.png

可以在左側(cè)工程文件夾找到WDT_CM4子工程,打開main.c

添加窗口看門狗中斷回調(diào)函數(shù),串口重定向函數(shù)

123456789 void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg){ HAL_WWDG_Refresh(hwwdg);}int __io_putchar(int ch){ HAL_UART_Transmit(&huart4, (uint8_t *)&ch, 1, 0xFFFF); return ch;}

在main函數(shù)中添加打印語(yǔ)句,實(shí)現(xiàn)程序運(yùn)行正常,不斷打印信息

pYYBAGF7RxGAc6U8AACoHXqnIf0772.jpg

上述為新建工程配置過(guò)程,可參考12.3.2章節(jié)進(jìn)行導(dǎo)入已有工程,工程存放路徑【華清遠(yuǎn)見(jiàn)-FS-MP1A開發(fā)資料\02-程序源碼\ARM體系結(jié)構(gòu)與接口技術(shù)\Cortex-M4\6_WDT】

配置完成或?qū)牍こ毯筮M(jìn)行程序下載,具體步驟參考12.3.3節(jié)進(jìn)行開發(fā)板連接,程序編譯、下載

2.5實(shí)驗(yàn)現(xiàn)象

連接串口線,打開串口調(diào)試助手可以看到

poYBAGF7RxGAE0baAACyD2gf7kw914.jpg

在窗口看門狗中斷回調(diào)函數(shù)中注釋掉HAL_WWDG_Refresh(hwwdg)后,不刷新計(jì)數(shù)器。由于不刷新計(jì)數(shù)器,看門狗每33ms復(fù)位重啟一次,重新編譯下載后串口輸出如下

poYBAGF7RxGAXSJyAAC-LvOFzrs337.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650584
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9353

    瀏覽量

    377644
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317657
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213843
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5682

    瀏覽量

    104835
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32L433單片機(jī)如何在調(diào)試的時(shí)候關(guān)閉看門狗?

    調(diào)試單步時(shí),獨(dú)立看門狗iwdg暫停 The independent watchdog counter clock is stopped when the core is halted__HAL_DBGMCU_FREEZE_WWDG();//窗口
    發(fā)表于 07-11 07:15

    第二十四章 WWDG——窗口看門狗

    W55MH32的窗口看門狗7位遞減計(jì)數(shù)器,有上下窗口值,時(shí)鐘來(lái)自PCLK1用于監(jiān)測(cè)軟件故障,代碼演示了其配置、中斷測(cè)試與復(fù)位測(cè)試。
    的頭像 發(fā)表于 06-20 14:00 ?588次閱讀
    第二十四章 WWDG——<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>

    TPS3430 具有可編程復(fù)位延遲的窗口看門狗定時(shí)器數(shù)據(jù)手冊(cè)

    TPS3430 是一款獨(dú)立的窗口看門狗定時(shí)器,具有可編程看門狗窗口和可編程看門狗復(fù)位延遲,適用于各種應(yīng)用。TPS3430
    的頭像 發(fā)表于 04-10 14:23 ?288次閱讀
    TPS3430 具有可編程復(fù)位延遲的<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時(shí)器數(shù)據(jù)手冊(cè)

    TPS3430-Q1 具有可編程復(fù)位延遲的汽車級(jí)窗口看門狗定時(shí)器數(shù)據(jù)手冊(cè)

    TPS3430-Q1 是一款獨(dú)立的汽車窗口看門狗定時(shí)器,具有可編程看門狗窗口和可編程看門狗復(fù)位延
    的頭像 發(fā)表于 04-10 14:15 ?310次閱讀
    TPS3430-Q<b class='flag-5'>1</b> 具有可編程復(fù)位延遲的汽車級(jí)<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時(shí)器數(shù)據(jù)手冊(cè)

    TPS36-Q1系列 帶窗口看門狗定時(shí)器的汽車級(jí)納米靜態(tài)電流精密監(jiān)控器數(shù)據(jù)手冊(cè)

    TPS36-Q1 是一款超低功耗(典型值為 250 nA)器件,提供具有可編程窗口看門狗定時(shí)器的精密電壓監(jiān)控器。TPS36-Q1 支持寬閾值電平的欠壓監(jiān)控,在指定溫度范圍內(nèi)具有 1.2
    的頭像 發(fā)表于 04-09 15:44 ?312次閱讀
    TPS36-Q<b class='flag-5'>1</b>系列 帶<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時(shí)器的汽車級(jí)納米靜態(tài)電流精密監(jiān)控器數(shù)據(jù)手冊(cè)

    TPS3436-Q1 汽車級(jí)納米靜態(tài)電流精密窗口看門狗定時(shí)器數(shù)據(jù)手冊(cè)

    TPS3436-Q1 是一款超低功耗(典型值為 250 nA)器件,提供可編程窗口看門狗定時(shí)器。 TPS3436-Q1 提供高精度窗口
    的頭像 發(fā)表于 04-09 14:40 ?317次閱讀
    TPS3436-Q<b class='flag-5'>1</b> 汽車級(jí)納米靜態(tài)電流精密<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時(shí)器數(shù)據(jù)手冊(cè)

    RT1170EVKB如何設(shè)置CM7和CM4內(nèi)核來(lái)實(shí)現(xiàn)它們自己的看門狗外設(shè)?

    RT1170 EVKB 評(píng)估板的看門狗驅(qū)動(dòng)程序示例似乎只適用于CM7內(nèi)核。 給定一個(gè)基本的雙核應(yīng)用程序,我應(yīng)該如何設(shè)置 CM7 和 CM4 內(nèi)核來(lái)實(shí)現(xiàn)它們自己的
    發(fā)表于 03-17 07:03

    Arduino中可以使用STM32F1或者STM32F4系列芯片的內(nèi)置看門狗嗎?

    Arduino中可以使用STM32F1或者STM32F4系列芯片的內(nèi)置看門狗
    發(fā)表于 03-13 07:32

    看門狗,你真的會(huì)用嗎?

    嵌入式系統(tǒng)開發(fā)中,看門狗是一種重要的機(jī)制,用于在程序異常時(shí)自動(dòng)重啟系統(tǒng),保障其穩(wěn)定性。本文將深入探討看門狗及其在程序穩(wěn)定性中的作用,幫助您更好地理解和應(yīng)用看門狗技術(shù)。
    的頭像 發(fā)表于 03-12 11:37 ?1777次閱讀
    <b class='flag-5'>看門狗</b>,你真的會(huì)用嗎?

    安利給工程師!看門狗相關(guān)知識(shí)

    看門狗能夠及時(shí)檢測(cè)并采取相應(yīng)措施,從而避免系統(tǒng)長(zhǎng)時(shí)間處于故障狀態(tài)。本文將詳細(xì)介紹看門狗的工作原理及其正確使用方法。 同時(shí)通過(guò)具體示例解析,教你如何在一個(gè)簡(jiǎn)單的LuatOS項(xiàng)目中集成看門狗定時(shí)器,設(shè)置
    的頭像 發(fā)表于 12-31 14:29 ?566次閱讀
    安利給工程師!<b class='flag-5'>看門狗</b>相關(guān)知識(shí)

    抄作業(yè)!看門狗定時(shí)器必備知識(shí)

    Air201在模組內(nèi)部集成了硬件看門狗,今天就一起來(lái)聊聊~ 本文將帶你了解看門狗的工作原理、應(yīng)用架構(gòu)、定時(shí)時(shí)間設(shè)置、軟硬件看門狗的區(qū)別,以及看門狗定時(shí)器的典型應(yīng)用場(chǎng)景及關(guān)鍵設(shè)計(jì)因素等內(nèi)
    的頭像 發(fā)表于 12-30 14:44 ?772次閱讀
    抄作業(yè)!<b class='flag-5'>看門狗</b>定時(shí)器必備知識(shí)

    一文詳解看門狗/電壓監(jiān)控芯片規(guī)格書

    一、關(guān)于一些看門狗、電壓監(jiān)控的疑問(wèn)?1.什么是看門狗?看門狗,又叫Watchdog,本質(zhì)上來(lái)說(shuō)就是一個(gè)定時(shí)器電路,一般有一個(gè)輸入和一個(gè)輸出,其中輸入叫做喂狗,輸出一般連接到另外一個(gè)部分
    的頭像 發(fā)表于 12-26 17:18 ?1438次閱讀
    一文詳解<b class='flag-5'>看門狗</b>/電壓監(jiān)控芯片規(guī)格書

    具有可編程超時(shí)延遲的TPS3430EVM窗口看門狗定時(shí)器用戶指南

    電子發(fā)燒友網(wǎng)站提供《具有可編程超時(shí)延遲的TPS3430EVM窗口看門狗定時(shí)器用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 15:27 ?0次下載
    具有可編程超時(shí)延遲的TPS3430EVM<b class='flag-5'>窗口</b><b class='flag-5'>看門狗</b>定時(shí)器用戶指南

    常用硬件看門狗電路

    硬件看門狗電路分享
    的頭像 發(fā)表于 12-18 14:09 ?6400次閱讀
    常用硬件<b class='flag-5'>看門狗</b>電路

    TPS7A63xx-Q1配置可在看門狗時(shí)實(shí)現(xiàn)長(zhǎng)復(fù)位脈沖寬度

    電子發(fā)燒友網(wǎng)站提供《TPS7A63xx-Q1配置可在看門狗時(shí)實(shí)現(xiàn)長(zhǎng)復(fù)位脈沖寬度.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 14:29 ?0次下載
    TPS<b class='flag-5'>7A63xx-Q1</b>配置可在<b class='flag-5'>看門狗</b>時(shí)實(shí)現(xiàn)長(zhǎng)復(fù)位脈沖寬度