AT32定時(shí)器說明
定時(shí)器框架介紹
定時(shí)器由一個(gè)16位的自動裝載計(jì)數(shù)器組成(TMR2和TMR5較為特殊,其自動裝載計(jì)數(shù)器為32位),它由一個(gè)可編程的預(yù)分頻器驅(qū)動。它適合多種用途,包含測量輸入信號的脈沖寬度(輸入捕獲),或者產(chǎn)生輸出波形(輸出比較、PWM、嵌入死區(qū)時(shí)間的互補(bǔ)PWM等)。
使用定時(shí)器預(yù)分頻器和CRM時(shí)鐘控制預(yù)分頻器,可以實(shí)現(xiàn)脈沖寬度和波形周期從幾個(gè)微秒到幾個(gè)毫秒的調(diào)節(jié)。
圖1. 通用定時(shí)器的框圖
定時(shí)器由四個(gè)主要部分組成(見圖1)。第一部分時(shí)鐘單元。此單元提供定時(shí)器的時(shí)鐘驅(qū)動。第二部分時(shí)鐘基單元,此單元提供定時(shí)器計(jì)數(shù)功能。第三部分輸入捕獲,此單元允許輸入信號進(jìn)入定時(shí)器模塊。第四部分輸出比較,此單元將定時(shí)器整合后的PWM輸出。
定時(shí)器一般配置步驟
1) 時(shí)鐘使能。crm_periph_clock_enable(CRM_TMR2_PERIPH_CLOCK, TRUE);
2) 初始化定時(shí)器參數(shù),設(shè)置自動重裝值,分頻系數(shù),計(jì)數(shù)方式等。
在庫函數(shù)中,定時(shí)器的初始化參數(shù)是通過初始化函數(shù)tmr_base_init()及tmr_cnt_dir_set()實(shí)現(xiàn)的:
void tmr_base_init(tmr_type* tmr_x, uint32_t tmr_pr, uint32_t tmr_div);
其中,第一個(gè)參數(shù)是確定是哪個(gè)定時(shí)器,這個(gè)比較容易理解。第二個(gè)參數(shù)tmr_pr是定時(shí)器計(jì)數(shù)的周期值。第二個(gè)參數(shù)tmr_div是定時(shí)器的分頻系數(shù)。
void tmr_cnt_dir_set(tmr_type *tmr_x, tmr_count_mode_type tmr_cnt_dir);
其中,第一個(gè)參數(shù)是確定是哪個(gè)定時(shí)器,第二個(gè)參數(shù)tmr_cnt_dir為定時(shí)器的計(jì)數(shù)模式(向上,向下,中央對齊)。特別地,增強(qiáng)模式是TMR2和TMR5獨(dú)有的功能。tmr_32_bit_function_enable()為增強(qiáng)模式使能(Plus Mode Enable)函數(shù)。開啟TMRx增強(qiáng)模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴(kuò)展為32位。void tmr_32_bit_function_enable(tmr_type *tmr_x, confirm_state new_state);
當(dāng)需要配置時(shí)鐘除頻參數(shù)時(shí)(注意和 TMR_DIV 的區(qū)別,配置濾波、死區(qū)時(shí)間時(shí)需配置該參數(shù)),會使用到tmr_clock_source_div_set()函數(shù);當(dāng)需要配置重復(fù)周期寄存器時(shí)(高級定時(shí)器TMR1/TMR8/TMR15才有),會使用到tmr_repetition_counter_set()函數(shù)。本例程不使用這兩個(gè)函數(shù),僅做簡要介紹。
void tmr_clock_source_div_set(tmr_type *tmr_x, tmr_clock_division_type tmr_clock_div);void tmr_repetition_counter_set(tmr_type *tmr_x, uint8_t tmr_rpr_value);
3) 設(shè)置TMRx_ IDEN允許更新中斷。
void tmr_interrupt_enable(tmr_type *tmr_x, uint32_t tmr_interrupt, confirm_state new_state);這里著重描述參數(shù)tmr_interrupt,它是用來指明我們使能的定時(shí)器中斷的類型,定時(shí)器中斷的類型有很多種,包括更新中斷,觸發(fā)中斷,以及輸入捕獲中斷等等。
4) TMRx中斷優(yōu)先級設(shè)置。
調(diào)用nvic_irq_enable()函數(shù)即可。
5)允許TMRx工作,也就是使能TMRx。
void tmr_counter_enable(tmr_type *tmr_x, confirm_state new_state);
6)編寫中斷服務(wù)函數(shù)。
規(guī)格說明
AT32 PWM高頻測試說明
圖2. 高頻測試原理框圖
測試高頻信號時(shí),將高頻信號輸入作為定時(shí)器TMR2的時(shí)鐘源(如上圖所示),驅(qū)動定時(shí)器TMR2的 Counter計(jì)數(shù),使用另一個(gè)定時(shí)器做時(shí)鐘基準(zhǔn),例如每隔1s,獲取TMR2的Counter變化值,則TMR2的變化值即為高頻信號的頻率值。
使用兩個(gè)定時(shí)器,其中一個(gè)定時(shí)器為TMR2(這里選取TMR2的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強(qiáng)模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴(kuò)展為32位),測試高頻時(shí),有利于Counter計(jì)數(shù),不容易產(chǎn)生溢出。這樣做的好處在于,既可以測試高頻信號:最高50MHz(受限于I/O口的最高頻率),且沒有頻繁產(chǎn)生中斷,代碼也有冗余,去處理客戶任務(wù)。
使用此方法測試的頻率范圍在:50MHz到1Hz(TMR2的工作頻率為240MHz)。
注意:增強(qiáng)模式是TMR2和TMR5獨(dú)有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時(shí),測試頻率會受限。
AT32 PWM低頻測試說明
圖3. 低頻測試原理框圖
測試低頻信號時(shí),將低頻信號輸入作為定時(shí)器TMR2的捕獲輸入(如上圖所示),觸發(fā)TMR2的輸入捕獲中斷,利用TMR2工作時(shí)鐘除以兩次輸入捕獲之間Counter變化值,即可得到低頻信號頻率值。
這里定時(shí)器為TMR2(這里選取TMR2的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強(qiáng)模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴(kuò)展為32位),有利于低頻測試。
使用此方法測試的最低頻率為:56mHz。(TMR2的工作頻率在240MHz)。
注意:增強(qiáng)模式是TMR2和TMR5獨(dú)有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時(shí),測試頻率會受限。
AT32 PWM占空比測試說明
圖4. 占空比測試原理框圖
測試PWM占空比時(shí),利用門控模式(Hang Mode)方式來測量(如上圖所示),將輸入信號同時(shí)作為兩個(gè)定時(shí)器的輸入信號,利用輸入信號來控制定時(shí)器的Counter計(jì)數(shù)。一個(gè)定時(shí)器在輸入信號的高電平階段計(jì)數(shù),另一個(gè)定時(shí)器在輸入信號的低電平階段計(jì)數(shù),使用第三個(gè)定時(shí)器作為時(shí)間基準(zhǔn),例如產(chǎn)生1s的中斷,在中斷內(nèi),獲取這段時(shí)間內(nèi),兩定時(shí)器Counter計(jì)數(shù)值,將兩值做比值即可獲取當(dāng)前的PWM占空比。
這里定時(shí)器為TMR2和TMR5(這里選取TMR2、TMR5的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強(qiáng)模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴(kuò)展為32位),有利于測試。
這樣做的好處在于,可以測量較高頻率的占空比值,例如10MHz內(nèi),誤差在1%以內(nèi)。且沒有頻繁產(chǎn)生中斷,代碼也有冗余,去處理客戶任務(wù)。
注意:增強(qiáng)模式是TMR2和TMR5獨(dú)有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時(shí),測試頻率會受限。
PWM Test快速使用方法
硬件資源
1) AT-START-F403A實(shí)驗(yàn)板圖5. AT-START-F403A實(shí)驗(yàn)板
注意:該Demo是基于AT32F403A的硬件條件,若使用者需要在AT32其他型號上使用,請修改相應(yīng)配置即可。
pwm input test demo使用
- 打開pwm input test project源程序,其中,在at32f403a_407_clock.h里面有三個(gè)宏定義:
分別用于測試高頻信號,低頻信號,PWM占空比,打開需要測試的宏【注意:每次只開一個(gè)宏】。
打開pwm output源程序,其中,在at32f403a_407_clock.h中有三個(gè)宏定義:
分別產(chǎn)生高頻信號,低頻信號,PWM占空比用于測試。
AT-START板載的AT-LINK-EZ自帶串口輸出功能,它可以將USART1_TX口PA9輸出至PC。也可使用其他串口工具進(jìn)行測試結(jié)果的輸出。
若測試高頻信號時(shí):
1)打開pwm output源程序宏定義:#define Output_High_Frequency,PA8產(chǎn)生60MHz PWM
(I/O口已超頻工作,可適當(dāng)降低主頻)。編譯下載到實(shí)驗(yàn)板1。
2) 打開pwm input test程序宏定義:#define high_frequency_test,編譯下載到實(shí)驗(yàn)板2。
3) 將實(shí)驗(yàn)板1的PA8接入到實(shí)驗(yàn)板2的PA0,USART1通過PA9輸出當(dāng)前的PWM頻率信息。
串口打印信息如下:
圖6. 測試高頻信號,串口打印信息
若測試低頻信號時(shí):
1) 打開pwm output源程序宏定義:#define Output_Low_Frequency,PA8產(chǎn)生500mHz PWM。編譯下載到實(shí)驗(yàn)板1。
2) 打開pwm input test程序宏定義:#define low_frequency_test,編譯下載到實(shí)驗(yàn)板2。
3) 將實(shí)驗(yàn)板1的PA8接入到實(shí)驗(yàn)板2的PA0,USART1通過PA9輸出當(dāng)前的PWM頻率信息。
串口打印信息如下(應(yīng)將第一個(gè)數(shù)據(jù)舍棄):
圖7. 測試低頻信號,串口打印信息
若測試PWM占空比時(shí),
1) 打開pwm output源程序宏定義:#define Output_PWM_Duty_Ration_10,PA8產(chǎn)生6MHzPWM,占空比為10%。編譯下載到實(shí)驗(yàn)板1。
2) 打開pwm input test程序宏定義:#define duty_ration_test,編譯下載到實(shí)驗(yàn)板2。
3) 將實(shí)驗(yàn)板1的PA8接入到實(shí)驗(yàn)板2的PA0,USART1通過PA9輸出當(dāng)前的PWM占空比信息。
串口打印信息如下:圖8. 測試 PWM 占空比,串口打印信息關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創(chuàng)新趨勢的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
17831瀏覽量
360307
發(fā)布評論請先 登錄
MCU定時(shí)器/計(jì)數(shù)器
首日速遞 | 雅特力閃耀2025慕尼黑上海電子展,全方位展現(xiàn)智能“芯”實(shí)力

雅特力AT32 OTGHS應(yīng)用筆記

雅特力AT32 Workbench煥“芯”升級!引入Middleware助力開發(fā)高效提速

高級定時(shí)器PWM輸入模式的配置方法

雅特力發(fā)布高性能電機(jī)控制專用MCU
STM32轉(zhuǎn)AT32代碼轉(zhuǎn)換

使用MSP430高分辨率定時(shí)器的PWM DAC

AT32講堂088 | 雅特力AT32F402/F405時(shí)鐘配置

AT32講堂087 | 雅特力AT32 IDE快速入門指南

雅特力AT32 MCU的隨機(jī)數(shù)生成

AT32講堂085 | 雅特力AT32 MCU HICK時(shí)鐘校準(zhǔn)

雅特力電機(jī)應(yīng)用快速入門指南

定時(shí)器的工作方式介紹
雅特力攜多款AT32 MCU新品與應(yīng)用方案亮相2024慕尼黑上海電子展

評論