0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

STM32单片机 来源:未知 2022-12-02 18:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

关键词: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。



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

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


3.

原因分析


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

为什么会出现“丢波”?从波形上分析,唯一可能的原因就是 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 左右。

左右滑动查看变化


在高精度定时器中对多个事件同时出现的处理都是以事件的实际生效点为准,所以当 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单片机】欢迎添加关注!文章转载请注明出处。

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

    关注

    6074

    文章

    45340

    浏览量

    663629
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371180

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ‌基于STM32G474的数字电源控制板设计解析与应用指南

    STMicroelectronics STEVAL-DPSG474Q数字电源控制盘基于STM32G4系列的STM32G474QE微控制器。STEVAL-DPSG474Q可控制需要高引脚
    的头像 发表于 10-15 13:59 776次阅读
    ‌基于<b class='flag-5'>STM32G474</b>的数字电源控制板设计解析与应用指南

    求助,关于STM32G474使用HRTIME完成两路180度移相问题求解

    开发平台 STM32G474RET6CUBEMX+MDK 现在的问题是 我已经完成了移向 使用的是主定时器做同步 使能了TIMA TIMB两个定时器的period和主定时器的一致 设置了200khz
    发表于 07-24 08:29

    STM32G474RBT3 HRTIME 与 TIM 相位差如何消除?

    使用STM32G474RB芯片时钟配置是170M,HRTIME 和 TIM4 都设置为相同频率 2400Hz, 但它们的输出存在相位差,请问有什么方法可以消除这个相位差?
    发表于 07-23 06:54

    STM32G474如何实现Buck变换器的COT控制模式?

    我想用STM32G474实现恒定导通时间模式控制,如下图所示,我打算使用片上比较器实现VOUT和Vref的比较功能以开通pwm,但是要如何实现当比较器触发信号长时间大于导通时间时反复进行导通(如图红色方框所示),
    发表于 07-10 06:35

    有一个关于STM32G474双BANK的测试问题求解答

    工程师朋友,您好有一个关于STM32G474 双BANK的测试问题请教各位:一个LED 闪烁的测试程序已经在IAR环境构建成功,使用STM32CubeProgrammer 加载到0X800 0000
    发表于 06-17 07:15

    求助,关于STM32G474双BANK的测试问题求解

    工程师朋友,您好有一个关于STM32G474 双BANK的测试问题请教各位:一个LED 闪烁的测试程序已经在IAR环境构建成功,使用STM32CubeProgrammer 加载到0X800 0000
    发表于 06-11 07:57

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    stm32G474的flash模式如何判定?

    请教各位,使用的芯片是stm32g474cbt6,按照手册说法,single bank是单一flash区域,最小擦除是4k,dual bank是支持双flash区域,一边操作不影响另外一块,最小擦除
    发表于 03-12 08:18

    stm32g474 hrtim中怎么使用dual channel DAC trigger?

    stm32g474 hrtim 中怎么使用 dual channel DAC trigger
    发表于 03-12 07:33

    stm32g474的开发板很烫的原因?

    stm32g474的开发板很烫
    发表于 03-10 08:30

    STM32G474利用高精度HRTIM怎么捕获外部波形计算波形频率?

    STM32G474 利用高精度HRTIM怎么捕获外部波形计算波形频率,想用STM32Cube配置工程代码,网上查了很多资料,没有看到这个用法。希望大神指导一下。
    发表于 03-10 06:29

    STM32G474的DAC4无输出怎么解决?

    STM32G474 的DAC4采用定时器4触发dma,OUT1连接到比较器5,测试下来 DAC4没输出,是配置哪里有问题吗 定时器4的配置: DAC4: 比较器5: DAC4的DMA: normal 改circular 改过不行memory 勾上也试过 不行。 配置哪里有问题吗
    发表于 03-07 06:06