0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用雅特力AT32 MCU定時器進(jìn)行PWM輸入測試

jf_pJlTbmA9 ? 來源:AT32 MCU 雅特力科技 ? 作者:AT32 MCU 雅特力科技 ? 2023-10-27 14:20 ? 次閱讀

AT32定時器說明

定時器框架介紹

定時器由一個16位的自動裝載計數(shù)器組成(TMR2和TMR5較為特殊,其自動裝載計數(shù)器為32位),它由一個可編程的預(yù)分頻器驅(qū)動。它適合多種用途,包含測量輸入信號的脈沖寬度(輸入捕獲),或者產(chǎn)生輸出波形(輸出比較、PWM、嵌入死區(qū)時間的互補(bǔ)PWM等)。

使用定時器預(yù)分頻器和CRM時鐘控制預(yù)分頻器,可以實現(xiàn)脈沖寬度和波形周期從幾個微秒到幾個毫秒的調(diào)節(jié)。

wKgaomUD5J2AfbVOAAHVdlujXF4361.png 圖1. 通用定時器的框圖

定時器由四個主要部分組成(見圖1)。第一部分時鐘單元。此單元提供定時器的時鐘驅(qū)動。第二部分時鐘基單元,此單元提供定時器計數(shù)功能。第三部分輸入捕獲,此單元允許輸入信號進(jìn)入定時器模塊。第四部分輸出比較,此單元將定時器整合后的PWM輸出。

定時器一般配置步驟

1) 時鐘使能。

crm_periph_clock_enable(CRM_TMR2_PERIPH_CLOCK, TRUE);
2) 初始化定時器參數(shù),設(shè)置自動重裝值,分頻系數(shù),計數(shù)方式等。

在庫函數(shù)中,定時器的初始化參數(shù)是通過初始化函數(shù)tmr_base_init()及tmr_cnt_dir_set()實現(xiàn)的:
void tmr_base_init(tmr_type* tmr_x, uint32_t tmr_pr, uint32_t tmr_div);

其中,第一個參數(shù)是確定是哪個定時器,這個比較容易理解。第二個參數(shù)tmr_pr是定時器計數(shù)的周期值。第二個參數(shù)tmr_div是定時器的分頻系數(shù)。
void tmr_cnt_dir_set(tmr_type *tmr_x, tmr_count_mode_type tmr_cnt_dir);

其中,第一個參數(shù)是確定是哪個定時器,第二個參數(shù)tmr_cnt_dir為定時器的計數(shù)模式(向上,向下,中央對齊)。

