衡阳派盒市场营销有限公司

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

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

3天內不再提示

關于定時器的單脈沖輸出模式應用

茶話MCU ? 來源:cc ? 2019-02-14 15:54 ? 次閱讀

單脈沖輸出模式是定時器比較輸出應用中的一種特殊情況或者特殊應用,是一種特殊的PWM輸出模式。既然這么說,要想了解單脈沖模式話題,我們就有必要先對比較輸出功能,尤其是PWM輸出模式有所了解。

比較輸出【Compare Output】功能:定時器通過對預設的比較值與計數器的值做匹配比較之后,依據比較結果結合相應的輸出模式從而實現各類輸出。如PWM輸出、電平翻轉、單脈沖輸出、強制輸出等。一般來講,STM32的通用定時期和高級定時器都具有輸入捕獲、比較輸出功能,不同的定時器可能通道數量上有差異。

這里提到的比較值就是指放在CCR寄存器中的值,計數器的值當然就是CNT寄存器的值。一般來講,在計數過程中,CNT寄存器的值往往是連續動態變化并呈現周期性,其變化規律跟我們設置的計數器的計數模式有關,比如向上計數模式、向下計數模式或者中心對齊計數模式等。這里的比較結果無非三種情況:

圖[1]

①CCR = CNT ②CCR > CNT ③CCR < CNT

那輸出模式呢?基本的比較輸出模式有3種:【這里是說的基本的,有些STM32系列的定時器輸出模式已做了拓展】

1、強制輸出模式;

2、匹配輸出模式

3、PMW輸出模式

圖[2]

結合上表我們不難看出:

強制輸出模式;無視比較結果,直接根據配置指令輸出相應電平;

匹配輸出模式:只關注CCR=CNT值的時候,做相應電平的輸出;

PWM輸出模式:根據CCR是小于CNT還是CCR不小于CNT的比較結果做不同的輸出;

