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

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

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

AT32講堂011 | 如何使用雅特力AT32 MCU定時器進行PWM輸入測試

雅特力 AT32 MCU ? 2022-07-02 15:03 ? 次閱讀

AT32定時器說明

定時器框架介紹

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

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

圖1. 通用定時器的框圖7fd2059c-f8a2-11ec-a2f4-dac502259ad0.png

定時器由四個主要部分組成(見圖1)。第一部分時鐘單元。此單元提供定時器的時鐘驅(qū)動。第二部分時鐘基單元,此單元提供定時器計數(shù)功能。第三部分輸入捕獲,此單元允許輸入信號進入定時器模塊。第四部分輸出比較,此單元將定時器整合后的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ù)模式(向上,向下,中央對齊)。特別地,增強模式是TMR2和TMR5獨有的功能。tmr_32_bit_function_enable()為增強模式使能(Plus Mode Enable)函數(shù)。開啟TMRx增強模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴展為32位。void tmr_32_bit_function_enable(tmr_type *tmr_x, confirm_state new_state);

當需要配置時鐘除頻參數(shù)時(注意和 TMR_DIV 的區(qū)別,配置濾波、死區(qū)時間時需配置該參數(shù)),會使用到tmr_clock_source_div_set()函數(shù);當需要配置重復(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高頻測試說明

圖2. 高頻測試原理框圖7fe9e8f6-f8a2-11ec-a2f4-dac502259ad0.png

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

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

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

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

AT32 PWM低頻測試說明

圖3. 低頻測試原理框圖800862ae-f8a2-11ec-a2f4-dac502259ad0.png

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

這里定時器為TMR2(這里選取TMR2的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴展為32位),有利于低頻測試。

使用此方法測試的最低頻率為:56mHz。(TMR2的工作頻率在240MHz)。

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

AT32 PWM占空比測試說明

圖4. 占空比測試原理框圖80214698-f8a2-11ec-a2f4-dac502259ad0.png

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

這里定時器為TMR2和TMR5(這里選取TMR2、TMR5的原因在于其可以通過設(shè)置TMRx_CTRL1中的PMEN位,開啟TMRx增強模式,該模式下TMRx_CVAL,TMRx_PR,TMRx_CxDT由16位擴展為32位),有利于測試。

這樣做的好處在于,可以測量較高頻率的占空比值,例如10MHz內(nèi),誤差在1%以內(nèi)。且沒有頻繁產(chǎn)生中斷,代碼也有冗余,去處理客戶任務(wù)。

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

PWM Test快速使用方法

硬件資源

1) AT-START-F403A實驗板圖5. AT-START-F403A實驗板804ea930-f8a2-11ec-a2f4-dac502259ad0.png

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

pwm input test demo使用

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

80a99cfa-f8a2-11ec-a2f4-dac502259ad0.png

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

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

80cac254-f8a2-11ec-a2f4-dac502259ad0.png

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

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

若測試高頻信號時:

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

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

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

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

串口打印信息如下:

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

80e901ce-f8a2-11ec-a2f4-dac502259ad0.png

若測試低頻信號時:

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輸出當前的PWM頻率信息。

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

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

80f53e12-f8a2-11ec-a2f4-dac502259ad0.png

若測試PWM占空比時,

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

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

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

串口打印信息如下:圖8. 測試 PWM 占空比,串口打印信息8118e56a-f8a2-11ec-a2f4-dac502259ad0.png關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創(chuàng)新趨勢的芯片設(shè)計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產(chǎn)品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業(yè)縫紉機、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費、商務(wù)及工控等領(lǐng)域。

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

    關(guān)注

    146

    文章

    16888

    瀏覽量

    349929
