您现在的位置是:首页 >学无止境 >野火STM32电机系列(五)Cubemx配置高级定时器TIM1网站首页学无止境

野火STM32电机系列(五)Cubemx配置高级定时器TIM1

拾小白 2023-06-02 20:00:02
简介野火STM32电机系列(五)Cubemx配置高级定时器TIM1

鸽了一段时间,放心不会断的哈,目前仅仅是显示屏坏了,不影响后面项目

前文已经配置了GPIO、编码器

本节讲解CubeMX高级定时器TIM1配置带死区的6路互补的PWM

同时配置信号触发后续ADC采集

板子引角的原理图如下

对应的:

Motor1--U+--PA8--TIM1_CH1

Motor1--U---PB13--TIM1_CH1N

Motor1--V+--PA9--TIM1_CH1

Motor1--V---PB14--TIM1_CH1N

Motor1--W+--PA10--TIM1_CH1

Motor1--W---PB15--TIM1_CH1N

接着配置具体参数如下:

由于pwm控制频率为10K,芯片的时钟周期为168Hz,这里采用中心对齐的上下计数模式的计数周期为16800/2。计算公式为:

这里重复计数填1,根据下图stm手册,为的是在后面再每个PWM周期产生一个中断事件

触发事件选择update Event(控制adc采样并进入中断)

 

 

 死区配置(这里根据MOS管具体情况设置,后期可以在程序中直接改)

 最后各路PWM配置只需要把占空比改成周期的一半(16800/2/2),上下管各导通百分之50等效于单路输出为0,同时便于观察死区。

 芯片的时钟树配置如下

生成代码

在初始化中开启PWM

		HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
		HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);
		HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
		HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_2);
		HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);
		HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_3);

连接PWM1的两路互补引脚,示波器观察结果如图:

 一格25us,4格100us,刚好10Khz的频率,并带有死区,说明配置正确

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。