218s新光盤fm3應用筆記_第1頁
218s新光盤fm3應用筆記_第2頁
218s新光盤fm3應用筆記_第3頁
218s新光盤fm3應用筆記_第4頁
218s新光盤fm3應用筆記_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、LSD MCU TECHNOLOGY CO.,.FM332 位微控制器MB9BF21x 系列WatchdogSoftware Watchdog應用筆記第 1頁 共 13頁LSD MCU TECHNOLOGY CO.,.版本歷史:第 2頁 共 13頁版本日期作者審核描述1.02013/8/15微控事業(yè)部創(chuàng)建第一版LSD MCU TECHNOLOGY CO.,.目錄1 章 簡介4第1.11.22 章2.12.22.32.42.52.62.7看門狗簡介4看門狗簡介4具體描述5看門狗框圖5看門狗定時器的設定順序示例7看門作時序8使用注意事項8看門狗庫函數(shù)9Software Watchdog 中斷例程9

2、Software Watchdog 復位例程10第3 章 應用實例11第3.13.23.3實例說明11流程圖11詳細配置124章 總結12第第 3頁 共 13頁LSD MCU TECHNOLOGY CO.,.第 1 章 簡介1.1 看門狗簡介看門狗定時器可以檢測出用戶程序是否失控。如果在事先設定的間隔時間內(nèi)不能清零看門狗定時器時,則會判斷用戶程序失控,并向 CPU 輸出中斷請求或者系統(tǒng)復位請求??撮T狗計數(shù)器第一次發(fā)生下溢時,產(chǎn)生中斷請求。中斷請求不清零的狀態(tài)下,第二次發(fā)生下溢時,產(chǎn)生復位請求??墒褂眉拇嫫髟O定該功能。FM3 微控制器有 Hardware Watchdog Timer(硬件看門狗

3、)和 Software(看門狗)。它們之間的比較如下表所示:Watchdog Timer配置注意看門狗寄存器受保護,因此保持每個鎖定寄存器,按照一定的順序進行否則不可以看門狗定時器的所有寄存器。,需要,1.2看門狗簡介看門狗定時器使用用戶程序啟動計數(shù)時鐘使用 APB 總線時鐘的分頻時鐘。待機模式的 APB 時鐘停止時,則會停止計數(shù)。此時,保持計數(shù)值,從待機模式返回時,繼續(xù)計數(shù)。所有的復位均可停止看門狗定時器。第 4頁 共 13頁LSD MCU TECHNOLOGY CO.,.第 2 章 具體描述2.1看門狗框圖S W D G 時 鐘系 統(tǒng) 復 位工具中斷信號A P B 總 線載入寄存器(Wdo

4、gLoad)該寄存器是 32 位寄存器,可以用來設定FF。間隔時間設定示例看門狗定時器的計數(shù)間隔周期。初始值是0 x鎖定寄存器(WdogLock)第 5頁 共 13頁計數(shù)時鐘頻率間隔設定時間40M0 xFF約 107s20M0 xFF約 214s40M0 x0000F約 1.6ms20M0 x0000F約 3.2ms看 門 狗控制邏輯寄存器A P B接 口3 2 位遞減計數(shù)器數(shù) 值 寄 存 器S W D G 復 位S W D G 中 斷中 斷 復 位 電路清 零 寄 存 器控 制 寄 存 器載 入 寄 存 器鎖 定 寄 存 器LSD MCU TECHNOLOGY CO.,.看門狗定時器所有寄存

5、器的。向寄存器寫0 x1ACCE551 可該寄存器可以控制對使能對看門狗定時器所有其它寄存器的寫??刂萍拇嫫?WdogControl)該寄存器可設定看門狗中斷使能和看門狗復位使能。清零寄存器(WdogClr)該寄存器是看門狗定時器的清零寄存器。寫任意 32 位值可從載入寄存器的設定值重新載入定時器,并繼續(xù)計數(shù)??撮T狗定時器計數(shù)器(32 位遞減計數(shù)器)該計數(shù)器是 32 位遞減計數(shù)器。計數(shù)器值遞減計數(shù)到0前可從載入寄存器(WdogLoad)的設定值重載計數(shù)值。重載條件清零寄存器(WdogClr) ,數(shù)值寄存器( WdogValue)可讀出看門狗定時器的計數(shù)值。中斷狀態(tài)寄存器(WdogRIS)該寄存

