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

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

3天内不再提示

STM32 HRTIM Burst输出模式应用演示

茶话MCU 来源:茶话MCU 2023-10-13 09:07 次阅读

有人使用STM32G474芯片的片上高精度定时器HRTIM,他想使用其输出功能的Burst Mode。但不知如何使用,想找找参考例程。我这里就使用STM32G474芯片做下应用演示。

我们知道,STM32家族中有多个系列或子系列芯片内置HRTIM定时器。这里以STM32G474芯片为蓝本简单介绍下HRTIM时基单元中输出功能的BURST MODE原理及实现过程。HRTIM时基单元中输出模块【或通道】可以有三种工作状态,即运行态、空闲态、出错异常态【RUN、IDLE和FAULT】。

wKgaomUomOCAaOrgAAKUR9UhSlI880.jpg

【注 :上面截图来自STM32G4系列参考手册】

此处所要讲的Burst模式其实就是运行态和空闲态交替地实现输出的模式,即输出通道一会工作在运行状态、一会工作在空闲状态,每种状态的持续时间可以编程,由Burst Mode控制器管理。

HRTIM输出单元的Burst 操作模式在轻量负载的电源逆变器产品中用得比较常见。通过减少输出跳变次数及开关损耗,可以显著地提升转换效率。

当工作在Burst模式时【下文中文我统一用交替输出模式来表述】,典型应用就是1个或几个周期的运行状态的有效输出后,紧跟着输出相应周期数的空闲状态,可以单次性,也可以周期性地实现。比方下图就是一个工作在交替输出模式的示例【注 :下面截图来自STM32G4系列参考手册】:

wKgZomUomOCAAD-bAAFGmuTOm68700.jpg

结合上图我们可以看出,交替输出控制器包括三个东西:

Burst计数器:时钟源【Burst Clock】可以有多种,甚至可以是HRTIM以外的事件,比较典型的是PWM周期事件。

寄存器HRTIM_BMCMP:用它定义空闲时间段长度。

寄存器HRTIM_BMPER:用它来定义一次交替输出的整个时间段,即上面的空闲事件段加上运行态时间段。时间段长短通过计数器的计数值来标定。【注 :下面截图来自STM32G4系列参考手册】

wKgZomUomOCAeNmJAAIPFxb42gc476.jpg

上图中的交替输出模块的计数器的时钟源是HRTIM定时器单元的计数周期事件;

HRTIM_BMCMP=4,则一次交替输出的时间段内有5个计数周期做空闲输出;

HRTIM_BMPER=7,则一次交替输出的时间段为8个计数周期,其中运行处于运行态有3个周期;

另外,要进入交替输出模式,还需要触发信号来激活。能触发交替输出模式的事件很多,可以是HRTIM的时基单元的复位事件、溢出事件、比较事件、重复计数事件等,还可以来自其它片上常规定时器的事件。

wKgZomUomOCAAS8pAANMFtPb50E304.jpg

在下面的演示示例中,我选用TIMA的复位事件作为交替输出模式的触发事件。那么,现在就以STM32G474芯片为例,来介绍下HRTIM交替输出模式的实现过程。

我使用STM32CubeMx图形化工具进行基本配置。使用HRTIM里的TIMA单元,并开启其TA1/TA2的两路PWM输出。关于这两个通道的配置参数基本一样,有一点差别就是我只开启了TA1的交替输出模式,而没有开启TA2的。这样可以明显地做效果比较。重点关注下面配置截图中带下划线,尤其红色下划线的地方。

wKgZomUomOCAJiqlAAJe37wukAA247.jpg

wKgaomUomOCAOB5vAAQrpwn90b0364.jpg

在交替输出模式配置【Burst Mode configuration】里,我们配置Burst Mode Period为10,它对应前面提到的寄存器HRTIM_BMPER的值,即一次交替输出的整个时间段为11个周期。

配置Burst Mode Idle Duration为4,它对应前面提到的寄存器HRTIM_BMCMP,即一次交替输出时间段中有5个周期处于空闲输出【当然空闲输出电平可以根据需要选择性配置,这里输出低电平】。至于交替输出模式的触发信号,这里选择的是TIMA的复位事件,交替输出模式的计数时钟选择TIMA的周期性溢出事件。当然,具体应用时我们可以根据实际需要选择。

wKgaomUomOCAaIpQAAJA8T8piu0847.jpg

其它配置细节这里就不啰嗦了,先跑出效果来。然后自己结合手册尝试调整,逐渐加深理解,慢慢进入自由使用。

基于我上面的配置,创建基于HAL库的工程后,只需添加几行如下代码即可运行查看结果。

wKgZomUomOGAOnv5AAHSuBM07WY507.jpg

wKgaomUomOCAPKA-AAEr8wfWZQw762.jpg

上面截图就是基于前面配置及代码的实现结果。不难看出,TA1开启了交替输出功能,TA2没有开启。从TA1的输出,我们可以看出整个交替输出时间段为11个周期,其中6个周期为有效运行状态,5个周期处于空闲输出状态。







审核编辑:刘清

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

    关注

    30

    文章

    5028

    浏览量

    117719
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348738
  • 定时器
    +关注

    关注

    23

    文章

    3147

    浏览量

    112036
  • PWM输出
    +关注

    关注

    1

    文章

    61

    浏览量

    5053
  • stm32cubemx
    +关注

    关注

    5

    文章

    260

    浏览量

    14447
  • STM32芯片
    +关注

    关注

    0

    文章

    38

    浏览量

    4311

