在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

利用STM32F334的HRTIM實現PWM輸出的實現原理

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-06-15 09:35 ? 次閱讀

很多STM32系列的MCU內置高精度定時器,比方STM32F334、STM32G4、STM32H7等系列。利用高精度定時器實現PWM輸出應該說是最基本的功能了。不過,在實際應用中,常有人覺得無法實現duty=0或duty=100%的PWM輸出情形。這里以STM32F334的HRTIM為例,簡單介紹下利用它實現PWM輸出的實現原理。

STM32F334的HRTIM的功能框圖如下,由一個MASTER定時器和ABCDE五個定時器單元組成。其中ABCDE五個定時器單元各可以產生2路輸出信號,并支持互補輸出。

先看看跟HRTIM有關的時鐘。別的系列有支持向上、向下計數模式的。

在利用HRTIM中的定時器單元實現PWM輸出時,基于不同的分頻系數對應著不同的分辨率和最低頻率。如下表所示:【截圖來自STM32F334的參考手冊】

顯然,不同分頻比對應不同的計數時鐘fHRCK,根據計數時鐘結合16位的計數寬度可求出最長計數時間,亦即最小的PWM輸出頻率。

但對于高精度定時器HRTIM,由于其自身特定機制的原因,在實現PWM功能時,設計比較值和計數周期值時需遵循下面兩個原則:【注意是FHRTIM時鐘單位,即未被倍頻的時鐘,這里就是那個144Mhz時鐘】

1、 最小值必須不小于3個fHRTIM時鐘單位;

2、最大值不得大于0xFFFE個fHRTIM時鐘單位;

剛才上面說了,HRTIM里面的定時器單元所用的計數時鐘是fHRTIM先經過倍頻后再經過分頻器而來的,那么結合上面的兩個原則,不同分頻比條件下可以設定的計數周期或比較值的范圍就對應到如下表格:

上面表格就是定時器單元不同分頻比時可以設置的計數周期值或用于比較的比較寄存器的值的范圍。比方我們以上面TABLE82中的CKPSC=3時來看看。CKPSC=3,從上面Table81可以得知此時的計數時鐘為源時鐘倍頻后的8分頻,我們在設計PWM計數周期值或比較值時就要求在0x00c~~0xFFFB范圍內配置。鑒于此,有人就得出沒法實現PWM輸出的0占空比或100%占空比,其實這是誤解。

假設此時我們所需要的PWM周期值剛好0xff00.那么比較寄存器CMP的值就可以在0x000c~~0xff00任意設置并能實現有效、可靠比較,顯然,CMP值不要小于0x000c這個起點值【實際上Table82中的Min值都是對應著3個fHRTIM源時鐘單位,因不同分頻比而呈現不同數據】,那這不是說PWM輸出不能實現0占空比的情況嗎?非也!

對于HRTIM的輸出,通常是根據計數器的值與比較寄存器的值發生相等匹配事件時進行SET【置1】或RESET【清零】輸出。【用過STM32常規定時器的人這里可能會感受到一些差異。】

比方如上圖所示,在發生比較事件時做RESET輸出,發生PER周期性事件時做SET輸出。

顯然,當我們不斷增加CMP的值,占空比也會相應增大。當CMP的值增加到剛好等于PER的值時,則輸出RESET。因為此時CMP比較事件、PER周期性事件在同一時間點發生,會涉及到事件競爭的仲裁問題。由于比較事件響應優先級高于周期性事件的,所以此時的輸出按比較事件來定,這里輸出RESET,此時也剛好對應著Duty=0的情形。兩個事件總是同時發生,而PER事件競爭不過CMP事件,輸出只好由CMP事件說了算。

按照這種配置,那又如何實現Duty=100%的輸出呢?

很簡單,當我們將CMP的值設置成任意被PER還大的值時,就始終輸出SET信號了。因為此時CMP永遠不會等于PER,即不會發生有效比較匹配事件,無有效比較事件則不會有RESET的輸出,輸出始終由PER事件掌控。

在基于HRTIM做PWM輸出時,弄清了原理后就知道如何靈活編寫代碼了。上面只是大致做了PWM輸出的原理介紹,更多細節還是得細看手冊,比方上面提到的定時器事件及事件響應競爭時的仲裁。

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

    關注

    114

    文章

    5191

    瀏覽量

    214173
  • STM32
    +關注

    關注

    2270

    文章

    10906

    瀏覽量

    356479
  • 定時器
    +關注

    關注

    23

    文章

    3251

    瀏覽量

    114959

原文標題:STM32高精度定時器PWM輸出話題

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

