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

经验分享 | 使用单脉冲模式作移相输出

[复制链接]
STMCU小助手 发布时间:2025-7-15 09:36

现在有STM32用户要实现下面的需求。 image.png

上面时序图中的1号波形来自某视频处理相关器件,现在要根据1号时序产生2号时序波形。2号波形相比1号波形有90°的相移,二者频率一样。如何利用STM32 TIMER实现2号输出波形呢?

我们这里可以考虑使用TIMER的单脉冲模式来实现【当然完全可能有其它方式,此处不表】。下面我使用STM32L476 Nucleo板【用哪个系列STM32开发板不重要,都能实现】来演示一下实现过程,重点在配置。

我用TIM3的CH1输出PMW脉冲模拟上图中1号 波形,然后将其与TIM4的CH1相连,作为TIM4的触发信号,触发极性为上升沿。TIM4配置在触发从模式,基于内部时钟进行计数并工作在PWM单脉冲模式,使TIM4-CH2输出的信号成为我们期望的2号波形。这个地方涉及的工作原理及细节颇多,如PWM输出单脉冲模式、PWM1与PWM2的区别、重装的特性等,这里我就不一一解释、介绍了,真要啰嗦起来也会长篇大论。这么热的天,即使我有耐心写,你们未必有耐心看。我在下面把重点配置都清晰地释放出来,真正关注的人结合这里的配置及实现结果,反过来消化原理或许更好。

TIM3、TIM4基于主从模式连接,TIM3的CH1输出上沿启动TIM4的工作。TIM4的CH2输出是我们期望的输出信号。 image.png

基于STM32L476Nucleo板的硬件连接关系图: image.png

上图中PA6与PB6相连,PB7为TIM4-CH2的输出脚。

下面分别是有关TIM3\TIM4的参数配置: image.png

image.png

上面就是全部TIMER配置,用户代码就超级简单了。

HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_2); //output signal

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); //Act as trigger signal

最后,我们就可以验证实际结果了。下图中,红色波形为来自TIM3的触发信号,对应开篇时序图中的1号时序图。下图中的黑色波形为基于触发信号的移相输出,对应开篇时序图中的2号线。 image.png

OK,今天的话题就分享到这里,有相关问题可以留言。下次再聊~!

文章出处:来自公众号 茶话MCU

收藏 评论0 发布时间:2025-7-15 09:36

举报

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