Timer_對於MCU,定時器的重要性


1、寫在前面

  本文內容如下:

  推薦一篇ST中文網資料,該資料介紹了定時器的相關知識和使用案例(以ST MCU為主)

  下載地址在ST中文網,(最近)進入主頁,都能在首頁看到這個消息。

https://www.stmcu.com.cn/Designresource/design_resource_detail?file_name=STM32+%E5%AE%9A%E6%97%B6%E5%99%A8%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B9%8B%E5%9F%B9%E8%AE%AD%E8%B5%84%E6%96%99&lang=EN&ver=3.1

  這個資料總共有186頁。內容比較多,但講述的比較全面。

 

2、資料的主要內容

  • STM32定時器概述

  • 定時器時基單元

  • 定時器輸入捕捉功能

  • 定時器比較輸出功能

  • 定時器觸發同步與級聯

  • 定時器DMA批量傳送

  • 定時器產生的觸發輸出與其它外設的關聯

  • STM32F334/STM32F7/STM32L4等新增的定時器功能

  • 案例分享【穿插在上述內容中】

 

3、STM32定時器分類

  整體講, STM32家族的定時器眾多,按照核內、核外標准大致分為兩部分: 

  核內定時器 + 外設定時器

  • 核內定時器 : Systick

  • 外設定時器: 特定應用定時器+常規定時器

    • 特定應用定時器: LPTIM;RTC;WTD;HRTIM

    • 常規定時器: 基本定時器、通用定時器、高級定時器 【本篇介紹重點】

 

  按計數器位寬來分:

  • 16位定時器

  • 32位定時器 【TIM2 TIM5】

  • 24位定時器 【Systick】

 

  常規定時器

  1.基本定時器:幾乎沒有任何對外輸入/輸出,常用作時基,實現基本的計數、定時功能。

  2.通用定時器:除了基本定時器的時基功能外,還可對外做輸入捕捉、輸出比較以及連接其它傳感器接口【編碼器和霍爾傳感器】 。

  3.高級定時器: 此類定時器的功能最為強大,除了具備通用定時器的功能外,還包含一些與電機控制和數字電源應用相關的功能,比方帶死區控制的互補信號輸出、緊急剎車關斷輸入控制。

 

4、STM32定時器模塊

640?wx_fmt=png

STM32【通用或高級】 定時器大致分為六個功能單元:

  • 從模式控制單元:負責時鍾源、觸發信號源的選擇;控制計數器的啟停、復位、門控等;

  • 時基單元:定時器核心單元。負責時鍾源的分頻、計數、溢出重裝等。

  • 輸入單元:為部分的時鍾信號、 捕捉信號、 觸發信號提供信號源。

  • 比較輸出單元:通過對比較寄存器與計數器的數值匹配比較,實現不同輸出波形。

  • 觸發輸出單元:輸出觸發信號給到其它定時器或外設。

  • 捕捉比較單元: 是輸入捕捉或比較輸出的公共執行單元。

 

從信號鏈角度大體了解STM32定時器:

640?wx_fmt=png

STM32定時器中存在着幾種基本的信號: 

  輸入信號、 時鍾信號、 觸發輸入信號、 觸發輸出信號,它們之間相互關聯形成相應的信號鏈,從而衍生出各種定時器的功能。

 

5、STM32定時器功能匯總

(1) 六類功能單元

  【時基、從模式控制、輸入、輸出、捕捉比較、觸發輸出】 

(2)四類信號

  【時鍾信號、外部輸入信號、觸發輸入信號、觸發輸出信號】

(3) 四類事件

  【更新事件、捕捉、 比較事件、觸發事件】

(4)一大特性

  【影子寄存器的預裝載特性】

 

這上面的一些內容掌握了,對定時器基本就沒多大問題了,資料中也有詳細說明。

6、案例:定時器一使能就進中斷的問題

問題描述: TIMER初始化階段, 經常有人反饋一使能更新中斷就就進中斷服務程序?給開發帶來些困擾,原因可能是什么?如何解決?

  因為在定時器的初始化代碼里有軟件更新操作觸發了更新事件,並置位了更新中斷標志,當使能更新中斷時就立刻進入更新中斷服務程序。

  在STM32標准庫里的TIM_TimeBaseInit( )函數里都有這句代碼:

TIMx->EGR = TIM_PSCReloadMode_Immediate;

• 在Cube庫里的HAL_TIM_Base_Init( )函數里的 函數有這句代碼:

TIMx->EGR = TIM_EGR_UG;

 

 

顯然,這兩行代碼使用到了前面提到的軟件更新操作,觸發了更新事件,置位更新中斷標志。所以我們在使能定時器更新中斷之前,可以先做更新中斷標志的清除操作。

說明:資料中提供了很多案例說明,以及分析,我覺得比較好,方便大家理解。請多理解一下這些案例。

7、時鍾源問題思考

  1、幾種時鍾源?來自何處?

  2、來自TI1fp1與TIF_ED信號差別是什么?

  3、來自TI1/TI2的時鍾是否可以直接像內部時鍾一樣被計數器用來計數?

  4、根據時鍾源的介紹,你了解到了幾種觸發輸入信號?

  5、TI3FP4可以作為通道2的輸入捕捉信號嗎?

  6、TI4FP4可以作為觸發信號嗎?

文本轉自:https://blog.csdn.net/dp29sym41zygndvf/article/details/85815086


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM