關(guān)鍵詞:HRTIME, PWM,丟波,消隱
目錄預(yù)覽
1.前言
2.問題描述
3.原因分析
4.解決方法
5.小結(jié)
2.
問題描述
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)獲取的。
-
單片機(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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論