收藏 人收藏

    評論

    相關推薦

    STM32F334比較器消隱和HRTIM的事件消隱功能如何實現

    1,使用STM32F334制作的數字電源,用EVENT事件來實現逐周期電流檢測功能,現在開關管開通瞬間過沖較大,導致比較器誤觸發,比較器消隱功能一直配置不起作用,不明白比較器的窗口消隱的PWM
    發表于 06-04 08:38

    請問STM32F334如何實現cycle-by-cycle curre?

    呢? 按照這個圖,紅色的EVENT配置路徑可以直接作用于HRTIM的互補PWM輸出上,實現快速關閉PWM,然后我這樣配置起不到任何作用,
    發表于 05-31 07:22

    請問STM32F334好像沒有BOOT1引腳,怎么選擇啟動模式?

    請問STM32F334好像沒有BOOT1引腳,怎么選擇啟動模式呢
    發表于 05-29 07:52

    STM32H7的HRTIM可以生成12路的PWM嗎?

    STM32H7的HRTIM可以生成12路的PWM嗎,想做數字電源,控制三相NPC逆變器
    發表于 05-23 07:19

    STM32F334上使用IAR開發環境和jlink的SWD接口調試,怎么設置才可以使用IAR的code coverage功能?

    如題,在STM32F334上使用IAR開發環境和jlink的SWD接口調試,這種情況下怎么設置才可以使用IAR的code coverage功能啊,謝謝各位!!!
    發表于 04-24 06:08

    STM32F334有數字雙向AC-DC嗎?

    我在官網看到了關于STM32F334數字AC-DC的東西,有數字雙向AC-DC的東西嗎,最好是DC輸出電壓電流可調的
    發表于 04-23 07:49

    stm32f334如何用串口燒錄?

    的芯片是stm32f334f103R8T6,我看資料上說是可以用串口燒錄的,我用mcuisp這個軟件燒錄,發現能讀到芯片的信息,但是不能燒錄hex文件,這是怎么回事呢?
    發表于 04-12 08:17

    HRTIMER在調整占空比的時候波形異常為什么?

    我用程序測試了stm32f334HRTIM功能,使用移相功能,為什么在我調整pwm占空比的時候,C項的波形會不正常呢
    發表于 04-09 07:20

    請問F334 Hrtim的PA12引腳的數字FAULT保護如何配置呢?

    請問F334 Hrtim的PA12引腳的數字FAULT保護如何配置呢
    發表于 04-07 08:38

    請問做電源用stm32f334好還是tms320f2806?性價比哪個高?

    做電源用stm32f334好還是tms320f2806?性價比哪個高?
    發表于 04-02 06:41

    STM32F334 HRTIM無法輸出PWM是怎么回事?

    STM32F334 HRTIM 無法輸出PWM
    發表于 03-22 06:57

    STM32F334R8T6在配置PA12作為HRTIM1_FLT1后,無法停止PWM輸出怎么解決?

    在配置PA12作為 HRTIM1_FLT1后,無法停止PWM輸出
    發表于 03-21 08:26

    STM32F334如何才能配置不同的通道有獨自的觸發源?

    我現在想嘗試用STM32F334來制作三相PFC,需要采集每一相的電感電流,采樣時間都是在開關周期的中點進行采樣,還要同時對每一相的電壓進行采樣,六路采樣每個都是不同的觸發源,我看STM32這種基于序列的觸發做起來只能使用軟件實現
    發表于 03-19 08:06

    采用STM32F334的ADC0和ADC1做ADC,ADC輸入時為什么會產生一個脈沖臺階?

    采用STM32F334的ADC0和ADC1做ADC,配置是完全用ADC CubeMx配置的,運放為了避免過壓,在運放和ADC間串了一個1K的電阻,結果發現了另人詫異的事情,ADC轉換過程多了一個臺階
    發表于 03-18 06:37

    STM32F334R8的HRTIM Timer Repetition interrupt中斷周期異常的原因?

    STM32F334R8的HRTIM Timer Repetition interrupt中斷周期異常?
    發表于 03-08 06:16
    主站蜘蛛池模板: 高清一级| 久久99热精品这里久久精品| 日日干天天操| 色偷偷尼玛图亚洲综合| 欧美女同在线观看| 福利片在线观看免费高清| 超级乱淫小黄文小说| 成人啪啪网站| 成人网中文字幕色| 亚洲精品久久久久久婷婷| 婷婷丁香综合| 欧美在线视频一区二区三区| 美国色天使| 成人久久久| 手机看片福利日韩| 最近高清免费观看视频| 亚洲乱码卡一卡二卡三| 直接在线观看的三级网址| 婷婷久久综合网| 欧美爱爱网址| vr亚洲成年网址在线观看| 爽天天天天天天天| 2020天天操| 俄罗斯美女在线观看一区| 天天看天天射天天碰| 欧美一级艳片视频免费观看| 国产在线精彩视频二区| 午夜一级在线| 亚洲色网址| aaaa黄色片| 日韩一区二区三区在线| 激情啪啪网站| 天天操综合网| h在线免费观看| 亚洲成网| 来吧成人综合网| 午夜视频在线观看一区二区| 成人宗合网| 在线视频亚洲欧美| 免费看的一级毛片| 亚洲最新黄色网址|