关于定时器宽频输出PWM的一些笔记

PWM由通用定时器(TIM2/3/4/5)作为时钟源,它有16位递增、递减、中心对齐计数器(计数值:0~2^16-1)和16位预分频器(预分频系数1~2^16),可用于触发ADC和DAC,在更新事件、触发事件、 输入捕获、输出比较时产生中断或DMA请求。

这4个通用定时器有4个独立通道,可以用于输入捕获、输出比较、输出PWM、单脉冲模式。

接下来我们通过框图来介绍我们的通用计时器的工作原理和结构:

第一部分是上面的时钟源部分,总共有4种时钟源,第一个框1的内部时钟源来自于我们的APB1总线(72MHz),第二个是框3的内部触发输入时钟,第三个是IO口复用为TIMx_ETR的时钟输入,第四个是从TIMx_CHN1/2输入的外部时钟模式TI1FP1/2的时钟源。

第二部分是控制部分从TRGO输出到其他定时器的TIMx_ETR或DAC/ADC。

第三个部分是时基单元,详细会在基本计时器中详细说明。

第四部分是输入捕获部分,就是框4。第五部分是捕获/比较部分。我们复用IO口,将外部输入时钟信号输入该IO口,经过滤波器和边沿检测器,获得稳定的边沿触发信号。然后配置预分频系数给预分频器,然后产生捕获事件来激活捕获/比较寄存器,然后将计数器的数据存入相应的寄存器。

第六个是输出比较部分。我们传入比较值进行比较值和计数器中的数据进行比较,最后输出比较的结果。

关于定时器宽频输出PWM的一些笔记_第1张图片

 接下来介绍输出PWM的配置。

PWM模式1(低电平触发)是在向上计数时候,TIMx_CNTTIMx_CCR1,通道为无效电平,否则为有效电平。

PWM模式2(高电平触发)是在向上计数时候,TIMx_CNTTIMx_CCR1,通道为有效电平,否则为无效电平。

而输出电平是由计数模式和极性共同控制的。极性相当于是在有效电平内输出的电压,高极性即有效电平时期输出高电平,低极性便是有效电平时期输出低极性。比如我选择了PWM模式1、低极性,则我会收获以下图像:

关于定时器宽频输出PWM的一些笔记_第2张图片

 

而在正弦波波下的图像是:

关于定时器宽频输出PWM的一些笔记_第3张图片

 

至此关于PWM输出的部分知识点便介绍到这里。

你可能感兴趣的:(stm32,单片机,stm32,嵌入式硬件,c++,c语言)