收藏 人收藏

    評論

    相關(guān)推薦

    高級定時器PWM輸入模式的配置方法

    我們將向大家介紹高級定時器的另一個常見應(yīng)用——PWM輸入模式。在本節(jié)課中,我們將先圍繞輸入捕獲模式展開,并重點描述PWM
    的頭像 發(fā)表于 11-08 16:48 ?563次閱讀
    高級<b class='flag-5'>定時器</b><b class='flag-5'>PWM</b><b class='flag-5'>輸入</b>模式的配置方法

    AT32講堂088 | AT32F402/F405時鐘配置

    介紹如何結(jié)合提供的V2.x.x的板級支持包(BSP)來配置時鐘。以下介紹時鐘配置的方法主要分兩種:1、以手動編寫代碼調(diào)用BSP中提供的驅(qū)動函數(shù)接口來進行時鐘配
    的頭像 發(fā)表于 09-15 08:08 ?341次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>088 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F402/F405時鐘配置

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

    新建項目新項目向?qū)T32ID提供支持MCU的C語言項目模板,方便用戶快速創(chuàng)建項目。菜單欄【File】>【New】>【CProject】。新建項目向?qū)У膶υ捒驅(qū)⒊霈F(xiàn)。在對
    的頭像 發(fā)表于 09-15 08:08 ?319次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>087 | <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> IDE快速入門指南

    AT32 MCU的隨機數(shù)生成

    概述產(chǎn)品和生態(tài)系統(tǒng)安全性的需求比以往任何時候都更加重要。真隨機數(shù)是所有安全系統(tǒng)的核心,其質(zhì)量會影響設(shè)計的安全性。因此在沒有內(nèi)置硬件TRNG的AT32的微控制系列中,如何提高隨機數(shù)的有效,來符合
    的頭像 發(fā)表于 08-30 12:26 ?412次閱讀
    <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>的隨機數(shù)生成

    AT32講堂085 | AT32 MCU HICK時鐘校準

    簡介AT32系列MCU內(nèi)部都有提供適合運行的內(nèi)部高速時鐘(HICK),其本質(zhì)就是內(nèi)置于芯片的RC振蕩。在25℃下,其典型值頻率8MHz的精度由工廠校準到±1%,在-40到105℃,該內(nèi)部高速時鐘
    的頭像 發(fā)表于 08-30 12:26 ?471次閱讀
    <b class='flag-5'>AT32</b><b class='flag-5'>講堂</b>085 | <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> HICK時鐘校準

    攜多款AT32 MCU新品與應(yīng)用方案亮相2024慕尼黑上海電子展

    7月8日,2024慕尼黑上海電子展electronicaChina在上海新國際博覽中心拉開序幕,作為全球電子行業(yè)的盛會,匯聚了國內(nèi)外眾多優(yōu)質(zhì)電子企業(yè),為業(yè)界呈現(xiàn)一場前所未有的科技盛宴。攜高性能
    的頭像 發(fā)表于 07-09 08:15 ?598次閱讀
    <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>新品與應(yīng)用方案亮相2024慕尼黑上海電子展

    AT32 MCU通過IEC 60730功能安全認證,為家電產(chǎn)品提供安全保障

    ??近日,AT32MCU安全庫順利通過IEC60730功能安全認證,為家電產(chǎn)品提供安全質(zhì)量保證。國際公認的測試、檢驗和認證機構(gòu)SGS為
    的頭像 發(fā)表于 05-20 08:15 ?497次閱讀
    <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>通過IEC 60730功能安全認證,為家電產(chǎn)品提供安全保障

    AT32F423入門使用指南

    初步環(huán)境準備開發(fā)環(huán)境下載地址:
    的頭像 發(fā)表于 05-14 08:15 ?1249次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F423入門使用指南

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

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

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

    近日,與SEGGER共同宣布J-Link仿真調(diào)試與Flasher在線燒錄全面支持AT32MCU
    的頭像 發(fā)表于 02-22 08:13 ?437次閱讀
    <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>與SEGGER攜手合作,開發(fā)量產(chǎn)事半功倍

    AT32F423時鐘配置

    介紹如何結(jié)合提供的V2.x.x的板級支持包(BSP)來配置時鐘。以下介紹時鐘配置的方法主要分兩種:1、以手動編寫代碼調(diào)用BSP中提供的驅(qū)動函數(shù)接口來進行時鐘配
    的頭像 發(fā)表于 02-19 13:26 ?540次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F423時鐘配置

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

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

    AT32WB415時鐘配置

    介紹如何結(jié)合提供的V2.x.x的板級支持包(BSP)來配置時鐘。以下介紹時鐘配置的方法主要分兩種:1、以手動編寫代碼調(diào)用BSP中提供的驅(qū)動函數(shù)接口來進行時鐘配
    的頭像 發(fā)表于 12-20 08:14 ?437次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32WB415時鐘配置

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

    發(fā)展。受邀出席此次會議,產(chǎn)品市場總監(jiān)林金海發(fā)表了題為“AT32
    的頭像 發(fā)表于 11-17 08:15 ?782次閱讀
    <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)高效電機驅(qū)動控制與應(yīng)用

    與您相約2023電機控制先進技術(shù)研討會

    由電子發(fā)燒友主辦的2023電機控制先進技術(shù)研討會將于11月16日在深圳益田威斯汀酒店舉辦。產(chǎn)品市場總監(jiān)林金海將發(fā)表“
    的頭像 發(fā)表于 11-14 08:15 ?543次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>與您相約2023電機控制先進技術(shù)研討會