RM新时代网站-首页

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

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

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

STM32定時器非對稱PWM輸出模式應用示例

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-05-14 09:21 ? 次閱讀

STM32用戶使用STM32F3系列MCU開發(fā)產(chǎn)品,想利用片內(nèi)定時器實現(xiàn)移相全橋的PWM波形輸出。具體要求如下,并希望輸出下圖所示波形:

1、A與B波形的頻率及占空比相同,波形錯位的時間需可調(diào),如圖上半部分所示。

2、A與/A是同頻率、同占空比的互補波形,兩個波形的高電平之間可插入死區(qū)。

3、B與/B的關(guān)系同A與/A,如圖中下半部分的圖示。

要實現(xiàn)上面的波形,我們可以通過靈活運用比較輸出的toggle模式結(jié)合DMA來實現(xiàn),

不過,這對很多人來說,難度可能有點大。

具體到這里,因為他選擇了STM32F3系列,而STM32F3/L4/F7/H7等系列的定時器都具備非對稱PWM輸出模式或組合輸出模式,若使用非對稱PWM輸出模式實現(xiàn)上述輸出就比較方便省事。下面一起來看看。

所謂非對稱PWM輸出模式它是相對基于中心對稱計數(shù)時的對稱PWM輸出而言的。當計數(shù)模式為中心對齊,某個輸出通道利用一個比較寄存器做PWM輸出時,其對應的PWM輸出波形呈中心對稱,如下圖所示:

那這里的非對稱PWM輸出呢?同樣采用中心對齊計數(shù)模式,1個通道的輸出要用到2個比較寄存器的值進行比較翻轉(zhuǎn)。比方定時器通道3的輸出,根據(jù)CCR3和CCR4的值分別在向上計數(shù)和向下計數(shù)過程中做兩次比較而產(chǎn)生輸出,由于CCR3與CCR4的值往往不一致進而輸出非對稱的PWM波形。如下圖所示:

關(guān)于定時器比較輸出的非對稱PWM模式,OC1REFC或OC2REFC的輸出特征由CCR1和CCR2的值及所選PWM模式?jīng)Q定,同樣,OC3REFC或OC4REFC的輸出特征由CCR3和CCR4的值和所選PWM模式?jīng)Q定。

STM32參考手冊中在這個地方可能講得比較簡單,我這里再畫圖示意下。OC1/OC2都使用非對稱PWM輸出模式。CCR1=3,CCR2=6,ARR=8。注意,采用非對稱PWM輸出模式一定要使用中心對齊計數(shù)模式。

從上圖中我們不難看出,對于OC1REFC和OC2REFC,它們的輸出產(chǎn)生了相差,該相差取決于CCR1與CCR2的值?;谶@點,我們就可以實現(xiàn)上面的A、B輸出的相移問題,即通過修改CCR的值即可自由調(diào)整相差。【OCxREFC信號最終還是輸出到OCx端的,并支持互補輸出?!?/p>

這時我們再開啟這兩路的互補輸出,到此就可以實現(xiàn)客戶的輸出要求了。

下面我們利用STM32CubeMx神器進行初始化配置。【了解下關(guān)鍵配置就好】

配置時鐘等,然后生成初始化代碼并打開相關(guān)工程。添加需要的用戶代碼。代碼很簡單,是基于cube HAL庫?!鹃_啟CH1/CH2及互補通道的PWM輸出功能,使能主輸出、開啟計數(shù)器?!?/p>

看下輸出結(jié)果【未插入死區(qū)】:

我們也可以基于互補通道插入死區(qū),得到帶死區(qū)的輸出結(jié)果。

看到這里,是不是覺得這個非對稱PWM模式對實現(xiàn)那些相差可調(diào)的驅(qū)動波形很方便?好,關(guān)于STM32定時器的非對稱PWM功能輸出就介紹到這里。當然,它還可以有些其它靈活的用法,有興趣可以進一步了解并為你所用。

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

    關(guān)注

    114

    文章

    5181

    瀏覽量

    213796
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

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

    關(guān)注

    23

    文章

    3246

    瀏覽量

    114719

