一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

利用STM32F334的HRTIM實(shí)現(xiàn)PWM輸出的實(shí)現(xiàn)原理

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

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

STM32F334的HRTIM的功能框圖如下,由一個(gè)MASTER定時(shí)器和ABCDE五個(gè)定時(shí)器單元組成。其中ABCDE五個(gè)定時(shí)器單元各可以產(chǎn)生2路輸出信號(hào),并支持互補(bǔ)輸出。

先看看跟HRTIM有關(guān)的時(shí)鐘。別的系列有支持向上、向下計(jì)數(shù)模式的。

在利用HRTIM中的定時(shí)器單元實(shí)現(xiàn)PWM輸出時(shí),基于不同的分頻系數(shù)對(duì)應(yīng)著不同的分辨率和最低頻率。如下表所示:【截圖來自STM32F334的參考手冊(cè)】

顯然,不同分頻比對(duì)應(yīng)不同的計(jì)數(shù)時(shí)鐘fHRCK,根據(jù)計(jì)數(shù)時(shí)鐘結(jié)合16位的計(jì)數(shù)寬度可求出最長計(jì)數(shù)時(shí)間,亦即最小的PWM輸出頻率。

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

1、 最小值必須不小于3個(gè)fHRTIM時(shí)鐘單位;

2、最大值不得大于0xFFFE個(gè)fHRTIM時(shí)鐘單位;

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

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

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

對(duì)于HRTIM的輸出,通常是根據(jù)計(jì)數(shù)器的值與比較寄存器的值發(fā)生相等匹配事件時(shí)進(jìn)行SET【置1】或RESET【清零】輸出?!居眠^STM32常規(guī)定時(shí)器的人這里可能會(huì)感受到一些差異?!?/p>

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

顯然,當(dāng)我們不斷增加CMP的值,占空比也會(huì)相應(yīng)增大。當(dāng)CMP的值增加到剛好等于PER的值時(shí),則輸出RESET。因?yàn)榇藭r(shí)CMP比較事件、PER周期性事件在同一時(shí)間點(diǎn)發(fā)生,會(huì)涉及到事件競爭的仲裁問題。由于比較事件響應(yīng)優(yōu)先級(jí)高于周期性事件的,所以此時(shí)的輸出按比較事件來定,這里輸出RESET,此時(shí)也剛好對(duì)應(yīng)著Duty=0的情形。兩個(gè)事件總是同時(shí)發(fā)生,而PER事件競爭不過CMP事件,輸出只好由CMP事件說了算。

按照這種配置,那又如何實(shí)現(xiàn)Duty=100%的輸出呢?

很簡單,當(dāng)我們將CMP的值設(shè)置成任意被PER還大的值時(shí),就始終輸出SET信號(hào)了。因?yàn)榇藭r(shí)CMP永遠(yuǎn)不會(huì)等于PER,即不會(huì)發(fā)生有效比較匹配事件,無有效比較事件則不會(huì)有RESET的輸出,輸出始終由PER事件掌控。

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

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

    關(guān)注

    116

    文章

    5320

    瀏覽量

    217470
  • STM32
    +關(guān)注

    關(guān)注

    2285

    文章

    10986

    瀏覽量

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

    關(guān)注

    23

    文章

    3273

    瀏覽量

    116815