[各種模式輸出特性細節可以看看上面表格】

比較輸出的大致流程以及幾個術語【OCxREF 、OCx 、輸出極性】

圖[3]

上面提到的輸出信號,其中多次提到有效信號,無效信號,是指比較輸出控制器輸出的信號,我們稱之為中間參考信號,即OcxREF信號。該OCxREF源于輸出模式控制器,并硬件約定高電平為有效信號,低電平為無效信號。它經過極性選擇后,再經輸出控制電路輸出到芯片管腳Ocx端。當極性選擇位CCxP=0時,高電平作為Ocx的有效輸出信號,當CCxP=1時,低電平作為Ocx的有效輸出。 或者說,當極性選擇位CCxP=0時,Ocx輸出與OcxREF信號同相;當CCxP=1時,Ocx輸出與OcxREF信號反相;

下圖是當CCxP=0時 Ocx 與 OcxRef信號的相位情況【二者同相】

圖[4]

下圖是當CCxP=1時 Ocx 與 OcxRef信號的相位情況【二者反相】

圖[5]

也就是說,OCXref信號只是個中間參考信號,并非最終輸出信號。最終輸出端OCX的active state【有效狀態】/inactive state【無效狀態】所對應的電平取決于極性選擇控制位CCxP/CCxNP。

當然,如果是高級定時器的互補輸出,最后的輸出波形形狀除了與極性選擇有關外,輸出波形還跟插入的死區有關。即對于互補輸出時 Ocx =OCxREF + 極性 + 死區

PWM比較輸出模式實現原理及相應波形

前面已經說了,單脈沖輸出模式是一種特殊的PWM輸出模式。這里我們重點看看PWM輸出模式的實現原理及相應輸出特性。

從前面介紹中我們了解到PWM輸出模式可以分兩種,即PMW模式1與模式2,結合不同的計數模式可以實現多種輸出組合。我們不妨以PWM模式1、計數器向上計數、極性選擇高有效【CCxP=0】為例來看看比較輸出過程中輸出PWM波形的實現原理。

圖[6]

上面圖【6】由兩部分組成,上面部分是計數器周期性計數的示意圖。深紅色斜線表示計數器從0開始計數,記到ARR后重裝,再重新計數,這樣循環。下面綠色方波是依據PWM模式1基于某個CCR值經過比較輸出而得到PWM波形。

根據上面介紹,我們知道在PWM輸出模式1的前提下,當計數器的值小于CCR的值時輸出有效電平,即高電平,當計數器值大于或等于CCR的值時輸出無效電平,即低電平。由于計數器計數會發生周期性地溢出和重裝,使得計數器的值可以周期性地循環計數,當CCR的值固定的時候,CNT與CCR的值二者的比較結果也往往呈現出周期性,此時也就輸出規律性、周期性的PWM波形。

不難理解,當我們修改CCR的值,其它不動的時候,PWM輸出波形會相應變化。

圖[7]

圖【7】的波形是在圖【6】的基礎上講CCR值往上調大以后所得到的比較輸出波形。

看到這里,我們不禁會想:既然PWM輸出模式的輸出結果取決于CCR與CNT的比較結果的周期性變化,那么,當我們把CCR的值設置為0或者比ARR的值還大的時候,此時CCR與CNT的比較結果將不再變化,因為這里CNT的值不可能比0還小或比ARR還大。此時,自然就不會有變化的PWM波形輸出,而是輸出固定的電平,具體什么電平取決于CCR與CNT的比較結果與當前所選擇的PWM輸出模式。

不妨用個具體的案例來理解。比如,在PWM模式1的前提下:

當CCR=0時,由于計數器CNT的值永遠不會小于CCR,此時將始終輸出無效電平。

當CCR=ARR+n【N不小于1】時,因CNT的值總小于CCR的值,此時始終輸出有效電平。

上面主要是基于PWM輸出模式1、計數器向上計數模式來理解定時器比較輸出中的PWM輸出原理。至于PWM輸出模式1、計數器向下計數模式或者PWM輸出模式2等其它情形,我們可以結合STM32參考手冊自行分析。

結合上面的分析,我們不難看出,定時器之所以能輸出PWM波形,原因在于定時器的計數器的計數的動態連續性和周期性,具體到這里,從0開始計數到ARR,溢出重裝,再從0開始從新計數,循環往復,導致計數器與CCR的比較結果也具有周期性,從而產生周期性的PWM輸出。

根據定時器時基單元相關介紹,我們知道計數器計數發生溢出后,可以觸發更新事件。對于通用定時器,每次溢出都可以產生更新事件;對于高級定時器,每發生RCR+1次溢出就可以產生更新事件。

如果說,在PWM輸出模式下,當定時器發生溢出產生更新事件時,通過硬件機制令計數器停止計數,既然計數器被停止計數了,計數器【CNT】的值將不再變化,之后的CNT與CCR的比較結果將維持不變,自然也就沒有后續變化的的PWM波形輸出了。這時我們就可以實現單個或幾個PWM脈沖的輸出了。

基于上述原理或應用場景,便衍生出了單脈沖輸出模式。所以,我們說單脈沖輸出模式是一種特殊的PWM輸出模式。

單脈沖輸出模式的實現原理:計數器啟動后,在更新事件來臨之前的時間段內實現一定個數的脈沖輸出,當發生更新事件時計數器停止計數,導致后續不再有變化的PWM波形輸出。輸出的脈沖個數可以一個或幾個。如果是通用計數器就是1個,如果是高級定時器,脈沖個數與RCR數值和計數模式二者有關。

圖[8]

圖【8】是個單脈沖輸出實現的示意圖。定時器工作在從模式,在外部觸發信號【TI2】的作用下開啟計數器,輸出一個脈沖后發生更新事件并停止計數。

關于單脈沖輸出模式應用的提醒:

1、使用單脈沖輸出模式時,計數器的使能啟動可以通過軟件使能啟動,也可以將定時器配置在觸發從模式經過信號觸發啟動.

2、單脈沖輸出模式是PWM輸出模式的特例,利用該模式并不一定只是輸出單個脈沖。如果是通用定時器,每次使能計數器后只輸出一個PWM脈沖,如果是高級定時器,每次使能計數器后可能輸出多個PWM脈沖,具體多少除了與RCR寄存器的值有關外,還跟計數器的計數模式有關;

3、要用好定時器的單脈沖輸出模式,需了解下面三方面的知識點:

A:了解基本的PMW輸出模式的基本特性;

B:了解定時器的更新事件;

C:了解計數器的溢出與重裝;

好,下面一起來看看幾個基于單脈沖輸出模式的實例以加深理解。

下面案例都是基于高級定時器的。因為高級定時器可以使用單脈沖輸出模式輸出1到N個脈沖,如果使用通用定時器每次觸發后就只能產生1個脈沖,產生多個脈沖就不那么方便。

案例一:使用高級定時器,單脈沖輸出模式,借助RCR寄存器實現3個PWM脈沖輸出

條件:UP counting + PWM1, RCR=2; 極性:高有效[CCxP=0]

圖[9]

程序運行,使能計數器后輸出上述波形。

RCR=2,意味著發生RCR+1次溢出時產生更新事件,計數器停止計數,后續不再輸出PWM波形。從上面來看輸出基本是正確的,不過最后電平停在高電平,結尾這個地方怎么感覺不符合PWM1的輸出特性呢?

一起來看看,現在計數器是向上計數模式,它在第3個周期計到ARR時產生溢出,觸發更新事件,計數器停止計數了,那計數器的值不是應該停留在ARR嗎?如果計數器的值停在ARR,那此時CNT>CCR的值,按照PWM模式1的輸出特性,輸出應該停留在低電平,那怎么是高電平呢?

前面提到過,要用好定時器的單脈沖輸出模式,還得了解計數器溢出與重裝。

具體到這里,當計數器在第3個周期計到ARR時發生溢出,產生更新事件,計數器不再計數。但計數器溢出后重裝還是照例執行,此時計數器被重裝為0,因為計數器被停止,所以該0值保持不變。這樣的話,后續的比較結果總是CNT

好,那我們基于上面的條件,換成PWM輸出模式2看看結果。

案例二:使用高級定時器,單脈沖模式,借助RCR寄存器實現3個PWM脈沖輸出

條件:UP counting + PWM2, RCR=2; 極性高有效[CCxP=0]

圖[10]

這次跟上面的案例1只是PWM模式做了變更,使用PWM輸出模式2。仍然是輸出3個PWM脈沖,跟上面輸出波形相比,第3個脈沖最后停留的電平不一樣,這里是低電平。分析過程跟上面一樣,當計數器發生第3次溢出時,計數器依然重裝為0,此時CNT

至于其它不同的組合模式,這里就不一一分析了。我下面再放幾副圖進來,大家可以自行分析。

案例三:使用高級定時器,單脈沖模式,借助RCR寄存器實現3個PWM脈沖輸出。

條件:Down counting + PWM1,RCR=2; 極性選擇高有效 [CCxP=0]

圖[11]

案例四、使用高級定時器,單脈沖模式,借助RCR寄存器實現3個PWM脈沖輸出。

條件:Down counting + PWM2,RCR=2; 極性選擇高有效[CCxP=0]

圖[12]

案例五、使用高級定時器,單脈沖模式,借助RCR寄存器實現PWM脈沖輸出

條件:Center counting / pwm1/ RCR=6 極性選擇:高有效[CCxP=0]

圖[13]

最后小結下:

在使用定時器單脈沖輸出模式做指定個數PWM波形輸出時,我們要根據實際需求來選擇合適的pwm輸出模式、計數模式以及RCR寄存器的值。比方上面案例1與案例2的輸出波形不能說誰對誰錯,關鍵看你需要的是哪種輸出結果。另外,一種輸出結果可以有多種實現方案,比方上面案例2與案例3雖是不同的方案,但產生了相同的效果,此時我們可以根據具體的應用場景來選擇合適的方案。

好,關于定時器的單脈沖輸出模式的應用就介紹到這里,大致介紹了單脈沖輸出模式的來龍去脈以及實現原理。我們常常使用單脈沖模式是輸出指定個數的PWM脈沖,當然還有別的方式可以靈活使用,比方通過通過統計比較事件或更新事件后修改CCR等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115366
  • STM
    STM
    +關注

    關注

    1

    文章

    557

    瀏覽量

    42576

原文標題:STM32定時器單脈沖輸出模式話題

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    靈動微MM32F5270定時器單脈沖輸出

    1 單脈沖輸出 定時器單脈沖輸出是比較輸出應用中的一種模式
    的頭像 發表于 12-01 18:51 ?2364次閱讀

    COMP2在STM32L1上觸發單脈沖模式

    我試圖在STM32L1系列上使用COMP2的輸出觸發定時器單脈沖模式(在我的示例中為TIM4,但如果它需要更改為另一個定時器則非常靈活)。在參考手冊中,
    發表于 10-23 13:43

    STM32——高級定時器、通用定時器、基本定時器的區別 精選資料推薦

    頻率的分頻系數為1~65535之間的任意數值● 多達4個獨立通道: ─ 輸入捕獲 ─ 輸出比較 ─ PWM生成(邊緣或中間對齊模式) ─ 單脈沖模式輸出● 死區時間可編程的互補
    發表于 08-19 07:09

    STM32定時器單脈沖模式的相關資料分享

    STM32的定時器可以配置為單脈沖模式,所謂的單脈沖就是通過配置定時器使其在一個可控延時后,產生一個脈寬可控的脈沖。使用STM32CubeM
    發表于 12-08 06:05

    請問如何生成可重復的單脈沖波形?

    我希望在一定的延遲后生成脈沖。我已經生成了兩個相移的非對稱 PWM 波形。現在我想在單脈沖模式下觸發另一個定時器。我怎樣才能做到這一點?我不知道如何設置或觸發定時器
    發表于 12-26 07:23

    如何使用MxCube設置可重觸發的單脈沖定時器呢?

    我使用的是主頻為 120MHz 的 STM32L4S9AII6。我正在嘗試配置一個簡單的(對我來說應該很簡單)可重觸發的單脈沖模式定時器。我能夠在一次性模式下配置 TIM6,但我遇到了以下
    發表于 12-26 11:07

    一文簡析MM32F5270定時器單脈沖輸出模式

    1 單脈沖輸出定時器單脈沖輸出是比較輸出應用中的一種模式
    發表于 12-30 16:09

    有什么方法可以在一種脈沖模式下啟動定時器嗎?

    此控制的最佳方法是什么?在定時器控制期間,階段之間的時間差如何?問題是由于當前硬件在不適合單脈沖模式的引腳上提供過零輸入,因此我將對這些信號使用中斷(因此需要通過軟件在單脈沖模式下啟動定時器
    發表于 02-08 08:19

    單脈沖電路圖

    單脈沖電路如圖所示,采用RS觸發產生,實驗者每按一次開關即可以從兩個插座上分別輸出一個正脈沖及負脈沖,供中斷DMA
    發表于 03-25 09:31 ?5450次閱讀
    <b class='flag-5'>單脈沖</b>電路圖

    通用定時器:為ARM初學者導航(9)

    定時器簡介 二 定時器主要特性 三 定時器功能描述 1、時基單元 2、計數模式 3、輸入捕獲
    的頭像 發表于 07-02 11:17 ?3430次閱讀
    通用<b class='flag-5'>定時器</b>:為ARM初學者導航(9)

    stm32之定時器

    * PWM輸出* 單脈沖模式l 高級定時器還可以產生互補輸出l 可以產生中斷/DMA請求:*更新事件:計數向上/向下溢出,計數
    發表于 11-23 18:21 ?0次下載
    stm32之<b class='flag-5'>定時器</b>

    STM32定時器單脈沖模式及其應用

    STM32的定時器可以配置為單脈沖模式,所謂的單脈沖就是通過配置定時器使其在一個可控延時后,產生一個脈寬可控的脈沖。使用STM32CubeM
    發表于 11-25 11:06 ?65次下載
    STM32<b class='flag-5'>定時器</b><b class='flag-5'>單脈沖模式</b>及其應用

    STM32-通用定時器-PWM輸出

    捕獲、輸出比較、PWM輸出單脈沖模式輸出等。STM32的定時器除了TIM6和TIM7(基本定時器
    發表于 11-26 15:36 ?23次下載
    STM32-通用<b class='flag-5'>定時器</b>-PWM<b class='flag-5'>輸出</b>

    STM32定時器單脈沖輸出模式

    STM32定時器單脈沖輸出模式
    發表于 12-08 20:51 ?48次下載
    STM32<b class='flag-5'>定時器</b><b class='flag-5'>單脈沖</b><b class='flag-5'>輸出</b><b class='flag-5'>模式</b>

    電工知識—SIMATIC S7-1500 PLC定時器脈沖和擴展脈沖時間定時器

    SP:產生指定時間寬度脈沖定時器。當邏輯位有上升沿時,脈沖定時器指令啟動計時,同時節點立即輸出
    的頭像 發表于 04-17 09:18 ?1.3w次閱讀
    西畴县| 五星百家乐官网的玩法技巧和规则 | 最新博彩论坛| 百家乐官网游戏机路法 | 广州百家乐官网酒店用品制造有限公司 | 太阳会百家乐官网现金网| 真人百家乐试玩账号| 平邑县| 有百家乐的棋牌游戏| 固始县| 定制百家乐桌垫| 福清市| 百家乐赌博玩法技巧| 娱乐城百家乐官网技巧| 百家乐娱乐网真钱游戏| 百家乐官网最好的平台是哪个| 百家乐娱乐网网77scs| 香港百家乐官网赌场| 百家乐技巧技巧| 网上的百家乐官网是假的吗| 大发888网页ban| 百家乐官网麻将筹码币镭射贴膜| 六合彩印刷图库| 百家乐官网微笑心法搜索| 大发888为什么打不开| 百家乐官网双龙出海注码法| 百家乐最好投注法是怎样的去哪儿能了解一下啊 | 皇冠现金网网址| 大西洋娱乐城开户地址| 在线百家乐官网策略| 金都娱乐城| 网上玩百家乐好吗| 扬中市| 澳门百家乐十大缆| 百家乐官网娱乐城公司| 网上百家乐娱乐网| 百家乐官网怎么下注能赢| 百家乐六手变化混合赢家打| 百家乐官网下注技术| 免费百家乐的玩法技巧和规则| 百家乐官网15人桌布|