TIMx簡(jiǎn)介
- 可編程預(yù)分頻驅(qū)動(dòng)
- 16位
- 自動(dòng)裝載計(jì)數(shù)器
- 用于
- 輸入:測(cè)試脈沖寬度
- 輸出:產(chǎn)生輸出波形(輸出比較和PWM)
- RCC預(yù)分頻和定時(shí)器預(yù)分頻,精度:nus級(jí)
- 定時(shí)器完全獨(dú)立
TIMx主要功能
- 通用定時(shí)器包括TIM2 3 4 5
- 16位向上,向下,向上/向下自動(dòng)裝載
- 預(yù)分頻
- 4個(gè)通道:輸入捕獲,輸出比較,PWM生成,單脈沖輸出
- 外部信號(hào)控制定時(shí)器實(shí)現(xiàn)同步
- 中斷:更新,觸發(fā)事件(起停,初始化和外內(nèi)觸發(fā))以及輸入捕獲和輸出比較
- 支持編碼器和霍爾傳感器
- 觸發(fā)輸入可用于電流管理
TIMx功能描述
時(shí)基單元
- 定時(shí)器組成為16位計(jì)數(shù)器和自動(dòng)裝載寄存器
- 可向上,向下和上下雙向計(jì)數(shù)
- 三個(gè)重要寄存器:計(jì)數(shù)器,預(yù)分頻,自動(dòng)裝載
- 更新事件:UEV
- 自動(dòng)裝載寄存器:ARR
- 預(yù)裝載寄存器:PSC
計(jì)數(shù)器模式,一共有三種
向上計(jì)數(shù)模式
- 從0到ARR,產(chǎn)生UEV
- 可以禁止更新,否則ARR的影子寄存器也會(huì)被更新
- 更新時(shí),所有的寄存器都更新
向下計(jì)數(shù)模式
- 基本同上文,從ARR到0
雙向計(jì)數(shù)模式
- 基本同上文,有兩次UEV產(chǎn)生
時(shí)鐘選擇
- 內(nèi)部時(shí)鐘最常用
- 外部時(shí)鐘模式有兩種,TIx和ETR
流程如下:(相當(dāng)于是計(jì)數(shù))- 設(shè)置檢測(cè)的通道
- 選擇濾波器帶寬
- 上升沿極性
- 選擇定時(shí)器時(shí)鐘模式
- 選擇觸發(fā)輸入源
- 啟動(dòng)定時(shí)器
ETR模式時(shí),設(shè)置濾波,分頻,檢測(cè)沿和開(kāi)啟模式和定時(shí)器即可,基本同TIX
- 內(nèi)部觸發(fā)IIRx,可以將兩個(gè)定時(shí)器進(jìn)行聯(lián)動(dòng)
捕獲和比較通道
- 包括比較寄存器
- 輸入為數(shù)字濾波,多路復(fù)用和預(yù)分頻器
- 輸出為比較器和輸出控制
輸入捕獲模式
- 捕獲的概念一定要搞懂:捕獲模式下,當(dāng)檢測(cè)到某種邊沿的信號(hào)時(shí),計(jì)數(shù)器的當(dāng)前值被鎖存到CCR中,SR置位,產(chǎn)生中斷或者DMA操作,這樣的功能可以用來(lái)測(cè)試PWM的寬度。
- 編程步驟如下:
- 選擇輸入端
- 配置濾波器的帶寬
- 設(shè)置有效邊沿
- 設(shè)置預(yù)分頻
- 允許捕獲寄存器操作
- 允許中斷
PWM輸入模式
-
這個(gè)是輸入捕獲模式的一個(gè)特例,比如我們要測(cè)試PWM的占空比,CCR1用于保存周期,CCR2保存高電平事件,如下圖:
3.png - 操作如下:
- 設(shè)置CCR1和CCR2的有效輸入
- 設(shè)置CCR1和CCR2有效極性
- 設(shè)置有效的觸發(fā)信號(hào)
輸出比較模式
- 比較輸出功能用于控制一個(gè)輸出的波形,或者指示一段時(shí)間已經(jīng)到,將計(jì)數(shù)器與比較寄存器進(jìn)行對(duì)比,相同時(shí)輸出到設(shè)置的引腳,輸出的電平同樣可以設(shè)置。
- 設(shè)置中斷位,產(chǎn)生中斷或者DMA操作
- 輸出比較模式的設(shè)置流程如下:
- 選擇時(shí)鐘
- 將數(shù)據(jù)寫入ARR和CCR中
- 如需要,設(shè)置中斷和DMA
- 設(shè)置輸出模式(電平極性)
啟動(dòng)
4.png
PWM模式
比如要輸出周期為8,高電平占3的PWM輸出波形,則ARR為8,而CCRX為3,
- ARR決定頻率
- CCRx決定占空比
-
同樣可以分為向上對(duì)齊,向下對(duì)齊和中央對(duì)齊的方式,下面是中央對(duì)齊方式的輸出
5.png
單脈沖模式
外部引腳接收到一個(gè)脈沖,比如按鍵,我們需要延時(shí)TDELAY以后,產(chǎn)生一個(gè)脈寬為TPULSE的脈沖。其中延時(shí)由CCR1來(lái)決定,脈沖由ARR-CCR1來(lái)決定.
在外部事件時(shí)清除OCXREF
這種方式下可以用于做電流控制,正常比較輸出模式下,計(jì)數(shù)超過(guò)CCRX時(shí),輸出為低電平,如果CCRX固定,則輸出的脈寬是固定的,但如果有外部引腳輸入一個(gè)高電平(電流超出),則直接拉低輸出。
編碼器接口模式
這個(gè)在步進(jìn)電機(jī)上會(huì)有用到,重點(diǎn)關(guān)注一下,圖如下:

- 可以設(shè)置在T1和T2計(jì)數(shù)或者同時(shí)計(jì)數(shù)
- 選擇極性,這里為上升沿計(jì)數(shù),同時(shí)可以設(shè)置濾波器
- 通過(guò)兩個(gè)輸入的順序,確定方向,這個(gè)方向值實(shí)時(shí)檢測(cè),相當(dāng)于兩個(gè)脈沖的順序,為定時(shí)器增加了一個(gè)方向控制的信號(hào),當(dāng)然,定時(shí)器的其他功能都可以正常使用。
- 增量編碼器還有一個(gè)引腳為機(jī)械零點(diǎn),我們可以設(shè)置成為外部中斷,在中斷服務(wù)程序中設(shè)置計(jì)數(shù)器進(jìn)行復(fù)位。
- 編碼器輸出給單片機(jī)建議使用比較器進(jìn)行隔離,以提高抗干擾能力
- 兩個(gè)編碼器輸入事件的間隔信息,我們可以讀取以后,從而轉(zhuǎn)換成機(jī)械的動(dòng)態(tài)信息(速度,加速度,減速度)
定時(shí)器輸入異或功能
略
定時(shí)器和外部觸發(fā)的同步
定時(shí)器和外部信號(hào)組合在一起,有三種模式
- 復(fù)位模式
外部脈沖輸入時(shí),所有的寄存器重新讀取,重新計(jì)時(shí),同時(shí)觸發(fā)標(biāo)志,進(jìn)行中斷和DMA請(qǐng)求。 - 門控模式
只在有外部信號(hào)時(shí)計(jì)數(shù),其他事件計(jì)數(shù)器暫停。 - 觸發(fā)模式
有某個(gè)事件時(shí),使能計(jì)數(shù)器 - 外部時(shí)鐘模式+觸發(fā)模式
時(shí)鐘由外部輸入,同時(shí)用觸發(fā)信號(hào)進(jìn)行控制。
定時(shí)器同步
一個(gè)定時(shí)器處于主模式,對(duì)另外一個(gè)處于從模式的定時(shí)器進(jìn)行復(fù)位,啟動(dòng),停止和提供時(shí)鐘等操作。
- 做為分頻器
配置定時(shí)器1為主模式,每次中斷時(shí)輸出一個(gè)上升沿
上升沿連接到定時(shí)器2,配置定時(shí)器2為從模式
把定時(shí)器2用外部時(shí)鐘模式1下,這樣就連接起來(lái)了
最后啟動(dòng)兩個(gè)定時(shí)器
- 使能從定時(shí)器
同樣設(shè)置定時(shí)器1為主模式
設(shè)置定時(shí)器1的OC1REF波形,輸出比較
配置定時(shí)器2的觸發(fā)
定時(shí)器2為門控模式,也就是說(shuō),定時(shí)器1溢出以后,才控制定時(shí)器2開(kāi)始計(jì)數(shù)
最后啟動(dòng)兩個(gè)定時(shí)器
- 一個(gè)定時(shí)器去啟動(dòng)另一個(gè)定時(shí)器
有點(diǎn)類似于接力棒,一個(gè)定時(shí)器截至以后,另外一個(gè)接著計(jì)數(shù),但是計(jì)數(shù)器1在重新計(jì)數(shù)
4.外部信號(hào)同步啟動(dòng)兩個(gè)定時(shí)器