原文標(biāo)題:STM32高精度定時(shí)器PWM輸出話題

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HRTIM變頻控制輸出的第一個(gè)周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補(bǔ)的四路
    發(fā)表于 04-25 06:17

    HRTIM變頻控制輸出的第一個(gè)周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補(bǔ)的四路
    發(fā)表于 04-22 12:08

    STM32F334比較器消隱和HRTIM的事件消隱功能如何實(shí)現(xiàn)?

    1,使用STM32F334制作的數(shù)字電源,用EVENT事件來實(shí)現(xiàn)逐周期電流檢測功能,現(xiàn)在開關(guān)管開通瞬間過沖較大,導(dǎo)致比較器誤觸發(fā),比較器消隱功能一直配置不起作用,不明白比較器的窗口消隱的PWM
    發(fā)表于 03-11 06:08

    STM32G474利用高精度HRTIM怎么捕獲外部波形計(jì)算波形頻率?

    STM32G474 利用高精度HRTIM怎么捕獲外部波形計(jì)算波形頻率,想用STM32Cube配置工程代碼,網(wǎng)上查了很多資料,沒有看到這個(gè)用法。希望大神指導(dǎo)一下。
    發(fā)表于 03-10 06:29

    請(qǐng)問STM32F334如何配置PB1輸出HRTIM同步信號(hào)?

    我嘗試通過cube配置HRTIM的同步輸出,輸出管腳選擇PB1,并且在生成的工程中啟用了HRTIM,但實(shí)際運(yùn)行測試發(fā)現(xiàn),在PA8管腳上有PWM
    發(fā)表于 03-07 06:17

    HC32F334HRTIM和PLA,能輸出頻率連續(xù)可調(diào)的PWM波形嗎?

    HC32F334HRTIM和PLA,能輸出頻率連續(xù)可調(diào)的PWM波形嗎?
    發(fā)表于 02-27 06:28

    EE-334: 利用Blackfin處理器休眠狀態(tài)實(shí)現(xiàn)待機(jī)低功耗

    電子發(fā)燒友網(wǎng)站提供《EE-334: 利用Blackfin處理器休眠狀態(tài)實(shí)現(xiàn)待機(jī)低功耗.pdf》資料免費(fèi)下載
    發(fā)表于 01-08 14:40 ?0次下載
    EE-<b class='flag-5'>334</b>: <b class='flag-5'>利用</b>Blackfin處理器休眠狀態(tài)<b class='flag-5'>實(shí)現(xiàn)</b>待機(jī)低功耗

    使用PWM實(shí)現(xiàn)電源管理的策略

    PWM(脈沖寬度調(diào)制)是一種廣泛應(yīng)用于電子設(shè)備中實(shí)現(xiàn)電壓調(diào)節(jié)和功率控制的技術(shù),它通過改變信號(hào)的脈沖寬度來模擬輸出不同的電壓幅值,從而高效控制設(shè)備的工作狀態(tài)。在電源管理中,PWM技術(shù)發(fā)揮
    的頭像 發(fā)表于 11-18 16:23 ?983次閱讀

    STM32F334比較器消隱和HRTIM的事件消隱功能如何實(shí)現(xiàn)?

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

    請(qǐng)問STM32F334如何實(shí)現(xiàn)cycle-by-cycle curre?

    呢? 按照這個(gè)圖,紅色的EVENT配置路徑可以直接作用于HRTIM的互補(bǔ)PWM輸出上,實(shí)現(xiàn)快速關(guān)閉PWM,然后我這樣配置起不到任何作用,
    發(fā)表于 05-31 07:22

    請(qǐng)問STM32F334好像沒有BOOT1引腳,怎么選擇啟動(dòng)模式?

    請(qǐng)問STM32F334好像沒有BOOT1引腳,怎么選擇啟動(dòng)模式呢
    發(fā)表于 05-29 07:52

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

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

    請(qǐng)問如何在TC334中打開和關(guān)閉PWM?

    在基于 TC334 的芯片電機(jī)控制器中,我想實(shí)現(xiàn) PWM 開和關(guān),應(yīng)該如何編寫函數(shù)來實(shí)現(xiàn)這一功能? 當(dāng)關(guān)機(jī)故障發(fā)生時(shí),我關(guān)閉 PWM
    發(fā)表于 05-17 17:19

    STM32F334 ADC1和ADC2同步采樣,有時(shí)會(huì)出現(xiàn)采ADC1和ADC2所有的通道采集數(shù)據(jù)都一樣的情況為什么?

    STM32F334 ADC1和ADC2同步采樣,有時(shí)會(huì)出現(xiàn)采ADC1和ADC2所有的通道采集數(shù)據(jù)都一樣,給人直觀的感覺像是ADC電路死了,但也沒有觸發(fā)ADC的overrun異常中斷。 大神們?遇到過此問題嗎?謝謝
    發(fā)表于 05-15 08:15

    NUCLEO-F334R8的ADC頻率是與系統(tǒng)的時(shí)鐘頻率一樣嗎?

    購買了一塊NUCLEO-F334R8,想嘗試STM32應(yīng)用于數(shù)字電源的一些應(yīng)用。之前使用FPGA進(jìn)行實(shí)現(xiàn),采用了外部ADC。F334有內(nèi)置的ADC,看了一下datasheet,有些疑問
    發(fā)表于 05-08 08:27