原文標題:STM32定時器非對稱PWM輸出模式應用示例

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    stm32定時器編碼模式可以做輸出嗎?

    我想要做正交編碼,但是網(wǎng)上一般只介紹了用編碼對其做解碼,而我需要的是輸出波形。我在一個小網(wǎng)站的解答上看到定時器的編碼
    發(fā)表于 07-31 07:59

    GD32E230C8T6高級定時器timer0無法正常輸出PWM波形的原因?

    原本想用高級定時器的中央對齊計數(shù)模式輸出SPWM波,但是TIMER0的CH0,CH1等口,都無法正常輸出PWM波形,換成普通
    發(fā)表于 07-26 06:34

    定時器的工作方式介紹

    或?qū)崿F(xiàn)周期性事件的硬件模塊。它可以用于實現(xiàn)各種定時任務,如定時中斷、PWM(脈沖寬度調(diào)制)輸出、頻率測量等。定時器通常由一個計數(shù)
    的頭像 發(fā)表于 07-12 10:29 ?902次閱讀

    STM32G4系列芯片定時器的延時輸出問題

    有人使用STM32G4系列芯片內(nèi)部的多個定時器PWM輸出,輸出頻率一樣,占空比也一樣,均為50%。可是,當他中途調(diào)整各個
    的頭像 發(fā)表于 07-01 09:45 ?1603次閱讀
    <b class='flag-5'>STM32</b>G4系列芯片<b class='flag-5'>定時器</b>的延時<b class='flag-5'>輸出</b>問題

    定時器PWM輸出時,定時器回調(diào)函數(shù)只能執(zhí)行一次,是什么原因?

    定時器PWM輸出時,初始化定時器時執(zhí)行HAL_TIM_PWM_Init( TIM1_Handler);時進入回調(diào)函數(shù)里初始化GPIO引腳;
    發(fā)表于 05-30 07:15

    如何用STM32定時器實現(xiàn)一個周期輸出PWM2的波形?

    請教各位如何用STM32定時器實現(xiàn)一個周期輸出PWM2的波形呢(低-高-低-高-低)?萬分感謝您的解答!
    發(fā)表于 04-03 06:39

    STM32G030定時器16 17和1同步輸出如何實現(xiàn)?

    STM32G030系列中只有定時器1 16和17三個定時器可以輸出帶死區(qū)時間互補pwm,我想實現(xiàn)其中兩個或者3個同步
    發(fā)表于 03-27 06:45

    STM32同一定時器PWM輸出定時,會影響我的PWM輸出嗎?

    求助各位大佬 ,我用定時器2通道1輸出PWM 定時器設(shè)置為TIM2_PERIODE (1000-1) TIM2_PRESCALER 36,現(xiàn)在還想開啟2的中斷用
    發(fā)表于 03-26 07:23

    如果STM32定時器外接了正交編碼,該剩余通道是否能做PWM輸出呢?

    其實,對于STM32芯片,編碼輸入信號就是定時器的計數(shù)時鐘源之一。定時器外接了編碼輸入,若還有剩余通道的話,剩余通道依然可以實現(xiàn)輸入捕獲或輸出比較功能。
    的頭像 發(fā)表于 03-21 09:06 ?1604次閱讀
    如果<b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>外接了正交編碼<b class='flag-5'>器</b>,該剩余通道是否能做<b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>呢?

    stm32L431 sleep模式下如何使外設(shè)定時器采用DMA方式輸注pwm信號?

    看資料描述sleep模式下,外設(shè)可以正常工作,于是我希望定時器1采用DMA方式輸注PWM信號,沒有其他的外圍設(shè)備,只是做了個demo程序測試。現(xiàn)在不進低功耗的時候,可以正常輸出
    發(fā)表于 03-19 07:17

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為什么時序不對?

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為啥占空比對了時序不對?
    發(fā)表于 03-14 07:49

    stm32主從定時器門控模式,怎么控制在不產(chǎn)生PWM時從定時器cnt不要計數(shù)?

    stm32主從定時器,采用門控模式,主定時器用單脈沖模式控制輸出。但是我在實驗的時候發(fā)現(xiàn)其從
    發(fā)表于 03-12 07:08

    STM32G030C8T6要輸出8~12路PWM,每個定時器可以輸出4路,那如何讓兩個定時器輸出PWM同步呢?

    STM32G030C8T6要輸出8~12路PWM,每個定時器可以輸出4路,那如何讓兩個定時器
    發(fā)表于 03-08 08:19

    使用555定時器的可調(diào)雙定時器電路

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關(guān)電路、占空比選擇、時鐘脈沖發(fā)生
    的頭像 發(fā)表于 02-25 15:16 ?2186次閱讀
    使用555<b class='flag-5'>定時器</b>的可調(diào)雙<b class='flag-5'>定時器</b>電路
    RM新时代网站-首页