一、输出比较简介

-
OC ( Output Compare )输出比较
-
输出比较可以通过比较 CNT 与 CCR 寄存器值的关系,来对输出电平进行置 1 、置 0 或翻转的操作
-
用于输出一定频率和占空比的 PWM 波形(PWM波形是驱动电机的必要条件)
-
每个高级定时器和通用定时器都拥有 4 个输出比较通道
(可以同时输出四路PWM波形)(四个通道有各自的CCR,但共用一个CNT计数器)
-
高级定时器的前 3 个通道额外拥有死区生成和互补输出的功能
输出比较功能:使用输出比较电路时,CNT和CCR(Capture/Compare Register)进行比较,CNT计数自增,CCR是我们设定的值,当CNT大于CCR、CNT小于CCR、CNT等于CCR时,输出就会相应的置1、置0,如此就可以输出电平不断跳变的PWM波形了
补充:IC(Input Capture)输入捕获、CC(Capture/Compare)输入捕获和输出比较的单元
捕获/比较寄存器是输入捕获和输出比较共用的,当使用输入捕获时它就是捕获寄存器,当使用输出比较时它就是比较寄存器
二、PWM简介
-
PWM ( Pulse Width Modulation )脉冲宽度调制
-
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
-
使用PWM波形可以等效地实现一个模拟信号的输出
从图可以看出:高低电平跳变的数字信号,可以等效为虚线所示的模拟量
当高电平时间长一点,低电平时间短一点的时候,波形偏上
当低电平时间长一点,高电平时间短一点的时候,波形偏下
-
PWM 参数:
频率 = 1 / Ts Ts:代表一个高低电平变换周期的时间
PWM的频率越快,等效模拟的信号就越平稳,同时性能开销越大,一般PWM频率都在几K到几十KHz
占空比 = Ton / Ts Ton:高电平时间
占空比决定了PWM等效出来的模拟电压的大小
占空比越大,等效的模拟电压越趋近于高电平;
占空比越小,等效的模拟电压越趋近于低电平
占空比与模拟电压的等效关系是线性的:比如高电平是5V,低电平是0V
占空比为50%时电压就是2.5V
占空比为20%时电压就是1V
分辨率 = 占空比变化步距
分辨率就是占空比变化的精细程度
占空比以1%、2%、3%这样以1%的步距跳变,那么分辨率就是1%
占空比以1.1%、1.2%、1.3%这样以0.1%的步距跳变,那么分辨率就是0.1%
三、输出比较模块输出PWM波形原理结构

输出通路

流程分析:
-
输出模式控制器左边就是CNT和第一路CCR1,它俩不断进行比较
-
当CNT大于CCR1、CNT等于CCR1时就会给输出模式控制器传一个信号,输出模式控制器改变它输出oc1ref的高低电平
-
接着ref信号可以前往主模式控制器,可以把ref映射到主模式的TRGO输出上去
-
ref的主要去向还是下面这路极性选择,给这个寄存器写0,信号就会走上面,信号电平不翻转,进来什么样出去还是什么样;给这个寄存器写1,信号就会走下面,信号通过非门取反,信号电平翻转
-
之后就是输出使能电路,选择要不要输出
-
最后就是OC1引脚(CH1通道的引脚,在引脚定义表里可以知道具体是哪个GPIO口)
输出模式控制器
输入模式控制器的输入是CNT和CCR的大小关系,输出是REF的高低电平
输出比较模式:

图表为输出模式控制器里面的执行逻辑
-
冻结:不管CNT和CCR谁大谁小,直接REF保持不变,维持上一个状态
用处:正在输出PWM波,需要暂停一会儿输出,一但切换为冻结模式后,输出就暂停了,高低电平维持在暂停时刻的状态不变
-
匹配时置有效电平
置完高电平就完事了,不适合输出连续变化的波形,适合定时输出一个一次性的信号
-
匹配时置无效电平
置完低电平就完事了,不适合输出连续变化的波形,
适合定时输出一个一次性的信号
-
匹配时电平翻转
可以方便地输出一个【频率可调,占空比始终为50%】的PWM波形
比如设置CCR为0,则CNT每次更新清零时,就会产生一次CNT=CCR的事件,导致输出电平翻转一次
每更新两次事件(电平翻转两次),输出为一个周期————输出PWM波形的频率=更新事件频率/2
-
强制为无效电平
与【冻结】模式差不多,如果想暂停波形输出,并且在暂停期间保持低电平
-
强制为有效电平
与【冻结】模式差不多,如果想暂停波形输出,并且在暂停期间保持高电平
-
PWM模式1
可用于【输出频率和占空比都可调】的PWM波形(主要用PWM模式1的向上计数方式)
-
PWM模式2
可用于【输出频率和占空比都可调】的PWM波形(PWM模式2实际上就是PWM模式1输出的取反)
四、PWM基本结构

蓝色线CNT从0开始自增,一直增到黄色线ARR99,在清零之后继续自增
设置一条红色线:CCR,执行输出比较单元设置的比较逻辑
例如:

从图中可以看出占空比受到CCR值设置的调控
如果CCR值设置高一些,输出的占空比就变大;CCR值设置低一些,输出的占空比就变小
五、参数计算

-
PWM 频率: Freq = CK_PSC / (PSC + 1) / (ARR + 1)
PWM周期对应计数器的一个溢出更新周期——PWM频率等于计数器的更新频率
-
PWM 占空比: Duty = CCR / (ARR + 1)
-
PWM 分辨率: Reso = 1 / (ARR + 1)
分辨率(占空比变化步距),ARR越大,CCR能设置的范围就越大,对应的分辨率就越大