原文标题:STM32 HRTIM Burst输出模式实现示例

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F334 HRTIM无法输出PWM是怎么回事?

    STM32F334 HRTIM 无法输出PWM
    发表于 03-22 06:57

    STM32G474 HRTIM/HALF模式输出只有一只脚有效,另一只互补脚无输出是为什么?

    stm32g474 hrtim-half模式下 始终只能输出一个1脚,2脚没有输出stm32f3
    发表于 04-02 07:28

    Burst模式是什么意思呢

    #1, Burst 模式是Light loading mode, 假如inductor大的话,Burst的频率会变小,这样的噪声会很大。因为Burst Event几率会变小,在人耳的频
    发表于 12-30 07:46

    CubeMx 6.4.0无法生成STM32H750 HRTIM LL代码是为什么?

    CubeMx 6.4.0 无法生成 STM32H750 HRTIM LL 代码。生成的文件hrtim.c 中有java 异常。CubeMx 项目随附。
    发表于 12-01 07:31

    如何利用HRTIM生成“LL_ADC_REG_TRIG_EXT_HRTIM_TRG1”触发基于STM32G474的项目?

    我一直在尝试使用 HRTIM 生成“LL_ADC_REG_TRIG_EXT_HRTIM_TRG1”,以触发基于 STM32G474 的项目的 ADC 的双同步转换。我使用 LL 驱动程序,据我了解
    发表于 12-14 07:16

    使用Burst DMA的HRTIM寄存器更新无法正常工作怎么解决?

    问题如下:当我尝试通过突发 DMA 访问更新 STM32G474 上的 HRTIM 主定时器寄存器(MPER、MCMP1-4)时,我写入 BDMADR 寄存器的每个数据字都会写入两个指定的主定时器
    发表于 12-27 08:38

    STM32G4中的HRTIM是否可用?

    大家好,关于应用笔记AN4539 ,STM32G4的所有 MCU 都应支持 HRTIM 外设,参考手册也描述了所有 STM32G4 的 HRTIM 功能,但在某些页面和数据表上没有关于
    发表于 02-08 06:25

    利用STM32高精度定时器实现PWM输出的实现原理

    STM32F334的HRTIM的功能框图如下,由一个MASTER定时器和ABCDE五个定时器单元组成。其中ABCDE五个定时器单元各可以产生2路输出信号,并支持互补输出
    的头像 发表于 05-14 09:06 1.2w次阅读
    利用<b class='flag-5'>STM32</b>高精度定时器实现PWM<b class='flag-5'>输出</b>的实现原理

    利用STM32F334的HRTIM实现PWM输出的实现原理

    STM32F334的HRTIM的功能框图如下,由一个MASTER定时器和ABCDE五个定时器单元组成。其中ABCDE五个定时器单元各可以产生2路输出信号,并支持互补输出
    的头像 发表于 06-15 09:35 1.5w次阅读
    利用<b class='flag-5'>STM32</b>F334的<b class='flag-5'>HRTIM</b>实现PWM<b class='flag-5'>输出</b>的实现原理

    STM32的8种GPIO输入输出模式

    STM32的8种GPIO输入输出模式参考文章“STM32的8种GPIO输入输出模式深入详解”和“
    发表于 11-26 17:06 16次下载
    <b class='flag-5'>STM32</b>的8种GPIO输入<b class='flag-5'>输出</b><b class='flag-5'>模式</b>

    STM32定时器单脉冲输出模式

    STM32定时器单脉冲输出模式
    发表于 12-08 20:51 47次下载
    <b class='flag-5'>STM32</b>定时器单脉冲<b class='flag-5'>输出</b><b class='flag-5'>模式</b>

    DS1302 的 BURST 模式

    文章目录DS1302 的 BURST 模式DS1302 的 BURST 模式进行毕设开发的时候,逻辑的严谨性非常重要,如果一个产品或者程序逻辑上不严谨,就有可能出现功能上的错误。比如我
    发表于 01-18 09:46 3次下载
    DS1302 的 <b class='flag-5'>BURST</b> <b class='flag-5'>模式</b>

    工程师笔记|DAC,COMP,HRTIM Fault 功能的使用

    关键词:HRTIM,Fault,DAC,COMP 目录预览 1.引言 2.信号路径 3.STM32CubeMX 配置 4.代码实现 5.小结 1.引言 这个例程是使用 STM32
    的头像 发表于 12-19 18:40 2427次阅读

    使用STM32 HRTIM的Fault事件做输出保护

    有人想使用STM32 HRTIM的Fault事件做输出保护,借助CubeMx配置时有些人往往缺这少那的。这里就演示一下HRTIM的使用Fau
    的头像 发表于 09-09 15:26 1472次阅读
    使用<b class='flag-5'>STM32</b> <b class='flag-5'>HRTIM</b>的Fault事件做<b class='flag-5'>输出</b>保护

    TIM DMA burst输出变频PWM波形

    电子发烧友网站提供《TIM DMA burst输出变频PWM波形.pdf》资料免费下载
    发表于 09-19 17:06 2次下载
    TIM DMA <b class='flag-5'>burst</b><b class='flag-5'>输出</b>变频PWM波形