你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

经验分享 | STM32 HRTIM实现复杂波形的配置演示

[复制链接]
STMCU小助手 发布时间:2025-10-28 10:59

有人研读STM32应用相关技术资料时,见到如下图所示的STM32G474芯片HRTIM的输出波形,好奇是如何实现的。这里简单介绍下实现过程。 image.png

对于STM32G474芯片的HRTIM的输出通道,基本的输出操作就三种,分别是SET,RESET和TOGGLE.

所谓SET操作,是指当发生某定时器事件【比方比较事件、周期性事件等】时,定时器单元输出通道输出高电平作为参考信号;

RESET操作是指当发生某定时器事件【比方比较事件、周期性事件等】时,定时器单元输出通道输出低电平作为参考信号;

所谓TOGGLE操作呢,是指某定时器事件既作为定时器单元输出通道的SET条件,同时又做该输出通道的RESET条件,那么当该定时器事件发生时,定时器单元输出通道的参考输出信号做电平切换输出,即如果当前电平为高则输出低,反之则输出高;

在STM32G4的参考手册里也有相关描述: image.png

STM32G474芯片的HRTIM的计数器,可以支持向上计数单向模式,也可以支持向上向下双向计数模式。

当我们使用双向计数模式,对某输出通道指定SET或RESET条件时,可以理解为只是针对向上计数方向的,对于向下计数方向,相同的条件表现为与向上计数方向相反的操作。比方说,我们设置当发生CMP1比较事件时让输出通道SET。对于中心对齐计数模式而言,具体表现就是当CMP1事件发生在向上计数方向时,输出高;CMP1事件发生在向下计数方向时则输出低。可以结合上面截图再细看下。

了解了上面HRTIM的基本输出原理,再来看看眼前要实现的输出波形。

image.png

这里有两路输出,可以选用HRTIM的MASTER以外的任意定时器单元来实现。下面选用TIMA来实现。从图中可以看到,用到4个比较单元及事件。

对于通道1,发生CMP1和CMP2事件时做SET操作,发生CMP3和CMP4事件时做RESET操作。

对于通道2,发生CMP1事件时做SET操作,发生CMP2、CMP3和CMP4事件时做Toggle输出操作。前面说过,要实现Toggle操作,就是将某事件同时作为输出通道的SET和RESET条件。

好,基本的实现原理就介绍到这里,现在使用STM32CubeMx进行初始化配置。

下面是时基配置,参数多少不重要,最终只是验证输出波形特征。

image.png

下面设置4个比较单元比较点的配置。

image.png

下面是针对TIMA通道1、通道2的输出配置,重点关注各通道的SET和RESET条件。

image.png

基于上面的配置生成初始化工程,添加如下用户代码。用户代码分别是关于启动TIMA计数器和TIMA输出通道波形输出功能的代码。

image.png

到此,稍作调试就可以看到最终的输出波形了。输出波形跟开篇的类似,就不截图过来了。因为我这里的参数只是大致选择的,也不知原图的具体参数。

对于初次接触HRTIM的人来讲,即使使用CubeMx配置,也多少有点让人望而生畏,毕竟配置页面东西太多了,不知哪些是必须配置的、哪些是暂时无须关注的。这时可以基于别人例程和演示,多操作几次,慢慢就会找到感觉。这也正是我在此分享之初衷。好,今天的分享演示就到此划上句号。再聊~!

收藏 评论0 发布时间:2025-10-28 10:59

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版