HK32F103x/C/D/E是航順芯片推出的中大容量的103系列芯片。作為32位MCU常用的外設(shè)Timer是一個通過可編程預(yù)分頻器驅(qū)動的16位自動裝載計(jì)數(shù)器構(gòu)成。它適用于多種場合,包括測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)。使用定時器預(yù)分頻器和RCC 時鐘控制器預(yù)分頻器,脈沖長度和波形周期可以在幾個微秒到幾個毫秒間調(diào)整。每個定時器都是完全獨(dú)立的,沒有互相共享任何資源。
Timer主要功能
通用TIMx(TIM2、TIM3、TIM4、TIM5)定時器功能包括:
1)DAC觸發(fā)功能
2)四路輸入通道都下降沿觸發(fā),和雙沿觸發(fā)功能
3)16位向上、向下、向上/向下自動裝載計(jì)數(shù)器
4)16位可編程(可以實(shí)時修改)預(yù)分頻器,計(jì)數(shù)器時鐘頻率的分頻系數(shù)為1~65536之間的任意數(shù)值
5)4個獨(dú)立通道:輸入捕獲、輸出比較、PWM生成(邊緣或中間對齊模式)、單脈沖模式輸出
6)使用外部信號控制定時器和定時器互連的同步電路
7)如下事件發(fā)生時產(chǎn)生中斷/DMA:
─ 計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā))
─ 觸發(fā)事件(計(jì)數(shù)器啟動、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù))
─ 輸入捕獲
─ 輸出比較
8)支持針對定位的增量(正交)編碼器和霍爾傳感器電路
9)觸發(fā)輸入作為外部時鐘或者按周期的電流管理
Timer 輸入捕獲模式功能描述
在輸入捕獲模式下,當(dāng)檢測到ICx信號上相應(yīng)的邊沿后,計(jì)數(shù)器的當(dāng)前值被鎖存到捕獲/比較寄存器(TIMx_CCRx)中。當(dāng)捕獲事件發(fā)生時,相應(yīng)的CCxIF標(biāo)志(TIMx_SR寄存器)被置’1’,如果使能了中斷或者DMA 操作,則將產(chǎn)生中斷或者DMA 操作。如果捕獲事件發(fā)生時CCxIF標(biāo)志已經(jīng)為高,那么重復(fù)捕獲標(biāo)志CCxOF(TIMx_SR寄存器)被置’1’。寫CCxIF=0可清除CCxIF,或讀取存儲在TIMx_CCRx寄存器中的捕獲數(shù)據(jù)也可清除CCxIF。寫CCxOF=0可清除CCxOF。以下例子說明如何在TI1輸入的上升沿時捕獲計(jì)數(shù)器的值到TIMx_CCR1寄存器中,步驟如下:
選擇有效輸入端:TIMx_CCR1 必須連接到TI1 輸入,所以寫入TIMx_CCR1寄存器中的CC1S=01,只要CC1S不為’00’,通道被配置為輸入,并且TM1_CCR1寄存器變?yōu)橹蛔x。
根據(jù)輸入信號的特點(diǎn),配置輸入濾波器為所需的帶寬(即輸入為TIx 時,輸入濾波器控制位是TIMx_CCMRx寄存器中的ICxF位)。假設(shè)輸入信號在最多5個內(nèi)部時鐘周期的時間內(nèi)抖動,我們須配置濾波器的帶寬長于5個時鐘周期。因此我們可以(以fDTS頻率)連續(xù)采樣8次,以確認(rèn)在TI1上一次真實(shí)的邊沿變換,即在TIMx_CCMR1寄存器中寫入IC1F=0011。
選擇TI1通道的有效轉(zhuǎn)換邊沿,在TIMx_CCER 寄存器中寫入CC1P=0(上升沿)。
配置輸入預(yù)分頻器。在本例中,我們希望捕獲發(fā)生在每一個有效的電平轉(zhuǎn)換時刻,因此預(yù)分頻器被禁止(寫TIMx_CCMR1寄存器的IC1PS=00)。
設(shè)置TIMx_CCER寄存器的CC1E=1,允許捕獲計(jì)數(shù)器的值到捕獲寄存器中。
如果需要,通過設(shè)置TIMx_DIER寄存器中的CC1IE位允許相關(guān)中斷請求,通過設(shè)置TIMx_DIER寄存器中的CC1DE位允許DMA請求。當(dāng)發(fā)生一個輸入捕獲時:
產(chǎn)生有效的電平轉(zhuǎn)換時,計(jì)數(shù)器的值被傳送到TIMx_CCR1寄存器。
CC1IF標(biāo)志被設(shè)置(中斷標(biāo)志)。當(dāng)發(fā)生至少2個連續(xù)的捕獲時,而CC1IF未曾被清除,CC1OF也被置’1’。
如設(shè)置了CC1IE位,則會產(chǎn)生一個中斷。
如設(shè)置了CC1DE位,則還會產(chǎn)生一個DMA請求。
為了處理捕獲溢出,建議在讀出捕獲溢出標(biāo)志之前讀取數(shù)據(jù),這是為了避免丟失在讀出捕獲溢出標(biāo)志之后和讀取數(shù)據(jù)之前可能產(chǎn)生的捕獲溢出信息。
操作Timer輸入捕獲模式上需要注意的地方
用戶在使用HK32F103xC/D/E的Timer輸入捕獲測量正弦波時,頻率計(jì)數(shù)不正確。這問題由于IO設(shè)計(jì)的問題,建議在被測信號整形成為方波輸入,這樣能彌補(bǔ)我們IO口設(shè)計(jì)的問題。或者芯片內(nèi)部使能Timer數(shù)字濾波器,也能滿足輸入捕獲測量正弦波計(jì)數(shù)的問題。
以上有關(guān)寄存器的介紹可以參考我們HK的HK32F103xC/D/E的應(yīng)用手冊。
來源: 航順芯片
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350984 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
航順芯片
+關(guān)注
關(guān)注
1文章
106瀏覽量
22794
發(fā)布評論請先 登錄
相關(guān)推薦
評論