6、器指示看門狗中斷的狀態(tài)。檢測出看門狗定時器計數(shù)器發(fā)生下溢時,由于寄存器設定,可產(chǎn)生看門狗中斷和看門狗復位看門狗定時器的啟動控制寄存器(WdogControl) 時,可使能看門狗中斷和看門狗復位來啟動看門狗。表 3.3看門狗中斷和復位設定組合看門狗定時器寄存器的重載和鎖定第 6頁 共 13頁中斷復位操作說明看門狗不工作使能下溢發(fā)送中斷使能不工作使能使能第一次下溢產(chǎn)生中斷 第二次下溢時產(chǎn)生復位重載條件清零寄存器(WdogClr)遞減計數(shù)器計數(shù)到0 時修改載入寄存器(WdogLoad)控制寄存器(WdogControl)寫EN=0,看門狗器停止;寫EN=1,再啟動。LSD MCU TECHNOLOG

7、Y CO.,.復位后的初始狀態(tài)下,寄存器未被鎖定。需要鎖定時,請使用對 WdogLock 寄存器寫入0 x1ACCE551 以外的值。清零寄存器時,請對 WdogLock 寄存器寫入0 x1ACCE551 。清零寄存器(WdogClr)賦任意值時,可重載載入寄存器(WdogLoad)的設定值。重載后,再次鎖定寄存器。清零寄存器之后,寄存器不會自動鎖定。請再次使用鎖定。看門狗定時器的停止控制寄存器(WdogControl) ,且看門狗中斷使能位寫0,可停止看門狗定時器。產(chǎn)生的復位可停止看門狗定時器。2.2看門狗定時器的設定順序示例此設定順序為寄存器操作,使用庫函數(shù)將為省去繁瑣的寄存器配置過程。第

8、 7頁 共 13頁LSD MCU TECHNOLOGY CO.,.2.3看門作時序看門狗計數(shù)器值初始值 0 x停 止停 止FF設定值 0 x111 設定值 0 x0000 FF F時 間 T9、下溢產(chǎn) 生復位 5、產(chǎn) 生下溢中斷 7、停 止模 式4、清除看 門狗計數(shù)器 1、設定間隔 0 x111 F8、退出停 止模式 6、改變時 間間隔 2、EN =14、清除看 門狗計數(shù)器 看門狗工作 1.啟動前,設定 SWC_PSR, WDGT_CTL。 寫 WdogLoad 寄存器,設定間隔時間。 啟間隔時間。計數(shù)值變?yōu)槌跏贾怠忧?.WdogControl 寄存器,寫處設定值開始遞減計數(shù)。EN=1 時,

9、看門狗器啟動。 此時,可以反映間隔時間,從 1.3.設定值。4.設定值。WdogClr 寄存器并寫任意值,可清零看門狗計數(shù)器。 此時,設定值是 2. 處的WdogClr 寄存器并寫任意值,可清零看門狗計數(shù)器。 此時,設定值是 2. 中的5.6.7.8.計數(shù)器不清零時,則產(chǎn)生下溢中斷。 此時,遞減計數(shù)器設定值是 2. 處的設定值。WdogLoad 寄存器可變更間隔時間。 此時,遞減計數(shù)值清零到設定值。切換到停止模式??撮T狗器停止。退出停止模式?;謴瓦f減計數(shù)。計數(shù)值不清零。 注意:振蕩穩(wěn)定等待結束后恢復遞減計數(shù),基本時鐘操作開始。使用注意事項須使用復位源寄存器確認看門狗復位的發(fā)生。看門狗寄存器受保

10、護,因此保持每個鎖定寄存器,按照一定的順序進行,需要,否則不可以看門狗定時器的所有寄存器。第 8頁 共 13頁LSD MCU TECHNOLOGY CO.,.2.5看門狗庫函數(shù)2.6Software Watchdog中斷例程使能 Software Watchdog 中斷,并設計數(shù)周期為 1s sic void SWDCallbackFunc(void)SWD_ClrFlag();第 9頁 共 13頁Software Watchdog API:void SWD_EnableReset(void);使能 Software Watchdog 復位功能void SWD_DisableReset(voi

11、d);關閉 Software Watchdog 復位功能void SWD_Enable(SWD_CallbackT* Callback);啟動 Software Watchdog 中斷功能void SWD_Disable(void);關閉 Software Watchdog 中斷功能void SWD_SetCount(u32_t Cnt);設置 Software Watchdog 的計數(shù)值,Software Watchdog 的源時鐘是用 APB0 bus clock 分頻后提供。分頻數(shù)是由宏”SWC_PSR_Val”來決定的。例如 APB0 bus clock 為 40MHz,而分頻數(shù)為4

