工程师笔记|STM32G474 HRTIME PWM 丢波问题分析与解决

描述

关键词:HRTIME, PWM,丢波,消隐




目录预览




1.前言

2.问题描述

3.原因分析

4.解决方法

5.小结


STM32G474 中包含了针对数字电源应用的高精度定时器(HRTIMER),客户在应用该定时器产生 PWM 时,发现 PWM 的输出出现了“丢波”现象,本文对该问题进行分析并给出解决方案。


2.

问题描述


客户使用高精度定时器产生 PWM, 其 PWM 产生的配置如下,Master Timer 的 period event与 compare 1 event 分别作为 Timer A 与 Timer B 的复位源,Timer A 与 Timer B 产生的 180 度移相的 PWM 输出,EEV4 作为外部事件来触发 PWM reset, 并且使用 blanking 功能过滤发生在PWM set 点附近的 EEV4 事件,Timer compare 3 event 用来限制 PWM 的最大占空比,当 PWM周期内没有 EEV4 发生或是发生的时间点晚于 compare 3 事件时,Timer compare 3 event 将触发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 


使用以上的配置,正常情况下产生的 PWM 如下所示,C1/C2 分别为 TA1 与 TB1,C3 为EEV4,下降沿触发事件,使 PWM reset。


STM32


但是当外部事件发生的点接近于 PWM 周期值时,就会出现 “丢波”,如下图所示。

STM32

展开其中的部分波形观察如下

STM32


3.

原因分析


对 PWM 丢失的波形进行分析,当该情况发生时,EEV4 发生的时间点已经晚于 CMP3 事件,正常波形的占空比也与设定的最大允许占空比一致。丢波情形节点:在 EEV4 事件发生的时间点靠近 TA1 或 TB1 波形的 set 点处才会出现。

STM32

为什么会出现“丢波”?从波形上分析,唯一可能的原因就是 C1/C2 的 set 事件被“忽略”了 ,导致整个周期一直处于低电平状态。在高精度定时器中,若多个事件同时发生的时候就会出现事件被“忽略”的情况,且 reset 事件具备最高优先级(除了多个事件都来源于同一定时器的CMP、PER 事件),导致 set 事件被“忽略”,可阅读 RM 的 26.3.7 Set / reset events priorities and narrow pulses management 了解更多详细的规则。 


 从客户实际的配置中可确认在“丢波”情况出现时,EEV4 不会跨周期,且实际的波形也验证了该点,C3 的下降沿先于 C1/C2 的上升沿出现的,那么一般就会理解 EEV4 导致的 reset 事件不会与 PWM 的 set 事件 Master timer period/ compare 1 event 同时出现,且客户的配置中对EEV4 添加了消隐功能, blanking 区间为 counter reset/roll-over to compare 1,即使 EEV4 与Master timer period/ compare 1 event 同时出现,也应该被过滤掉,set 事件不应该被忽略。总结如下:

   • EEV4 不会与 Master timer period/ compare 1 event 同时出现;

     • 即使同时出现,EEV4 也应该被消隐过滤掉。但是 EEV4 作为外部事件作用于高精度定时器(复位 counter 或是 set/reset PWM 输出),其从事件发生到生效是存在一定的内部延时(26.3.8 External events global conditioning),如下图所示。在 re-sync 模式下,这个延时一般会在 60ns 左右。

STM32
STM32

左右滑动查看变化


在高精度定时器中对多个事件同时出现的处理都是以事件的实际生效点为准,所以当 EEV4的下降沿发生点靠近 PWM set 事件的情况下,经过内部延时后,就可能会与 set 事件同时出现了。


关于消隐功能的 blanking 区间,比如本文中的 counter reset/roll-over to compare 1,一般的理解是从起点到终点全部过滤,但是实际情况是在设定的起点处 blanking 不会生效(经 division确认),即 blanking 区间不是闭区间。另外需要注意的是消隐功能作用的也是事件的实际生效点,而非发生点。 


对以上的分析总结如下:

•多个事件同时出现的处理过程中,以事件的实际生效点为准,而非发生点;

 • 消隐功能在 blanking 区间的起始点无效,且消隐对象为实际生效点在区间内的事件。 


客户的配置中,blanking 区间的起始点与 PWM 的 set 点为同一个点,若是 reset 事件 EEV4通过内部延时后刚好也落在这个点上,那么消隐不生效,reset 相对 set 优先级高,结果就是 set事件被忽略,PWM 输出继续保持低电平,也是我们观察到的 PWM“丢波”。基于上述分析,对客户描述现象进行复现,很容易捕捉到“丢波”现象,本文中提供的“丢波”时的波形就是基于以上的分析与实验获取的。


篇幅有限仅展示部分,完整文档请点击“阅读原文”后下载
    
THE END


点击“阅读原文”,可下载原文档


原文标题:工程师笔记|STM32G474 HRTIME PWM 丢波问题分析与解决

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分