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