STM32G474系列:HRTIM高精度定时器 互补PWM延时及移相使用记录

本文记录HRTIM高精度定时器使用,不做原理性解释。

一、需求波形

目的:四路互补PWM带死区,定时器时钟100MHz,PWM为200KHz,第二路相对于第一路后开先关,第三路相对于第一路滞后90°,第四路同第二路。不考虑倍频等情况,不做精度要求,仅做实验现象。

二、实现逻辑

HRTIM使用同步功能,且使用为master,四路PWM电平置位以4个master compare值为准,复位以各子定时器的compare值为准。

三、 CUBEMX配置

1、SYS配置

2、RCC配置

3、时钟配置

4、HRTIM配置

5、synhro 同步配置

6、Master Timer配置

7、子定时器配置

其它子定时器同理。

注:这里的output配置特别重要,结合上面描述的逻辑理解,只需配置output1,output2只需配置polarity和output1一样即可。

8、project配置

9、生成代码后在main函数内while函数外添加如下代码才可生成PWM:


	 HAL_HRTIM_WaveformCounterStart(&hhrtim1, HRTIM_TIMERID_MASTER | HRTIM_TIMERID_TIMER_E | HRTIM_TIMERID_TIMER_A | HRTIM_TIMERID_TIMER_F | HRTIM_TIMERID_TIMER_B);

	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TE1 );
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TE2 );
	
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1 );
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2 );
	
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TF1 );
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TF2 );
	
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TB1 );
	 HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TB2 );

四、试验现象

由于示波器为4通道,这里只展示第一路、第二路现象(暂用200khz频率图片)

1、整体现象

2、第二路相对于第一路后开

3、第二路相对于第一路先关

4、第三路滞后第一路90°

五、总结

1、在使用HRTIM时,对主定时器控制子定时器的关键是同步设置,刚开始把主定时器设置为slave模式,导致无法控制后开先关的功能,

2、由于需要对接的硬件有1路上管采用TF2,下管采用TF1,和其它三路不同(其它三路上官均对应Tx1,下管均对应Tx2,所以比较值到来是极性都设置为高),因此将TF1极性设置为低,互补死区出现如下情况:(暂未解决)

折腾一天才完成,如有大佬可以讲解,感激不尽,欢迎各位交流。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值