色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

利用STM32高精度定時器實現PWM輸出的實現原理

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

很多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常規定時器的人這里可能會感受到一些差異?!?/p>

比方如上圖所示,在發生比較事件時做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

    文章

    5197

    瀏覽量

    214584
  • STM32
    +關注

    關注

    2270

    文章

    10923

    瀏覽量

    357090
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115181

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

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

收藏 人收藏

    評論

    相關推薦

    如何在MSP430?上實現內置振蕩高精度定時器

    電子發燒友網站提供《如何在MSP430?上實現內置振蕩高精度定時器.pdf》資料免費下載
    發表于 09-14 11:10 ?0次下載
    如何在MSP430?上<b class='flag-5'>實現</b>內置振蕩<b class='flag-5'>器</b>的<b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>

    定時器的工作方式介紹

    實現周期性事件的硬件模塊。它可以用于實現各種定時任務,如定時中斷、PWM(脈沖寬度調制)輸出、
    的頭像 發表于 07-12 10:29 ?1088次閱讀

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

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

    三菱PLC編程實現讀出時間定時器

    的功能,而定時器實現時間控制的關鍵組件。本文將詳細介紹如何使用三菱PLC編程實現讀出時間定時器。 1. 定時器的基本概念
    的頭像 發表于 06-20 11:11 ?2665次閱讀

    STM8L052定時器1同時輸出3路PWM,想讓其中的兩路PWM輸出頻率跟另外一個不同,可以實現嗎?

    STM8L052的定時器1同時輸出3路PWM但是想讓其中的兩路PWM輸出頻率跟另外一個不同,請問 可以
    發表于 05-13 09:06

    如何實現一個軟件定時器?

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過一個硬件定時器產生固定的時鐘節拍,每次硬件定時器中斷到,就對一個全局的時間
    的頭像 發表于 04-29 11:00 ?727次閱讀

    求助,關于STM32高精度定時器應用問題求解

    最近使用STM32的高級定時器,想要實現無縫移相效果,嘗試了各種方式,均無法正常移相,原廠也沒有找到這方面的資料,不知道是否能實現這樣的功能 我的測試分為左移相和右移相 第1次測試:左
    發表于 04-10 07:42

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

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

    集成有看門狗定時器高精度電壓監控TPS3851數據表

    電子發燒友網站提供《集成有看門狗定時器高精度電壓監控TPS3851數據表.pdf》資料免費下載
    發表于 03-29 10:00 ?0次下載
    集成有看門狗<b class='flag-5'>定時器</b>的<b class='flag-5'>高精度</b>電壓監控<b class='flag-5'>器</b>TPS3851數據表

    STM32F407的定時器9和10怎么設置為主從關系?

    中關閉主定時器PWM輸出,達到精確的位移控制的目的,這樣只用進一次中斷,而不用每次進中斷里進行計數。 我用通用定時器2-5可以實現; 但是
    發表于 03-28 06:02

    STM32G030定時器16 17和1同步輸出如何實現

    STM32G030系列中只有定時器1 16和17三個定時器可以輸出帶死區時間互補pwm,我想實現
    發表于 03-27 06:45

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

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

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

    其實,對于STM32芯片,編碼輸入信號就是定時器的計數時鐘源之一。定時器外接了編碼輸入,若還有剩余通道的話,剩余通道依然可以實現輸入捕獲或輸出
    的頭像 發表于 03-21 09:06 ?1958次閱讀
    如果<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>呢?

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

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

    使用555定時器的可調雙定時器電路

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關電路、占空比選擇、時鐘脈沖發生
    的頭像 發表于 02-25 15:16 ?2377次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路
    主站蜘蛛池模板: 被两根巨大同时进去高H | 人与禽物videos另类 | 水蜜桃亚洲一二三四在线 | 2012中文字幕在线动漫电影 | 亚洲一区二区三区乱码在线欧洲 | 欧美另类一区 | 天津相声广播在线收听 | 亚洲在线无码免费观看 | 拔萝卜在线高清观看视频 | 免费国产久久拍久久爱 | 嗯啊快停下我是你老师啊H 嗯啊快拔出来我是你老师视频 | 国产精品无码AV天天爽色欲 | 粗壮挺进邻居人妻无码 | 亚洲精品无码午夜福利在线观看 | 精品久久久久中文字幕 | 精品国产成人a区在线观看 精品国产成人AV在线看 | 国产在线亚洲精品观看不卡 | 成人小视频在线免费观看 | av av在线| 欧美成人momandson | 国产婷婷综合在线视频中文 | 极品少妇高潮啪啪无码吴梦 | 久久久久婷婷国产综合青草 | 优优色影院 | 伊人青青久 | 男人吃奶摸下弄进去好爽 | 免费精品一区二区三区在线观看 | 小sao货水好多真紧h的视频 | 亚洲第一天堂无码专区 | 黄色精品视频 | 亚在线观看免费视频入口 | 精品视频在线一区 | 国产成人在线播放视频 | 国产精品视频免费观看 | 亚洲精品久久国产高清 | 大睾丸内射老师 | 午夜福利体验免费体验区 | 国产全肉乱妇杂乱视频 | yellow在线观看免费高清的日本 | 久久精品美女久久 | 蜜臀AV中文字幕熟女人妻 |