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

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

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

工程師筆記|STM32G474 HRTIME PWM 丟波問題分析與解決

STM32單片機(jī) ? 來源:未知 ? 2022-12-02 18:55 ? 次閱讀

關(guān)鍵詞:HRTIME, PWM,丟波,消隱




目錄預(yù)覽




1.前言

2.問題描述

3.原因分析

4.解決方法

5.小結(jié)


STM32G474 中包含了針對(duì)數(shù)字電源應(yīng)用的高精度定時(shí)器(HRTIMER),客戶在應(yīng)用該定時(shí)器產(chǎn)生 PWM 時(shí),發(fā)現(xiàn) PWM 的輸出出現(xiàn)了“丟波”現(xiàn)象,本文對(duì)該問題進(jìn)行分析并給出解決方案。


2.

問題描述


客戶使用高精度定時(shí)器產(chǎn)生 PWM, 其 PWM 產(chǎn)生的配置如下,Master Timer 的 period event與 compare 1 event 分別作為 Timer A 與 Timer B 的復(fù)位源,Timer A 與 Timer B 產(chǎn)生的 180 度移相的 PWM 輸出,EEV4 作為外部事件來觸發(fā) PWM reset, 并且使用 blanking 功能過濾發(fā)生在PWM set 點(diǎn)附近的 EEV4 事件,Timer compare 3 event 用來限制 PWM 的最大占空比,當(dāng) PWM周期內(nèi)沒有 EEV4 發(fā)生或是發(fā)生的時(shí)間點(diǎn)晚于 compare 3 事件時(shí),Timer compare 3 event 將觸發(fā)PWM reset。


Master Timer:

Interleaved Mode:Half mode


Timer A :

Up-Down Mode : Up-counting

Timer counter reset trigger source : Master timer period event

PWM set source : Master timer period event

PWM reset source : Timer compare 3 event + EEV4


Timer B :

Up-Down Mode : Up-counting

Timer counter reset trigger source : Master timer compare 1 event

PWM set source : Master timer compare 1 event

PWM reset source : Timer compare 3 event + EEV4


EEV4 :

Source:EE source 2 – COMP1

Sensitivity:Falling edge

Fast Mode:re-sync mode

Filtering : Blanking from counter reset/roll-over to compare 1

Latch : Ignored if happens during a blank


使用以上的配置,正常情況下產(chǎn)生的 PWM 如下所示,C1/C2 分別為 TA1 與 TB1,C3 為EEV4,下降沿觸發(fā)事件,使 PWM reset。



但是當(dāng)外部事件發(fā)生的點(diǎn)接近于 PWM 周期值時(shí),就會(huì)出現(xiàn) “丟波”,如下圖所示。

展開其中的部分波形觀察如下


3.

原因分析


對(duì) PWM 丟失的波形進(jìn)行分析,當(dāng)該情況發(fā)生時(shí),EEV4 發(fā)生的時(shí)間點(diǎn)已經(jīng)晚于 CMP3 事件,正常波形的占空比也與設(shè)定的最大允許占空比一致。丟波情形節(jié)點(diǎn):在 EEV4 事件發(fā)生的時(shí)間點(diǎn)靠近 TA1 或 TB1 波形的 set 點(diǎn)處才會(huì)出現(xiàn)。

為什么會(huì)出現(xiàn)“丟波”?從波形上分析,唯一可能的原因就是 C1/C2 的 set 事件被“忽略”了 ,導(dǎo)致整個(gè)周期一直處于低電平狀態(tài)。在高精度定時(shí)器中,若多個(gè)事件同時(shí)發(fā)生的時(shí)候就會(huì)出現(xiàn)事件被“忽略”的情況,且 reset 事件具備最高優(yōu)先級(jí)(除了多個(gè)事件都來源于同一定時(shí)器的CMP、PER 事件),導(dǎo)致 set 事件被“忽略”,可閱讀 RM 的 26.3.7 Set / reset events priorities and narrow pulses management 了解更多詳細(xì)的規(guī)則。


從客戶實(shí)際的配置中可確認(rèn)在“丟波”情況出現(xiàn)時(shí),EEV4 不會(huì)跨周期,且實(shí)際的波形也驗(yàn)證了該點(diǎn),C3 的下降沿先于 C1/C2 的上升沿出現(xiàn)的,那么一般就會(huì)理解 EEV4 導(dǎo)致的 reset 事件不會(huì)與 PWM 的 set 事件 Master timer period/ compare 1 event 同時(shí)出現(xiàn),且客戶的配置中對(duì)EEV4 添加了消隱功能, blanking 區(qū)間為 counter reset/roll-over to compare 1,即使 EEV4 與Master timer period/ compare 1 event 同時(shí)出現(xiàn),也應(yīng)該被過濾掉,set 事件不應(yīng)該被忽略??偨Y(jié)如下:

? EEV4 不會(huì)與 Master timer period/ compare 1 event 同時(shí)出現(xiàn);

? 即使同時(shí)出現(xiàn),EEV4 也應(yīng)該被消隱過濾掉。但是 EEV4 作為外部事件作用于高精度定時(shí)器(復(fù)位 counter 或是 set/reset PWM 輸出),其從事件發(fā)生到生效是存在一定的內(nèi)部延時(shí)(26.3.8 External events global conditioning),如下圖所示。在 re-sync 模式下,這個(gè)延時(shí)一般會(huì)在 60ns 左右。

左右滑動(dòng)查看變化


在高精度定時(shí)器中對(duì)多個(gè)事件同時(shí)出現(xiàn)的處理都是以事件的實(shí)際生效點(diǎn)為準(zhǔn),所以當(dāng) EEV4的下降沿發(fā)生點(diǎn)靠近 PWM set 事件的情況下,經(jīng)過內(nèi)部延時(shí)后,就可能會(huì)與 set 事件同時(shí)出現(xiàn)了。


關(guān)于消隱功能的 blanking 區(qū)間,比如本文中的 counter reset/roll-over to compare 1,一般的理解是從起點(diǎn)到終點(diǎn)全部過濾,但是實(shí)際情況是在設(shè)定的起點(diǎn)處 blanking 不會(huì)生效(經(jīng) division確認(rèn)),即 blanking 區(qū)間不是閉區(qū)間。另外需要注意的是消隱功能作用的也是事件的實(shí)際生效點(diǎn),而非發(fā)生點(diǎn)。


對(duì)以上的分析總結(jié)如下:

?多個(gè)事件同時(shí)出現(xiàn)的處理過程中,以事件的實(shí)際生效點(diǎn)為準(zhǔn),而非發(fā)生點(diǎn);

? 消隱功能在 blanking 區(qū)間的起始點(diǎn)無效,且消隱對(duì)象為實(shí)際生效點(diǎn)在區(qū)間內(nèi)的事件。


客戶的配置中,blanking 區(qū)間的起始點(diǎn)與 PWM 的 set 點(diǎn)為同一個(gè)點(diǎn),若是 reset 事件 EEV4通過內(nèi)部延時(shí)后剛好也落在這個(gè)點(diǎn)上,那么消隱不生效,reset 相對(duì) set 優(yōu)先級(jí)高,結(jié)果就是 set事件被忽略,PWM 輸出繼續(xù)保持低電平,也是我們觀察到的 PWM“丟波”?;谏鲜龇治?,對(duì)客戶描述現(xiàn)象進(jìn)行復(fù)現(xiàn),很容易捕捉到“丟波”現(xiàn)象,本文中提供的“丟波”時(shí)的波形就是基于以上的分析與實(shí)驗(yàn)獲取的。


篇幅有限僅展示部分,完整文檔請(qǐng)點(diǎn)擊“閱讀原文”后下載
THE END


點(diǎn)擊“閱讀原文”,可下載原文檔


原文標(biāo)題:工程師筆記|STM32G474 HRTIME PWM 丟波問題分析與解決

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628383
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352483

