书接上回,上文章我们主要介绍了定时器的定时中断功能,
这这篇文章我们来学习一下他的输出比较功能
同志,加油,胜利的曙光已经出现,坚持就是胜利!
一、输出比较
主要是用来输出PWM波形,PWM波形是驱动电机的必要条件
1.基础知识
OC(Output Compare)输出比较
输出比较可以通过比较CNT与CCR寄存器值的关系,(大于、小于、等于)
来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
CNT:在这里就是时基单元的计数器,
CCR:就是捕获、比较寄存器。
每个高级定时器和通用定时器都拥有4个输出比较通道CH1---CH4
高级定时器的前3个通道额外拥有死区生成和互补输出的功能
上图是通用定时器
2.PWM波形
PWM(Pulse Width Modulation)脉冲宽度调制
下面给了两图,可以很清楚看到,PWM就是一个数字输出信号,也是由高低电平组成的
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,
来等效地获得所需要的模拟参量,常应用于电机控速等领域
前提:惯性系统。
PWM参数 :
频率 = 1 / TS 占空比 = TON / TS 分辨率 = 占空比变化步距
这里解释一下占空比:占空比决定了PWM等效出来的模拟电压的大小。
占空比越大,越趋近与高电平
分辨率:占空比的精细程度
这里可以看到,可以等效为中间这个模拟量
这个概念可能很抽象,我们来解释一下,
led灯如果用单片机我们只能实现亮灭两种效果,但是运用这个我们就可以实现控制亮度大小,也就是呼吸灯的效果。
也就是当点亮、熄灭的频率到达一定程度,足够大时,就会不会闪烁,而是产生一种中等亮度。而这个电亮和熄灭的比例我们是可以调控的,这样我们就让它产生了不同的亮度。
基本思想就是以一个很快的频率,通断电,就让它维持在一个中断速度,
天下武功,唯快不破,”只要我闪的够快,你就发现不了是闪的亮,还是正常亮” 真是世间英雄如过江之鲫。
3,具体分析
现在来知其然一下:
3.1定时器的输出比较模块怎么输出PWM波形呢?
见下图(通用比较通道)
当两个条件满足,给到输出模式控制器一个信号,它接受到信号就会改变oc1ref的输出高低电平
左上的etrf是定时器的小功能,一般不用,不用了解
至主模式就是映射到主模式TRGO输出上,一般不用
下面一条线常用,极性选择,取0信号,往上走,信号电平不翻转, 取1,则取反,进入oc1引脚,
3.2输出模式怎么工作的
根据我们小学二年级的思考,朴素的感觉,对于上面讲述,我们有了一个新问题,输出模式怎么工作的
见下表
这就是输出控制器的基本逻辑
简单说几个,比方说匹配时电平反转,可以方便的输出一个频率可调,占空比始终在50%的pwm波形
最后的PWM模式可以说非常重要了,他们可以用来配置输出频率和占空比都可调的PWM波形,我们一般使用向上计数。
3.3PWM1.那这个又是怎么配置
那我们继续思考,既然我们常用的是PWM1.那这个又是怎么配置输出频率和占空比都可调的PWM波形,有请我们的新主角
看这个图是不是似曾相识的感觉,前面时钟单元无需多言,后面的CCR是我们自己设置的
PWM的工作流程我们可以根据上图分析,蓝线是CNT,黄线是ARR,红线是CCR,下面的高低电平是蓝线和红线的比较,这样是不是跟我们所说的可调占空比相对应,
然后经过极性选择,输出使能,通向GPIO口,
4,参数计算
PWM频率: Freq = CK_PSC / (PSC + 1) / (ARR + 1)
PWM占空比: Duty = CCR / (ARR + 1)
PWM分辨率: Reso = 1 / (ARR + 1)
5.讲几个元器件
舵机
舵机是一种根据输入PWM信号占空比来控制输出角度的装置
就是PWM信号输入到控制板,给控制板一个指定目标角度,里面的点位器就会通过正/反转让舵机到这个角度,输出一个PWM波形,固定一个角度。
输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms
20ms = 50Hz 这个换算就是 f (HZ) = 1/T (S)
高电平宽度为0.5ms~2.5ms 解释就是占空比是这个
讲这个是主要来说明,这里是把PWM当做了一种通信协议。这是一种比较常见的功能。
直流电机
直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向