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

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

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

一個(gè)通道如何捕獲PWM的頻率和占空比?

撞上電子 ? 2023-12-30 08:00 ? 次閱讀

一,前言

正常情況是雙通道捕獲PWM波,這種方法簡(jiǎn)單且準(zhǔn)確,但是它占用的資源太多了,因?yàn)樗褂?a href="http://srfitnesspt.com/tags/定時(shí)器/" target="_blank">定時(shí)器的兩個(gè)通道,且這兩個(gè)通道映射在一個(gè)通道上,同時(shí)配置一路捕獲為觸發(fā)定時(shí)器復(fù)位,所以只能使用2個(gè)通道來(lái)捕獲。雖然也實(shí)現(xiàn)了捕獲 PWM 的功能,但是代價(jià)也太大了,且很難同時(shí)捕獲多個(gè) PWM ,那有沒(méi)有更好的方法呢?本文介紹了另一種捕獲 PWM 的方法,只使用任何一路定時(shí)器的輸入捕獲,就可以測(cè) PWM 的頻率和占空比。


二、捕獲PWM原理

8045ae62-a6a6-11ee-9ee2-92fbcf53809c.png

雙通道就是上圖的原理,利用兩路輸入捕獲上升沿和下降沿,就能很簡(jiǎn)單的測(cè)出 PWM 頻率和占空比。

8049acec-a6a6-11ee-9ee2-92fbcf53809c.png

分析上圖,最開(kāi)始捕獲上升沿,在上升沿到來(lái)后開(kāi)始捕獲,然后轉(zhuǎn)為捕獲下降沿,捕獲接下來(lái)的兩個(gè)下降沿,依據(jù)兩個(gè)下降沿之間計(jì)數(shù)的差值即可計(jì)算出PWM的總脈寬,從而計(jì)算出PWM頻率,然后由第一個(gè)下降沿的計(jì)數(shù)值可以計(jì)算得出PWM高電平的脈寬,即可計(jì)算出PWM的占空比。有的人可能會(huì)問(wèn),那我為什么不可以以上升沿開(kāi)始捕獲,然后連續(xù)捕獲下降沿和下一個(gè)上升沿呢?理論上這樣是絕對(duì)沒(méi)問(wèn)題的,但是你想過(guò)沒(méi)有,既然可以這樣,那么 《STM32參考手冊(cè)》上為什么要用兩路輸入捕獲來(lái)測(cè)PWM?問(wèn)題就在于 PWM的占空比以及頻率。當(dāng)PWM頻率很快的時(shí)候,上升沿和下降沿切換的速度很快,而用一路輸入捕獲在很短的時(shí)間內(nèi)切換捕獲上升沿以及下降沿,很可能導(dǎo)致上升沿或者下降沿沒(méi)捕捉到的情況。就比如PWM高電平的時(shí)間很短,你剛捕獲到上升沿,然后切換捕捉下降沿,結(jié)果PWM的下降沿已經(jīng)過(guò)去了。使用我的方法測(cè)PWM波的時(shí)候,從圖中可以看到,至少兩個(gè)下降沿的捕獲是不會(huì)有問(wèn)題的,也就是說(shuō),PWM頻率的測(cè)量是不會(huì)出錯(cuò)的。而在從捕獲上升沿到切換捕獲下降沿的時(shí)候,上述捕獲不到的問(wèn)題依然會(huì)發(fā)生,那為什么我的方法就可以而其他方法就不行呢。原因就在于,上面已經(jīng)提到過(guò),我的方法PWM脈寬測(cè)量是沒(méi)問(wèn)題的,那么我就可以比較第一個(gè)下降沿時(shí)的計(jì)數(shù)值CNT1和CNT2(PWM脈寬的計(jì)數(shù)值),如果CNT1大,那表示遺漏了一個(gè)下降沿,那么高電平的計(jì)數(shù)值為CNT1-CNT2,反之高電平的計(jì)數(shù)值為CNT1。

805262ce-a6a6-11ee-9ee2-92fbcf53809c.png

一路輸入捕獲的配置比兩路的配置簡(jiǎn)單,就是普通的輸入捕獲。具體的代碼這里就不貼出來(lái)了,可以去參考我上一篇文章。這里把關(guān)鍵的捕獲中斷服務(wù)函數(shù)貼出來(lái):代碼如下:

