一、PWM生成原理
1、OC(Output Compare) 输出比较
输出比较可以通过比较CNT和CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率的和占空比的PWM波形。
每个高级定时器和通用定时器都有4个输出比较通道。高级定时器的前3个通道额外拥有死区生成和互补输出的功能。
2、 PWM(Pulse Width Modulation)脉冲宽度调制
在具有惯性的数字系统中,可以通过对一系列脉冲的宽度进行调制,来等效的获取到所需要的模拟参量。
PWM参数:频率 f = 1/Ts 占空比 = Ton = Ts 分辨率 = 占空比变换步距
PWM的频率越快 ->等效的模拟的信号就越平稳->性能开销越大
3、通用定时器的输出比较通道
当对比完CNT和CRR值之后,就会给输出模式控制器一个信号,然后输出模式控制器就会改变它输出的OC1REF(参考信号)的高低电平。然后
(1)可以把REF映射到主模式的TRGO输出上去
(2)或者前往下面的一路:给CC1P寄存器写0就会往上走,不改变REF信号;写1的话就往下走,通过一个非门取反
之后就是一个输出使能电路,决定要不要输出。
最后的OC1就是输出通道的引脚。
4、输出模式控制器的执行逻辑
(1)冻结:CNT和CCR无效,不管大小,保持REF为原状态
(2)匹配时有效电平(1)、无效电平(0),电平翻转
(3)强制输出模式和冻结模式差不多
(4)PWM1模式和PWM2模式只是输出相反。
5、输出PWM的基本结构
在时基单元中,CNT不断自增,ARR在CNT到一定值后自动重置CNT值。
在输出比较单元中,CCR是我们设定的值,CNT不断自增并与CCR比较,通过比较的结果将REF不断置高低电平,最后通过极性选择和输出使能后在GPIO口输出。
6、参数计算
7、高级定时器的输出比较通道
死区发生器:会在OC1关闭的时候延迟一段时间然后导通OC1N/在OC1N关闭的时候延迟一段时间再导通上管。
二、PWM波生成的程序设计
配置TIM2通道1为PWM输出。
配置定时器一个周期为10ms、向上计数、内部时钟不分频、使能自动重装。
配置PWM为模式1、4000的占空比、低电平、使能输出比较重装
三、任务结果