特別地,增強(qiáng)模式是TMR2和TMR5獨有的功能。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ù)時(注意和 TMR_DIV 的區(qū)別,配置濾波、死區(qū)時間時需配置該參數(shù)),會使用到tmr_clock_source_div_set()函數(shù);當(dāng)需要配置重復(fù)周期寄存器時(高級定時器TMR1/TMR8/TMR15才有),會使用到tmr_repetition_counter_set()函數(shù)。本例程不使用這兩個函數(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,它是用來指明我們使能的定時器中斷的類型,定時器中斷的類型有很多種,包括更新中斷,觸發(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高頻測試說明

wKgZomUD5J-AbCtPAAHZprjcf1g957.png 圖2. 高頻測試原理框圖

測試高頻信號時,將高頻信號輸入作為定時器TMR2的時鐘源(如上圖所示),驅(qū)動定時器TMR2的 Counter計數(shù),使用另一個定時器做時鐘基準(zhǔn),例如每隔1s,獲取TMR2的Counter變化值,則TMR2的變化值即為高頻信號的頻率值。

使用兩個定時器,其中一個定時器為TMR2(這里選取TMR2的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強(qiáng)模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴(kuò)展為32位),測試高頻時,有利于Counter計數(shù),不容易產(chǎn)生溢出。這樣做的好處在于,既可以測試高頻信號:最高50MHz(受限于I/O口的最高頻率),且沒有頻繁產(chǎn)生中斷,代碼也有冗余,去處理客戶任務(wù)。

使用此方法測試的頻率范圍在:50MHz到1Hz(TMR2的工作頻率為240MHz)。

注意:增強(qiáng)模式是TMR2和TMR5獨有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時,測試頻率會受限。

AT32 PWM低頻測試說明

wKgaomUD5KOAW64oAAG4lGf0r_Q982.png 圖3. 低頻測試原理框圖

測試低頻信號時,將低頻信號輸入作為定時器TMR2的捕獲輸入(如上圖所示),觸發(fā)TMR2的輸入捕獲中斷,利用TMR2工作時鐘除以兩次輸入捕獲之間Counter變化值,即可得到低頻信號頻率值。

這里定時器為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獨有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時,測試頻率會受限。

AT32 PWM占空比測試說明

wKgZomUD5KSAQwxUAAGDBJEjLRk901.png 圖4. 占空比測試原理框圖

測試PWM占空比時,利用門控模式(Hang Mode)方式來測量(如上圖所示),將輸入信號同時作為兩個定時器的輸入信號,利用輸入信號來控制定時器的Counter計數(shù)。一個定時器在輸入信號的高電平階段計數(shù),另一個定時器在輸入信號的低電平階段計數(shù),使用第三個定時器作為時間基準(zhǔn),例如產(chǎn)生1s的中斷,在中斷內(nèi),獲取這段時間內(nèi),兩定時器Counter計數(shù)值,將兩值做比值即可獲取當(dāng)前的PWM占空比。

這里定時器為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獨有的功能,使用不支持增強(qiáng)模式的其他TMR,或使用不含有增強(qiáng)模式TMR的AT32時,測試頻率會受限。

PWM Test快速使用方法

硬件資源

1) AT-START-F403A實驗板

wKgaomUD5KeABL8sAAhCZiozhAI326.png 圖5. AT-START-F403A實驗板

注意:該Demo是基于AT32F403A的硬件條件,若使用者需要在AT32其他型號上使用,請修改相應(yīng)配置即可。

pwm input test demo使用

打開pwm input test project源程序,其中,在at32f403a_407_clock.h里面有三個宏定義:

wKgaomUD5KmATBcAAABDtIOQLts397.png

分別用于測試高頻信號,低頻信號,PWM占空比,打開需要測試的宏【注意:每次只開一個宏】。

打開pwm output源程序,其中,在at32f403a_407_clock.h中有三個宏定義:

wKgZomUD5KqAHYwnAABWgRU8D54336.png

分別產(chǎn)生高頻信號,低頻信號,PWM占空比用于測試。

AT-START板載的AT-LINK-EZ自帶串口輸出功能,它可以將USART1_TX口PA9輸出至PC。也可使用其他串口工具進(jìn)行測試結(jié)果的輸出。

若測試高頻信號時:

1) 打開pwm output源程序宏定義:#define Output_High_Frequency,PA8產(chǎn)生60MHz PWM

(I/O口已超頻工作,可適當(dāng)降低主頻)。編譯下載到實驗板1。

2) 打開pwm input test程序宏定義:#define high_frequency_test,編譯下載到實驗板2。

3) 將實驗板1的PA8接入到實驗板2的PA0,USART1通過PA9輸出當(dāng)前的PWM頻率信息。

串口打印信息如下:

wKgaomUD5KyAH3udAAFA7vGvahw640.png 圖6. 測試高頻信號,串口打印信息

若測試低頻信號時:

1) 打開pwm output源程序宏定義:#define Output_Low_Frequency,PA8產(chǎn)生500mHz PWM。編譯下載到實驗板1。

2) 打開pwm input test程序宏定義:#define low_frequency_test,編譯下載到實驗板2。

3) 將實驗板1的PA8接入到實驗板2的PA0,USART1通過PA9輸出當(dāng)前的PWM頻率信息。

串口打印信息如下(應(yīng)將第一個數(shù)據(jù)舍棄):

wKgZomUD5LCAE4FIAAFcxP1pkrU478.png 圖7. 測試低頻信號,串口打印信息

若測試PWM占空比時,

1) 打開pwm output源程序宏定義:#define Output_PWM_Duty_Ration_10,PA8產(chǎn)生6MHz PWM,占空比為10%。編譯下載到實驗板1。

2) 打開pwm input test程序宏定義:#define duty_ration_test,編譯下載到實驗板2。

3) 將實驗板1的PA8接入到實驗板2的PA0,USART1通過PA9輸出當(dāng)前的PWM占空比信息。

串口打印信息如下:

wKgZomUD5LGAADGfAAEiiPxfArg063.png 圖8. 測試 PWM 占空比,串口打印信息

來源:AT32 MCU 雅特力科技
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17149

    瀏覽量

    351224
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    5303

    瀏覽量

    126665
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5186

    瀏覽量

    213971
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3248

    瀏覽量

    114832