原文標(biāo)題:工程師筆記|STM32G474 HRTIME PWM 丟波問題分析與解決

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    stm32g474 qspi不進(jìn)dma中斷是怎么回事?

    stm32g474 qspi 不進(jìn)dma中斷
    發(fā)表于 09-13 07:10

    stm32g474的開發(fā)板很燙的原因?

    stm32g474的開發(fā)板很燙
    發(fā)表于 07-24 06:59

    基于STM32G474的電機(jī)控制,如何在sdk上配置使用spwm?

    基于STM32G474的電機(jī)控制,如何在sdk上配置使用spwm
    發(fā)表于 05-30 06:28

    STM32G474的HRTIM和高級(jí)定時(shí)器除了定時(shí)精度上有區(qū)別外,還有其它什么區(qū)別?

    STM32G474的HRTIM和高級(jí)定時(shí)器除了定時(shí)精度上有區(qū)別外,還有其它什么區(qū)別?什么情況下只能用HRTIM定時(shí)器,而用不了高級(jí)定時(shí)器?有沒有哪位大神講一下?。。?/div>
    發(fā)表于 05-28 08:15

    STM32G474如何實(shí)現(xiàn)帶同步整流管的BUCK電路?

    STM32G474 如何實(shí)現(xiàn)帶同步整流管的BUCK電路
    發(fā)表于 05-22 07:53

    為什么STM32G474的hrtim里,timerA在使用死區(qū)模式后,設(shè)置TA1的輸出后無法設(shè)置TA2的置位源和復(fù)位源?

    為什么STM32G474的hrtim里,timerA在使用死區(qū)模式后,設(shè)置TA1的輸出后無法設(shè)置TA2的置位源和復(fù)位源,而timerB在使用死區(qū)模式后無法設(shè)置Tb2的置位源但可以設(shè)置復(fù)位源?
    發(fā)表于 05-22 06:23

    STM32G474除以0會(huì)進(jìn)錯(cuò)誤中斷,為什么?

    我的編譯環(huán)境為STM32CubeIDE,芯片為STM32G474,我發(fā)現(xiàn)程序中如果有除以0的操作時(shí),會(huì)跑到錯(cuò)誤中斷中。請(qǐng)問能不能通過設(shè)置,可以讓程序不要跑進(jìn)錯(cuò)誤中斷,直接等于當(dāng)前變量類型的最大值
    發(fā)表于 04-01 06:32

    Stm32G474 DMA傳輸全部完畢后,需要產(chǎn)生中斷并調(diào)運(yùn)回調(diào)函數(shù)完成相關(guān)操作,如何處理?

    Stm32G474,DMA傳輸全部完畢后,需要產(chǎn)生中斷并調(diào)運(yùn)回調(diào)函數(shù)完成相關(guān)操作。請(qǐng)問我如何處理?沒有看到常規(guī)的回調(diào)函數(shù)(例如這樣的HAL_TIM_PeriodElapsedHalfCpltCallback)
    發(fā)表于 03-15 08:26

    關(guān)于STM32G474 ADC多通道數(shù)據(jù)采集遇到的問題求解

    STM32G474 ADC時(shí)鐘:168MHz/4=42MHz 分辨率 12bit 單端輸入 ADC1 采集6通道數(shù)據(jù) 采樣時(shí)間6.5cycle 單端1.65V【0~-10mV左右跳動(dòng)】 ADC2
    發(fā)表于 03-14 08:11

    STM32G474的DAC4無輸出怎么解決?

    STM32G474 的DAC4采用定時(shí)器4觸發(fā)dma,OUT1連接到比較器5,測(cè)試下來 DAC4沒輸出,是配置哪里有問題嗎 定時(shí)器4的配置: DAC4: 比較器5: DAC4的DMA: normal 改circular 改過不行memory 勾上也試過 不行。 配置哪里有問題嗎
    發(fā)表于 03-08 07:08

    實(shí)戰(zhàn)經(jīng)驗(yàn) | STM32G474 中 Triggered-half 模式的實(shí)現(xiàn)

    關(guān)鍵詞:Triggered-half,Interleave 目錄預(yù)覽 1、引言 2、Triggered-half 模式介紹 3、應(yīng)用實(shí)例 4、小結(jié) 01 引言 STM32 G474 中包含了針對(duì)
    的頭像 發(fā)表于 12-11 18:15 ?1303次閱讀
    實(shí)戰(zhàn)經(jīng)驗(yàn) | <b class='flag-5'>STM32G474</b> 中 Triggered-half 模式的實(shí)現(xiàn)

    基于ST STM32G474的500W全橋移相零電壓切換直流-直流轉(zhuǎn)換器數(shù)字電源方案

    基于ST STM32G474的500W全橋移相零電壓切換直流-直流轉(zhuǎn)換器數(shù)字電源方案
    的頭像 發(fā)表于 10-27 09:47 ?2173次閱讀
    基于ST <b class='flag-5'>STM32G474</b>的500W全橋移相零電壓切換直流-直流轉(zhuǎn)換器數(shù)字電源方案

    STM32G474限流保護(hù)的實(shí)現(xiàn)

    STM32G474限流保護(hù)的實(shí)現(xiàn)
    的頭像 發(fā)表于 10-26 18:16 ?2282次閱讀
    <b class='flag-5'>STM32G474</b> 逐<b class='flag-5'>波</b>限流保護(hù)的實(shí)現(xiàn)

    工程師筆記 | STM32G0 復(fù)位后死機(jī)

    工程師筆記 | STM32G0 復(fù)位后死機(jī)
    的頭像 發(fā)表于 10-17 15:23 ?1311次閱讀
    <b class='flag-5'>工程師</b><b class='flag-5'>筆記</b> | <b class='flag-5'>STM32G</b>0 復(fù)位后死機(jī)

    STM32 HRTIM Burst輸出模式應(yīng)用演示

    有人使用STM32G474芯片的片上高精度定時(shí)器HRTIM,他想使用其輸出功能的Burst Mode。但不知如何使用,想找找參考例程。我這里就使用STM32G474芯片做下應(yīng)用演示。
    的頭像 發(fā)表于 10-13 09:07 ?3818次閱讀
    <b class='flag-5'>STM32</b> HRTIM Burst輸出模式應(yīng)用演示