打印
[应用相关]

TIM输出比较

[复制链接]
256|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
输出比较的简介
输出比较英文写作OC (Output Compare)
输出比较可以通过比较CNT和CCR寄存器值的关系,来对输出电平进行置高或者置低或者翻转的操作,用于输出一定频率和占空比的PWM波形
常见应用例子如:呼吸灯,调速电机等
CCR(Capture/Compare Register的缩写,及捕获/比较寄存器)
CNT与CCR之间的逻辑关系
CNT计数自增,CCR是我们给定的一个值
PWM简介
Pulse Width Modulation 脉冲宽度调制
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速领域
PWM的参数:
频率 =  
占空比 =
分辨率 = 占空比变化步距
如何理解上述所说的:PWM可用于等效获得模拟参量呢?

在我们通常点亮LED实验中,我们只能给LED置1或者置0,也就是亮或者灭。但是当我们以一个很高的频率点亮熄灭,点亮熄灭,点亮熄灭...的时候,LED就会呈现出中等亮度,具体的亮暗程度就取决于亮的时间的占空比。

同理:我们不断地给电机通电断电,通电断电,通电断电...就可以让电机的速度维持在一个中等速度。

使用特权

评论回复
沙发
欢乐家园|  楼主 | 2024-4-11 14:28 | 只看该作者
定时器的输出比较模块输出PWM

根据上面这张图,我们关注输出模式控制器这一模块。它的输入端是CNT和CCR的大小关系,输出则是oc1ref的高低电平。

在输出模式控制器中有许多输出比较模式,一般来说最常用也是这里要介绍的是PWM模式
其中具体选模式1还是模式2,向上计数还是向下计数都是可以在代码中进行配置的,这两个模式可以输出频率和占空比都可调的波形。

接下来重点介绍PWM基本结构(该图对应PWM模式1)

我们首先关注右上角的图,其中黄线代表ARR的值,蓝线代表CNT的值,红线代表CCR的值

CNT从0开始自增,一直增到ARR,也就是99,之后清0,再继续自增...一直循环下去

可以看到,我们设置CCR为30,当蓝线在红线下面时,输出高电平;当蓝线在红线上面时,输出低电平,对应PWM模式1的执行逻辑。

在这里我们发现:当我们将CCR的值设高,高电平的时间就延长,占空比升高。对应回我们的两个例子的现象就是,灯变得更亮,电机转的更快。

流程图中的REF指的就是一个频率可调,占空比也可调的PWM波形。最终再经过极性选择和输出使能,通向GPIO口。

使用特权

评论回复
板凳
欢乐家园|  楼主 | 2024-4-11 14:28 | 只看该作者
参数计算
PWM频率:Freq = CK_PSC / (PSC + 1) / (ARR + 1)

PWM占空比:Duty = CCR / (ARR + 1)

PWM分辨率:Reso = 1 / (ARR + 1)

其中CK_PSC是系统频率72MHz,PSC是预分频系数

举个例子

如果我们要产生一个频率为1kHz,占空比为50%,分辨率为1%的PWM波形

那么

CK_PSC / (PSC + 1) / (ARR + 1) = 1000

CCR / (ARR + 1) = 50%

1 / (ARR + 1) = 1%

解得:

ARR = 99,CCR = 50,PSC = 719

使用特权

评论回复
地板
欢乐家园|  楼主 | 2024-4-11 14:29 | 只看该作者
直流电机及其驱动


电机(左)

驱动电路(右)

直流电机有两个电极,当电极正接时,电机正转;反接则反转。
直流电机属于大功率器件,GPIO口无法直接驱动,需要配合驱动电路来操作
查表控制电机正转或反转

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

894

帖子

1

粉丝