TIMx簡介
- 可編程預(yù)分頻驅(qū)動(dòng)
- 16位
- 自動(dòng)裝載計(jì)數(shù)器
- 用于
- 輸入:測試脈沖寬度
- 輸出:產(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è)置檢測的通道
- 選擇濾波器帶寬
- 上升沿極性
- 選擇定時(shí)器時(shí)鐘模式
- 選擇觸發(fā)輸入源
- 啟動(dòng)定時(shí)器
ETR模式時(shí)蹬刷,設(shè)置濾波,分頻频丘,檢測沿和開啟模式和定時(shí)器即可办成,基本同TIX
- 內(nèi)部觸發(fā)IIRx,可以將兩個(gè)定時(shí)器進(jìn)行聯(lián)動(dòng)
捕獲和比較通道
- 包括比較寄存器
- 輸入為數(shù)字濾波椎镣,多路復(fù)用和預(yù)分頻器
- 輸出為比較器和輸出控制
輸入捕獲模式
- 捕獲的概念一定要搞懂:捕獲模式下诈火,當(dāng)檢測到某種邊沿的信號(hào)時(shí)兽赁,計(jì)數(shù)器的當(dāng)前值被鎖存到CCR中状答,SR置位,產(chǎn)生中斷或者DMA操作刀崖,這樣的功能可以用來測試PWM的寬度惊科。
- 編程步驟如下:
- 選擇輸入端
- 配置濾波器的帶寬
- 設(shè)置有效邊沿
- 設(shè)置預(yù)分頻
- 允許捕獲寄存器操作
- 允許中斷
PWM輸入模式
-
這個(gè)是輸入捕獲模式的一個(gè)特例,比如我們要測試PWM的占空比亮钦,CCR1用于保存周期馆截,CCR2保存高電平事件,如下圖:
- 操作如下:
- 設(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)
PWM模式
比如要輸出周期為8宿接,高電平占3的PWM輸出波形赘淮,則ARR為8,而CCRX為3睦霎,
- ARR決定頻率
- CCRx決定占空比
-
同樣可以分為向上對(duì)齊梢卸,向下對(duì)齊和中央對(duì)齊的方式,下面是中央對(duì)齊方式的輸出
單脈沖模式
外部引腳接收到一個(gè)脈沖副女,比如按鍵蛤高,我們需要延時(shí)TDELAY以后,產(chǎn)生一個(gè)脈寬為TPULSE的脈沖碑幅。其中延時(shí)由CCR1來決定襟齿,脈沖由ARR-CCR1來決定.
在外部事件時(shí)清除OCXREF
這種方式下可以用于做電流控制,正常比較輸出模式下枕赵,計(jì)數(shù)超過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è)置濾波器
- 通過兩個(gè)輸入的順序,確定方向酵颁,這個(gè)方向值實(shí)時(shí)檢測嫉你,相當(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下兜叨,這樣就連接起來了
最后啟動(dòng)兩個(gè)定時(shí)器
- 使能從定時(shí)器
同樣設(shè)置定時(shí)器1為主模式
設(shè)置定時(shí)器1的OC1REF波形穿扳,輸出比較
配置定時(shí)器2的觸發(fā)
定時(shí)器2為門控模式,也就是說国旷,定時(shí)器1溢出以后矛物,才控制定時(shí)器2開始計(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í)器