收藏 人收藏

    評論

    相關(guān)推薦

    AT32 MCU定時器入門指南

    定時器種類有基本定時器、通用定時器、高級控制定時器,以AT32F435xx舉例,下表為各種類型定時器的功能總表。本文主要就
    發(fā)表于 11-01 10:26 ?1923次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b><b class='flag-5'>定時器</b>入門指南

    FAQ0090 AT32F4xx系列獨立PWM輸出數(shù)量

    FAQ0090 AT32F4xx系列獨立PWM輸出數(shù)量Questions: AT32F4xx 系列不同封裝型號可以輸出最多獨立 PWM
    發(fā)表于 05-11 19:44

    如何使用AT32定時器進(jìn)行PWM輸入測試

    AT32 PWM Input Test介紹了如何使用AT32 定時器進(jìn)行PWM
    發(fā)表于 10-24 07:28

    AT32 MCU定時器入門指南

    AT32 MCU 定時器入門指南主要就定時器溢出中斷進(jìn)行基礎(chǔ)講解和案列解析。
    發(fā)表于 10-25 07:24

    AT32 MCU QSPI應(yīng)用說明

    AT32 MCU QSPI Application Note主要介紹以下幾部分內(nèi)容:1. 基于提供的V2.x.x 的BSP 板級支持包
    發(fā)表于 10-25 06:18

    攜高效能AT32 MCU“芯”動亮相ICCAD 2020

    高峰論壇,獲得了業(yè)界人士、廣大客戶及眾多媒體的廣泛關(guān)注。 (供圖,下同) 在同期舉辦的IP 與 IC 設(shè)計專題論壇上,
    的頭像 發(fā)表于 12-16 17:12 ?2065次閱讀

    攜高性能AT32 MCU精彩亮相全球MCU生態(tài)發(fā)展大會

    技術(shù)、邊緣AI、新興應(yīng)用和生態(tài)發(fā)展等熱門議題。 業(yè)務(wù)處長陳佳延在大會發(fā)表了題為“
    的頭像 發(fā)表于 08-30 10:04 ?4526次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生態(tài)發(fā)展大會

    AT32 SPI

    AT32 SPI 科技AT32F415系
    發(fā)表于 03-30 10:44 ?495次閱讀

    攜高性能AT32 MCU精彩亮相D Forum 2021 微控制論壇

    AT32高效能MCU平臺–持續(xù)布局多元化應(yīng)用市場”的主題演講。產(chǎn)品與行銷處長杜立博先生在演講中首先介紹了公司近幾年來取得的成績,
    的頭像 發(fā)表于 02-24 09:33 ?730次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相D Forum 2021 微控制<b class='flag-5'>器</b>論壇

    攜高性能AT32 MCU精彩亮相全球MCU生態(tài)發(fā)展大會

    技術(shù)、邊緣AI、新興應(yīng)用和生態(tài)發(fā)展等熱門議題。業(yè)務(wù)處長陳佳延在大會發(fā)表了題為“AT3
    的頭像 發(fā)表于 02-24 09:31 ?573次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>攜高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生態(tài)發(fā)展大會

    AT32講堂011 | 如何使用AT32 MCU定時器進(jìn)行PWM輸入測試

    AT32定時器說明定時器框架介紹定時器由一個16位的自動裝載計數(shù)組成(TMR2和TMR5較為特殊,其自動裝載計數(shù)
    的頭像 發(fā)表于 07-02 15:03 ?4161次閱讀
    <b class='flag-5'>AT32</b>講堂011 | 如何使用<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b><b class='flag-5'>定時器</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>PWM</b><b class='flag-5'>輸入</b><b class='flag-5'>測試</b>

    AT32講堂036 | AT32 MCU定時器入門指南

    AT32定時器概述定時器種類有基本定時器、通用定時器、高級控制定時器,以AT32F435xx舉例
    的頭像 發(fā)表于 11-02 14:56 ?5162次閱讀
    <b class='flag-5'>AT32</b>講堂036 | <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b><b class='flag-5'>定時器</b>入門指南

    AT32 MCU實現(xiàn)高效電機(jī)驅(qū)動控制與應(yīng)用

    發(fā)展。受邀出席此次會議,產(chǎn)品市場總監(jiān)林金海發(fā)表了題為“AT32
    的頭像 發(fā)表于 11-17 08:15 ?841次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>實現(xiàn)高效電機(jī)驅(qū)動控制與應(yīng)用

    AT32 定時器配置中pr和div的作用

    AT32定時器是51系列單片機(jī)中的一種定時器,可以實現(xiàn)多種定時功能。在AT32定時器中,pr和d
    的頭像 發(fā)表于 01-08 10:12 ?1321次閱讀

    AT32 MCU與SEGGER攜手合作,開發(fā)量產(chǎn)事半功倍

    近日,與SEGGER共同宣布J-Link仿真調(diào)試與Flasher在線燒錄全面支持AT32
    的頭像 發(fā)表于 02-23 10:27 ?422次閱讀