12、,則 Software Watchdog 的源時鐘為 10MHz,設 Cnt 為 10000000,則大概 1s 后,就會產(chǎn)生 Software Watchdog中斷,如果復位功能被開啟并且中斷位沒有被清 0 ,再過 1 秒后,產(chǎn)生復位。u32_t SWD_GetCurCount(void);Software Watchdog 的當前計數(shù)值void SWD_UnlockAllReg(void);使 Software Watchdog 的寄存器,系統(tǒng)復位后,Software Watchdog 的寄存器都是解鎖的。這些寄存器也可以被上鎖,這個函數(shù)用來對這些寄存器進行。當寄存器后,所有 API 的都

13、有效。一旦寄存器后,寫一次后不會加鎖。void SWD_LockAllReg(void);使 Software Watchdog 的寄存器加鎖,一旦寄存器上鎖后,對于寫寄存器的函數(shù)將無效FlagSusT SWD_GetFlag(void);Software Watchdog 的中斷標志,當 Watchdog Timer 計數(shù)值往下溢出的時候,這個標志會置 1void SWD_ClrFlag(void);清除 Software Watchdog 的中斷標志位,當這個標志位被清 0 后,計數(shù)器的值會被重載。如初始設定的計數(shù)值為 100, 則當計數(shù)值變?yōu)? 后的下一個時鐘周期,中斷標志位置 1 ,

14、把中斷標志0 后,計數(shù)值重新變?yōu)?100 。void SWD_Handler(void);Software Watchdog 的中斷處理程序LSD MCU TECHNOLOGY CO.,.32_t main(void)/* Serdware watchdog count */SWD_UnlockAllReg();SWD_SetCount(5000000); /* 5,000,000* (1/(40MHz/8) = 1s */* Disable hardware watchdog reset */ SWD_DisableReset();/* Enable hardware watchdogerr

15、upt */SWD_Enable(SWDCallbackFunc);NVIC_EnableIRQ(SWDT_IRQn); while(1);2.7 Software Watchdog復位例程使能 Software Watchdog 中斷和復位功能,并設計數(shù)周期為 1s,則約 2s 后復位sic void SWDCallbackFunc(void)32_t main(void)/* reset by software watchdog */ if(bFM3_CRG_RST_STR_SWDT)while(1)/* Serdware watchdog count */SWD_UnlockAllReg

16、();SWD_SetCount(5000000); /* 5000000* (1/(40MHz/8) = 1s */* Disable hardware watchdog reset */ SWD_EnableReset();/* Enable hardware watchdogerrupt */SWD_Enable While(1);(SWDCallbackFunc);第 10頁 共 13頁LSD MCU TECHNOLOGY CO.,.第 3 章 應用實例3.1 實例說明這里以看門狗復位為例:設置 Software Watchdog 的源時鐘是用 APB0 bus clock 2 分頻后提

17、供,即 9MHz。初始化點亮一個 LED,設置 Watchdog Timer 的計數(shù)周期為 1s,當計數(shù)值溢出的時候,產(chǎn)生中斷,熄滅該 LED,在中斷中并不清除中斷標志位,下次溢出,產(chǎn)生復位。當檢測到 Hardware Watchdog Timer 引起的復位時,不斷閃爍該 LED。3.2流程圖主 函 數(shù)看門狗中斷開 始開 始是否為看門狗引起的復位否是Whil結 束返 回第 11頁 共 13頁閃 爍 L E De( 1 )熄 滅 L E D不清除中斷標志位初 始 化 L E D配置看門狗設置計數(shù)值使能看門狗復位使能看門狗中斷LSD MCU TECHNOLOGY CO.,.3.3 詳細配置首先需

18、要在 pdl_user.h 中開啟看門狗功能1 設置計數(shù)值/* Set software watchdog count */ SWD_UnlockAllReg();SWD_SetCount(9000000); /* 9,000,000* (1/(18MHz/2) = 1s */2 使能看門狗復位/* Enable software watchdog reset */ SWD_UnlockAllReg(); SWD_EnableReset();3 使能看門狗中斷/* Enable software watchdog SWD_UnlockAllReg();errupt */SWD_Enable(S

19、WDCallbackFunc);4s看門狗中斷回調(diào)函數(shù)ic void SWDCallbackFunc(void)/在看門狗中斷中,不清除中斷標志位,則第二次下溢將復位USER_LED_OFF();/熄滅 LED5檢測是否為看門狗引起的復位/* reset by software watchdog */if(bFM3_CRG_RST_STR_SWDT) if(RESET_BY_SWD = RST_GetResetCause()while(1)USER_LED_ON();Delay(2000); USER_LED_OFF();Delay(2000);第 4 章總結本文檔介紹了 MB9BF21x 系列的看門狗模塊,講解了看門狗原理與配置,并通過具體了其配置流程。特別要注意每次操作之前,需要看門狗定時器和硬件看門狗定時

溫馨提示

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

評論

0/150

提交評論