搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM

采样配置完成后,进行PWM的配置。PWM的生成依赖于STM32的TIM1定时器,其功能完备如下图所示,电机控制中主要应用其PWM生成功能。

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第1张图片

我们当前阶段的目标是生成占空比为50%的三路PWM,其开关频率为10kHz。

那么开始CubeMx的配置,依据stm32f405数据手册中地址总线部分内容,TIM1是挂在ABP2时钟上的,那么先要配置ABP2的时钟。

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第2张图片时钟的配置如下图所示

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第3张图片

 此时ABP2的时钟频率为72MHz,要想获得10kHz的PWM,则定时器的周期值TPRD = 72M/2/10k = 3600,配置TIM1参数如下图所示,配置123通道均为PMW generation,然后时钟选择为内部时钟。分频系数设置为0,Counter period计数周期值设为3600。

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第4张图片

 这里需要明确一点就是Count Mode需要注意一下,三者的区别在于中断标志置位的条件不同,我们选择在递增等于比较值和下降等于比较值都触发中断。因此选择中心对齐模式3。

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第5张图片

 接下来设置死区时间,查询所用开关管的datashee,开关管上升时间+延迟+关断时间+延迟总时间为91ns,因此设置0.5us = 500ns时间作为死区时间完全足够。

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第6张图片

由于此时的时钟频率为72M,因此0.5us对应的计数值约为36(36 = 0.5*1e-6*72*1e6)

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第7张图片

 最后设置PWM的模式,下图基本为默认设置,注意

搭建stm32电机控制代码框架(五)——Stm32CubeMx配置PWM_第8张图片

 然后生成代码即可。

你可能感兴趣的:(stm32,matlab学习,stm32,单片机,嵌入式硬件)