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单片机】欢迎添加关注!文章转载请注明出处。

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

    关注

    6036

    文章

    44556

    浏览量

    634972
  • STM32
    +关注

    关注

    2270

    文章

    10897

    浏览量

    355865

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

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

收藏 人收藏

    评论

    相关推荐

    stm32g474 qspi不进dma中断是怎么回事?

    stm32g474 qspi 不进dma中断
    发表于 09-13 07:10

    stm32g474的开发板很烫的原因?

    stm32g474的开发板很烫
    发表于 07-24 06:59

    STM32硬件开发兼职工程师

    上海做传感器的公司,找STM32硬件开发兼职工程师,会硬件开发,嵌入式软件开发,可项目外包。有意联系:15900460170
    发表于 06-22 19:12

    基于STM32G474的电机控制,如何在sdk上配置使用spwm

    基于STM32G474的电机控制,如何在sdk上配置使用spwm
    发表于 05-30 06:28

    STM32G474的HRTIM和高级定时器除了定时精度上有区别外,还有其它什么区别?

    STM32G474的HRTIM和高级定时器除了定时精度上有区别外,还有其它什么区别?什么情况下只能用HRTIM定时器,而用不了高级定时器?有没有哪位大神讲一下!!!
    发表于 05-28 08:15

    STM32G474如何实现带同步整流管的BUCK电路?

    STM32G474 如何实现带同步整流管的BUCK电路
    发表于 05-22 07:53

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源?

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源,而timerB在使用死区模式后无法设置Tb2的置位源但可以设置复位源?
    发表于 05-22 06:23

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    STM32G474除以0会进错误中断,为什么?

    我的编译环境为STM32CubeIDE,芯片为STM32G474,我发现程序中如果有除以0的操作时,会跑到错误中断中。请问能不能通过设置,可以让程序不要跑进错误中断,直接等于当前变量类型的最大值
    发表于 04-01 06:32

    STM32G4如何利用ADC-DMA对全桥电路实现闭环控制?

    开始接触STM32G474,用于对一个全桥电路实现闭环控制,里面包括PI控制,准PR控制,和一个相位环;在学习完输出pwm和ADC-DMA两个模块后无法将两者整合在一起,对于后续步骤更加没有思路
    发表于 03-22 06:40

    Stm32G474 DMA传输全部完毕后,需要产生中断并调运回调函数完成相关操作,如何处理?

    Stm32G474,DMA传输全部完毕后,需要产生中断并调运回调函数完成相关操作。请问我如何处理?没有看到常规的回调函数(例如这样的HAL_TIM_PeriodElapsedHalfCpltCallback)
    发表于 03-15 08:26

    关于STM32G474 ADC多通道数据采集遇到的问题求解

    STM32G474 ADC时钟:168MHz/4=42MHz 分辨率 12bit 单端输入 ADC1 采集6通道数据 采样时间6.5cycle 单端1.65V【0~-10mV左右跳动】 ADC2
    发表于 03-14 08:11

    STM32G474的DAC4无输出怎么解决?

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