AT32定時(shí)器概述
定時(shí)器種類(lèi)有基本定時(shí)器、通用定時(shí)器、高級(jí)控制定時(shí)器,以AT32F435xx舉例,下表為各種類(lèi)型定時(shí)器的功能總表。本文主要就定時(shí)器溢出中斷進(jìn)行基礎(chǔ)講解和案列解析。表1. 各定時(shí)器功能總表
例 定時(shí)器溢出中斷
功能簡(jiǎn)介
定時(shí)器溢出中斷是定時(shí)器最基礎(chǔ)功能,進(jìn)入中斷的時(shí)間周期可由相關(guān)寄存器配置。
- 定時(shí)器計(jì)數(shù)器值TMRx_CVAL
- 定時(shí)器預(yù)分頻寄存器TMRx_DIV
- 定時(shí)器周期寄存器(TMRx_PR)
定時(shí)器中斷頻率計(jì)算公式如下其中,TMRxCLK雖然來(lái)源于APB1/2時(shí)鐘,但下圖時(shí)鐘架構(gòu)可以看出,檔APB1/2 Divider存在非1除頻時(shí),TMRxCLK會(huì)有x2。例如AHB=240 MHz,APB1/2=120MHz,TMRxCLK的實(shí)際頻率為240 MHz.以向上計(jì)數(shù)模式舉例,TMREN bit使能后,TMRx_CVAL會(huì)開(kāi)始進(jìn)行累加1,直到其值等于TMRx_PR后,OVFIF位會(huì)置起并且定時(shí)器會(huì)觸發(fā)溢出中斷事件,(若溢出中斷有開(kāi)啟,則會(huì)產(chǎn)生溢出中斷),同時(shí)TMRx_CVAL會(huì)再次從0開(kāi)始計(jì)數(shù),周而復(fù)始。圖1. 定時(shí)器時(shí)鐘源架構(gòu)
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\timer_base
軟件設(shè)計(jì)
1) 配置流程
- 編寫(xiě)定時(shí)器溢出中斷函數(shù)的應(yīng)用程序
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 開(kāi)啟定時(shí)器溢出中斷
- 開(kāi)啟NVIC溢出中斷
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
- TMR1_OVF_TMR10_IRQHandler中斷函數(shù)代碼描述
實(shí)驗(yàn)效果
- LED3每1秒翻轉(zhuǎn)一次。
例 PWM輸出
功能簡(jiǎn)介
定時(shí)器的輸出部分由比較器和輸出控制構(gòu)成,用于編程輸出信號(hào)的周期、占空比、極性。高級(jí)定時(shí)器的輸出部分在不同通道上有所不同。
高級(jí)定時(shí)器在通道1到通道3上擁有互補(bǔ)輸出,且配備死區(qū)調(diào)節(jié);通道1到通道4擁有剎車(chē)控制。通用定時(shí)器的輸出部分沒(méi)有上述功能,只配備了4個(gè)通道輸出?;径〞r(shí)器、通用定時(shí)器和高級(jí)定時(shí)器的具體功能差異可查看RM的TMR章節(jié)。
如下圖為高級(jí)定時(shí)器通道1到3輸出部分原理圖:
圖2.高級(jí)定時(shí)器通道1到3輸出部分原理圖圖3. 高級(jí)定時(shí)器通道4輸出部分原理圖
PWM輸出是定時(shí)器最常用的輸出模式,分為PWM模式A和PWM模式B。其差異在于:
PWM模式A:-OWCDIR=0,若TMRx_C1DT>TMRx_CVAL時(shí)設(shè)置C1ORAW為高,否則為低;-OWCDIR=1,若TMRx_C1DT時(shí)設(shè)置C1ORAW為低,否則為高。PWM模式B:-OWCDIR=0,若TMRx_C1DT>TMRx_CVAL時(shí)設(shè)置C1ORAW為低,否則為高;-OWCDIR=1,若TMRx_C1DT時(shí)設(shè)置C1ORAW為高,否則為低。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\7_pwm_output
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸出管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置定時(shí)器輸出通道為PWM模式B
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
- 通過(guò)邏輯分析儀或者示波器可將波形打出來(lái)。
如下圖:圖4. 7路PWM輸出圖中通道1到4輸出頻率相同但占空比不同的波形,互補(bǔ)通道通過(guò)輸出極性的調(diào)節(jié)與其對(duì)應(yīng)的通道輸出相同的波形。
例 PWM輸入捕獲
功能簡(jiǎn)介
定時(shí)器的輸入部分由專(zhuān)門(mén)的捕獲電路實(shí)現(xiàn),可用于對(duì)輸入信號(hào)的濾波、選擇、分頻和輸入捕獲功能;通過(guò)對(duì)捕獲值的計(jì)算,可得到輸入波形的頻率和占空比。
如下圖為輸入部分原理圖:
圖5. 定時(shí)器輸入部分原理圖
輸入模式下,當(dāng)選中的觸發(fā)信號(hào)被檢測(cè)到時(shí),通道寄存器(TMRx_CxDT)會(huì)記錄當(dāng)前計(jì)數(shù)器計(jì)數(shù)值,并將捕獲比較中斷標(biāo)志位(CxIF)置1,若已使能通道中斷(CxIEN)、通道DMA請(qǐng)求(CxDEN)則產(chǎn)生相應(yīng)的中斷和DMA請(qǐng)求。若在CxIF已置1后檢測(cè)到選中的觸發(fā)信號(hào),則將CxOF位置1。
另外,還提供了更加高效的PWM波輸入捕獲功能,可以更方便的計(jì)算出輸入波形的頻率和占空比。此模式的通過(guò)內(nèi)部?jī)蓚€(gè)CxDT寄存器實(shí)現(xiàn),輸入波形通過(guò)定時(shí)器的通道1或者通道2輸入即可。圖6. 定時(shí)器捕獲PWM波原理圖
將定時(shí)器配置成PWM輸入模式后,可通過(guò)C1DT和C2DT的值計(jì)算出對(duì)應(yīng)PWM波形的頻率和占空比:
頻率=TMR_CLK/C1DT占空比=C2DT/C1DT
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\pwm_input
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置定時(shí)器的PWM輸入模式
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
- 中斷函數(shù)代碼描述
實(shí)驗(yàn)效果
例 輸入捕獲
功能簡(jiǎn)介
通過(guò)對(duì)外部信號(hào)的上升沿或者下降沿進(jìn)行捕獲可以實(shí)現(xiàn)對(duì)外部信號(hào)輸入捕獲并計(jì)算頻率的功能。本例程實(shí)現(xiàn)了對(duì)外部信號(hào)進(jìn)行捕獲并通過(guò)串口打印出頻率。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\input_capture
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置定時(shí)器的輸入捕獲功能
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
- 中斷函數(shù)代碼描述
實(shí)驗(yàn)效果
- 從PA7灌入PWM波形;
- 將串口1連接到上位機(jī),然后通過(guò)上位機(jī)串口工具即可看到打印信息。
例 DMA傳輸
功能簡(jiǎn)介
定時(shí)器擁有強(qiáng)大的DMA傳輸能力,基本每個(gè)定時(shí)器都支持DMA請(qǐng)求的產(chǎn)生。這使得應(yīng)用更加靈活。
本實(shí)驗(yàn)將src_buffer[0]、src_buffer[1]和src_buffer[2]數(shù)據(jù)通過(guò)DMA傳輸?shù)絋MR的TMRx_C3DT寄存器。實(shí)現(xiàn)了每個(gè)周期占空比都發(fā)生改變,且占空比在src_buffer[0]、src_buffer[1]和src_buffer[2]的值之間進(jìn)行有序的切換。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\dma
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置DMA通道
- 配置定時(shí)器的溢出事件產(chǎn)生DMA請(qǐng)求
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
從PA10、PB15輸出PWM波形;
例 burst傳輸
功能簡(jiǎn)介
高級(jí)定時(shí)器和通用定時(shí)器除了支持常規(guī)的DMA傳輸功能,還額外支持DMA burst傳輸功能。在配置為burst傳輸后,當(dāng)TMR產(chǎn)生一個(gè)DMA請(qǐng)求可連續(xù)傳輸以TMR地址為起始地址的多筆數(shù)據(jù);傳輸數(shù)據(jù)的起始地址和數(shù)據(jù)量可通過(guò)軟件配置。
如何配置burst傳輸:
1. 配置TMRx_DMACTRL寄存器,此寄存器的bit0到bit4為DMA傳輸?shù)刂菲?,此值決定了DMA傳輸?shù)钠鹗嫉刂?;bit8到bit12為DMA傳輸長(zhǎng)度配置,此值決定了DMA傳輸?shù)臄?shù)據(jù)筆數(shù)。2. 配置DMA通道,此配置流程與常規(guī)DMA通道配置相同;需要注意的是DMA通道的源與目標(biāo)地址寄存器中的一個(gè)必須為T(mén)MRx_DMADT寄存器地址;具體是源還是目標(biāo)就由數(shù)據(jù)傳輸?shù)姆较驔Q定。
本實(shí)驗(yàn)將src_buffer[0]和src_buffer[2]數(shù)據(jù)通過(guò)burst傳輸?shù)絋MR的TMRx_PR和TMRx_C1DT寄存器。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\dma_burst
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置DMA通道和定時(shí)器的burst功能
- 配置DMAMUX
- 開(kāi)啟定時(shí)器計(jì)數(shù)
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
- 從PA8輸出PWM波形;
例 單脈沖輸出
功能簡(jiǎn)介
單脈沖輸出模式是PWM模式的特例,將OCMEN位置1可開(kāi)啟單周期模式,此模式下,僅在當(dāng)前計(jì)數(shù)周期中進(jìn)行比較匹配,完成當(dāng)前計(jì)數(shù)后,TMREN位清0,因此僅輸出一個(gè)脈沖。當(dāng)配置為向上計(jì)數(shù)模式時(shí),需要嚴(yán)格配置CVAL;向下計(jì)數(shù)時(shí),需嚴(yán)格配置CVAL>CxDT。
當(dāng)TMR受到外部觸發(fā)或者軟件使能CNT時(shí),TMR開(kāi)始計(jì)數(shù)并在此次overflow事件時(shí)停止計(jì)數(shù)。此過(guò)程中輸出也會(huì)根據(jù)配置產(chǎn)生波形。
單脈沖輸出原理如下圖:
圖7. 單脈沖輸出原理圖
圖中當(dāng)受到外部觸發(fā)后,TMR開(kāi)始計(jì)數(shù),當(dāng)CVAL等于CxDT時(shí),改變輸出狀態(tài),當(dāng)CVAL溢出時(shí),輸出狀態(tài)再次改變從而達(dá)到輸出一個(gè)單脈沖的目的。
本實(shí)驗(yàn)將TMR4配置為單脈沖模式。TMR4的通道1配置為輸入并充當(dāng)觸發(fā)輸入的源頭,通道2配置為輸出模式,充當(dāng)單脈沖輸出的端口。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\one_cycle
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入、輸出管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置定時(shí)器為向上計(jì)數(shù)方向
- 配置定時(shí)器為單脈沖模式
- 配置通道2為輸出口,并作為T(mén)MR觸發(fā)的觸發(fā)源
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
- PB7輸入管腳,外部給上升沿觸發(fā)即可;
- PB6為輸出管腳,輸出單脈沖波形。
使用邏輯分析儀打出波形如下:
圖8. 單脈沖輸出結(jié)果
例 32位定時(shí)器
功能簡(jiǎn)介
部分定時(shí)器可支持?jǐn)U展為32位定時(shí)器(具體請(qǐng)查看RM)。擴(kuò)展后,不單CVAL寄存器為32位,DIV和CxDT都會(huì)自動(dòng)擴(kuò)展為32位。
使能32位定時(shí)器只需要設(shè)置TMRx_CTRL1寄存器的bit10為1即可。
本實(shí)驗(yàn)將TMR2配置為32位定時(shí)器模式,然后配置為PWM輸出模式使其輸出PWM波形。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\tmr2_32bit
軟件設(shè)計(jì)
1) 配置流程
- 開(kāi)啟定時(shí)器外設(shè)時(shí)鐘
- 配置輸入、輸出管腳
- 使能32位模式
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置通道輸出PWM波形
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
- PA0/1/2/3輸出波形;
圖9. 32位定時(shí)器輸出結(jié)果
例 定時(shí)器同步
功能簡(jiǎn)介
主次定時(shí)器之間可由內(nèi)部連接信號(hào)進(jìn)行同步。主定時(shí)器可由PTOS[2:0]位選擇主定時(shí)器輸出,即同步信息;次定時(shí)器由SMSEL[2:0]位選擇從模式,即次定時(shí)器的工作模式。定時(shí)器從模式有以下幾種:
復(fù)位模式:
此模式下,當(dāng)次定時(shí)器收到一個(gè)同步信號(hào)后,次定時(shí)器復(fù)位計(jì)數(shù)器和預(yù)分頻器,定時(shí)器的 CVAL寄存器變?yōu)?重新開(kāi)始計(jì)數(shù)。若OVFS位為0,將產(chǎn)生一個(gè)溢出事件。圖10. 復(fù)位模式圖
掛起模式:
掛起模式下,計(jì)數(shù)的計(jì)數(shù)和剎車(chē)受選中觸發(fā)輸入信號(hào)控制,當(dāng)觸發(fā)輸入為高電平時(shí)計(jì)數(shù)器開(kāi)始計(jì)數(shù);當(dāng)為低電平時(shí),計(jì)數(shù)器暫停計(jì)數(shù)。圖11. 掛起模式圖
觸發(fā)模式:
觸發(fā)模式下,次定時(shí)器當(dāng)受到外部觸發(fā)信號(hào)后,自動(dòng)啟動(dòng)定時(shí)器,即硬件置TMR_EN為1。所以在觸發(fā)模式下,初始化定時(shí)器后軟件不需要使能定時(shí)器。圖12. 掛起模式圖本例程實(shí)現(xiàn)了TMR2同步TMR3和TMR4。主定時(shí)器TMR2選擇溢出事件作為同步信號(hào)輸出,次定時(shí)器TMR3和TMR4選擇掛起模式作為從模式。
資源準(zhǔn)備
1) 硬件環(huán)境對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_xxx\examples\tmr\parallel_synchro
軟件設(shè)計(jì)
1) 配置流程
- 定時(shí)器外設(shè)時(shí)鐘
- 配置輸入、輸出管腳
- 配置定時(shí)器TMRx_DIV寄存器和TMRx_PR寄存器
- 配置主模式和從模式
- 配置PWM輸出模式
- 使能定時(shí)器
2) 代碼介紹
- main函數(shù)代碼描述
實(shí)驗(yàn)效果
- 通過(guò)PA6/PA0/PB6輸出波形,可使用邏輯分析儀抓取波形查看。
關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動(dòng)全球市場(chǎng)32位微控制器(MCU)創(chuàng)新趨勢(shì)的芯片設(shè)計(jì)公司,專(zhuān)注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級(jí)別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無(wú)人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競(jìng)周邊市場(chǎng)、斷路器、ADAS、T-BOX、數(shù)字電源、電動(dòng)工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349922
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論