u8 TIM5CH1_CAPTURE_STA=0; //輸入捕獲狀態(tài)static u16 TIM5CH1_CNTTIME=0;u32 TIM5CH1_CAPTURE_VAL=0; //輸入捕獲值u32 TIM5CH1_CAPTURE_HIGHVAL=0; //定時(shí)器5中斷服務(wù)程序 void TIM5_IRQHandler(void){ if(!(TIM5CH1_CAPTURE_STA&0X80))//還未成功捕獲{if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET){if(TIM5CH1_CAPTURE_STA&0X40)//已經(jīng)捕獲到高電平了{(lán)TIM5CH1_CAPTURE_VAL+=65536;}TIM_ClearITPendingBit(TIM5, TIM_IT_Update); //清除中斷標(biāo)志位}if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕獲1發(fā)生捕獲事件{if(TIM5CH1_CAPTURE_STA&0x20) //捕獲到第二個(gè)下降沿{TIM5CH1_CAPTURE_STA|=0X80;TIM5CH1_CAPTURE_VAL+=TIM5->CCR1-TIM5CH1_CNTTIME-TIM5CH1_CAPTURE_HIGHVAL;if(TIM5CH1_CAPTURE_HIGHVAL>TIM5CH1_CAPTURE_VAL)TIM5CH1_CAPTURE_HIGHVAL-=TIM5CH1_CAPTURE_VAL;else if(TIM5CH1_CAPTURE_HIGHVAL==TIM5CH1_CAPTURE_VAL)TIM5CH1_CAPTURE_HIGHVAL=0;TIM5->CCER &= ~(1<<1); //CC1P=0 設(shè)置為上升沿捕獲}else if(TIM5CH1_CAPTURE_STA&0X40) //捕獲到第一個(gè)下降沿{TIM5CH1_CAPTURE_STA|=0X20; //標(biāo)記成功捕獲到一次下降沿TIM5CH1_CAPTURE_HIGHVAL=TIM5CH1_CAPTURE_VAL+TIM5->CCR1-TIM5CH1_CNTTIME;}else //還未開(kāi)始,第一次捕獲上升沿{TIM5CH1_CNTTIME=TIM5->CCR1;TIM5CH1_CAPTURE_VAL=0;TIM5CH1_CAPTURE_STA|=0X40; //標(biāo)記捕獲到了上升沿TIM5->CCER |= (1<<1); //CC1P=1 設(shè)置為下降沿捕獲}TIM5->SR&=0xfffd;// TIM_ClearITPendingBit(TIM5, TIM_IT_CC1); //清除中斷標(biāo)志位} }elseTIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中斷標(biāo)志位}

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

    關(guān)注

    114

    文章

    5099

    瀏覽量

    212818
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3226

    瀏覽量

    114144
  • 雙通道
    +關(guān)注

    關(guān)注

    5

    文章

    952

    瀏覽量

    33707
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    精確PWM占空比箝位

    電子發(fā)燒友網(wǎng)站提供《精確PWM占空比箝位.pdf》資料免費(fèi)下載
    發(fā)表于 10-22 10:25 ?0次下載
    精確<b class='flag-5'>PWM</b><b class='flag-5'>占空比</b>箝位

    用STM32的個(gè)芯片測(cè)PWM輸入,頻率有的時(shí)候不對(duì)是什么原因造成的?

    2個(gè),即使__HAL_TIM_GetCounter放到前面。 我用的是TIM10和TIM13分別做兩路PWM輸入捕獲,每個(gè)定時(shí)器都是先測(cè)上升沿,之后再測(cè)下降沿,再測(cè)上升沿的方式,來(lái)計(jì)算頻率
    發(fā)表于 09-27 08:21

    pwm頻率對(duì)電機(jī)有什么影響

    的影響: PWM頻率對(duì)電機(jī)轉(zhuǎn)速的影響 PWM頻率是指PWM信號(hào)在
    的頭像 發(fā)表于 08-08 16:12 ?1746次閱讀

    PLC輸出的pwm信號(hào)怎么看頻率

    中高電平時(shí)間與整個(gè)周期時(shí)間的比值。例如,個(gè)占空比為50%的PWM信號(hào)意味著在個(gè)周期內(nèi),高電平
    的頭像 發(fā)表于 08-08 15:32 ?470次閱讀

    PWM載波頻率與電機(jī)的關(guān)系

    技術(shù),通過(guò)將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)來(lái)實(shí)現(xiàn)對(duì)電機(jī)的控制。PWM的基本思想是將個(gè)周期性的模擬信號(hào)轉(zhuǎn)換為個(gè)周期性的數(shù)字信號(hào),數(shù)字信號(hào)的
    的頭像 發(fā)表于 08-08 15:23 ?870次閱讀

    如何創(chuàng)建具有不同占空比(但相同起始相位)的個(gè)或多個(gè)額外的PWM輸出?

    我實(shí)際上只需要個(gè)PWM個(gè)頻率),但有五個(gè)甚至六
    發(fā)表于 07-08 07:09

    文帶你了解PWM原理、頻率占空比

    :T=1/f周期=1/頻率50Hz = 20ms 個(gè)周期如果頻率為50Hz ,也就是說(shuō)個(gè)周期
    發(fā)表于 03-27 14:12

    在使用個(gè)定時(shí)器捕獲兩路PWM頻率時(shí),中斷函數(shù)應(yīng)該如何配置呢?

    在使用個(gè)定時(shí)器捕獲兩路PWM頻率時(shí),中斷函數(shù)應(yīng)該如何配置呢?? 我采用如下的方式去獲取,但得到的PW
    發(fā)表于 03-22 06:39

    tc377調(diào)試pwm輸入捕獲,輸入頻率小于10hz時(shí)輸入占空比就會(huì)跳變的原因?

    我在調(diào)試pwm輸入捕獲遇到個(gè)問(wèn)題,我用的是tc377的板件,當(dāng)輸入頻率小于10hz時(shí)輸入占空比
    發(fā)表于 03-05 06:39

    pwm占空比和電壓的關(guān)系 pid輸出和pwm占空比怎么聯(lián)系

    與電壓之間存在定的關(guān)系。在PWM信號(hào)周期內(nèi),占空比的變化會(huì)導(dǎo)致電平高電平時(shí)長(zhǎng)的變化。當(dāng)占空比較小時(shí),高電平時(shí)長(zhǎng)較短,對(duì)應(yīng)的平均電壓也相對(duì)較低;而當(dāng)
    的頭像 發(fā)表于 02-02 17:17 ?5479次閱讀

    pwm如何控制占空比和周期

    如果使用可編程PWM控制器,可以通過(guò)軟件來(lái)控制占空比和周期。軟件可以直接修改占空比寄存器的值,以控制高電平的持續(xù)時(shí)間,從而改變占空比。還可以修改周期寄存器的值,以改變整個(gè)
    的頭像 發(fā)表于 01-17 15:00 ?4675次閱讀

    占空比信號(hào)和頻率信號(hào)的區(qū)別

    占空比信號(hào)和頻率信號(hào)是電子工程領(lǐng)域中常見(jiàn)的兩種信號(hào)類(lèi)型,它們?cè)谛再|(zhì)和應(yīng)用領(lǐng)域上有著較大的差異。下面將詳細(xì)介紹占空比信號(hào)和頻率信號(hào)的概念、特點(diǎn)以及應(yīng)用。
    的頭像 發(fā)表于 01-05 16:51 ?1996次閱讀

    pwm頻率占空比的計(jì)算公式

    PWM(脈寬調(diào)制)是種常用的控制技術(shù),在電子系統(tǒng)中廣泛應(yīng)用。PWM頻率占空比是其重要參數(shù)之
    的頭像 發(fā)表于 12-28 11:40 ?1.7w次閱讀

    怎么實(shí)現(xiàn)dsp芯片輸出占空比固定的pwm波形

    實(shí)現(xiàn)DSP芯片輸出占空比固定的PWM波形需要以下步驟:定義占空比、設(shè)置計(jì)時(shí)器、計(jì)算周期和持續(xù)時(shí)間、更新占空比、輸出PWM信號(hào)。 第
    的頭像 發(fā)表于 12-26 17:28 ?2183次閱讀

    占空比什么是頻率,什么是周期

    占空比(Duty Cycle)是指個(gè)周期內(nèi),信號(hào)處于高電平的時(shí)間占整個(gè)周期的比例。通常用百分比表示,占空比越高表示信號(hào)處于高電平的時(shí)間越長(zhǎng)。 頻率
    的頭像 發(fā)表于 12-18 14:41 ?3597次閱讀