如何計算STM32定時器、獨立看門狗和窗口看門狗

目錄

一、基本、通用類型定時器編程

二、獨立看門狗定時器異步

三、窗口看門狗定時器 ide


以前分享了STM32 GPIO的原理、特性、選型和配置如何計算RTC時鐘異步預分頻和同步預分頻,此次簡要闡述STM32L011微控制器定時器的參數配置(其餘型號大同小異,本文側重講解配置,至於各種定時器的特色後續再述),STM32定時器種類繁多有通用定時器、基本定時器、獨立看門狗定時器、窗口看門狗定時器等。.net

一、基本、通用類型定時器

STM32基本、通用類型可編程定時器主要由一個 16 位及其相關的自動重載寄存器組成,在配置基本、通用類型的定時器時有三種關鍵寄存器:計數器寄存器 、預分頻器寄存器和自動重載寄存器,具體說明以下所示:設計

  • 計數器寄存器:有遞增計數、遞減計數或同時遞增和遞減計數三類,計數器的時鐘可經過預分頻器進行分頻;blog

  • 預分頻器寄存器:可對計數器時鐘頻率進行分頻,分頻係數介於 1 和 65536 之間(這裏指STM32L011);事件

  • 自動重載寄存器:當計數器達到上溢值(或者在遞減計數時達到下溢值)時將發送更新事件,計數器寄存器將裝載從新計數。get

假設計數器寄存器數值爲0xFC,採用2預分頻,當使能計數器後,定時器時鐘開始按照定時效果運行(定時由計數器寄存器和預分頻器寄存器共同決定),計數器從0x00計數到0xFC後會產生中斷,並更新時間開始新一輪的計數,從0x00計數到0xFC時間的長短由預分頻控制寄存器決定,時序圖以下所示:同步

 數器寄存器數值爲0xFC(十進制:252),採用2預分頻的定時週期計算以下(假設使用32MHZ的時鐘頻率):it

因爲1HZ是1秒/次的頻率,63492HZ就是,計數器從0x00計數到0xFC,定時週期爲63492秒,使用STM32CuBeMX配置以下所示:

假設計數器寄存器數值爲0xFC,採用4預分頻, 時序圖以下所示:

數器寄存器數值爲0xFC(十進制:252),採用2預分頻的定時週期計算以下(假設使用32MHZ的時鐘頻率):

計數器從0x00計數到0xFC,定時週期爲31746秒,使用STM32CuBeMX配置以下所示:

二、獨立看門狗定時器

獨立看門狗定時器激活後,計數器開始從復位值 0xFFF (可經過窗口寄存器修改)遞減計數,當計數器計數到終值 (0x000) 時會產生一個復位信號,在遞減的過程當中將鍵值 0x0000 AAAA 寫到密鑰寄存器中,計數器將會重載,從而避免產生看門狗復位,獨立看門狗框圖以下所示:

 獨立看門狗定時器有三種關鍵寄存器:窗口寄存器、預分頻器寄存器和重載寄存器,具體說明以下所示:

  • 窗口寄存器:默認值爲 0x0000 0FFF(十進制:4095),當計數器值大於窗口寄存器中存儲的值時,若是執行重載操做,則會產生復位;

  • 預分頻器寄存器:可對計數器時鐘頻率進行分頻,分頻係數最大爲256(這裏指STM32L011);

  • 重載寄存器:當計數器計數到終值 (0x000) 時會產生一個復位信號,計數器寄存器將裝載從新計數。

獨立看門狗定時器時鐘由LSI振盪器提供,STM32L011中LSI頻率爲37KHZ,看門狗定義週期時間的方式和基本、通用類型可編程定時器徹底一致,假設定義1秒週期的看門狗定時器,超過1秒不喂狗就進行系統復位,計算方式以下所示:

 固然因爲LSI振盪器精度有限,在運行過程當中會存在必定偏差,使用STM32CuBeMX配置以下所示:

三、窗口看門狗定時器 

窗口看門狗定時器是可編程的自由運行遞減計數器,窗口看門狗激活後當遞減計數器值小於 0x40(從 0x40 遞減到 0x3F) 時復位,在窗口閾值以外重載遞減計數器時也會復位,只有在0x40~窗口閾值之間喂狗系統才能夠正常運行,窗口定時器時序圖以下所示:

時序圖解析以下所示:

  • T[6:0]:7 位計數器,用來存儲看門狗計數器的值,它每隔PCLK 個週期遞減一次,當它從 0x40 遞減到 0x3F(T6 清零)時會產生復位;

  • WDGTB[1:0] :定時器時基 ,有4種方式修改預分頻器的時基:00:CK 計數器時鐘 (PCLK div 4096) 分頻器 一、01:CK 計數器時鐘 (PCLK div 4096) 分頻器 二、10:CK 計數器時鐘 (PCLK div 4096) 分頻器 4和11:CK 計數器時鐘 (PCLK div 4096) 分頻器 8;

  • W[6:0]:7 位窗口值,用於與遞減計數器進行比較的窗口值,超過窗口閾值系統會復位;

  • 當遞減計數器值從 0x40 遞減到 0x3F時系統會復位;

  • 0x40~W[6:0]之間能夠刷新喂狗,確保系統正常運行。

窗口定時器超時值的計算公式以下:

STM32L011中窗口看門狗定時器基於APB1頻率,假設APB1 頻率等於 32 MHZ,定義65毫秒週期的窗口看門狗定時器,計算方式以下所示:

 使用STM32CuBeMX配置以下所示:

相關文章
相關標籤/搜索