【TIM输出比较】


链接: 15-TIM输出比较

1.简介

1.1.输出比较功能

输出比较,英文全称Output Compare,简称OC。它最主要的功能是 可以通过比较计数器CNT和捕获/比较寄存器(Capture/Compare Register)CCR值的关系,来输出电平进行置1、置0的翻转操作,用于输出一定频率和占空比的PWM波形。
每个高级定时器和通用定时器都拥有4个输出比较的通道,可以同时输出4路PWM波形,且高级定时器的前3个通道额外拥有死区生成电路和互补输出的功能(用于驱动三相无刷电机)。4个输出比较通道都有独立的CCR寄存器,但是它们共用同一个CNT计数器。

1.2.PWM

●PWM(Pulse Width Modulation),即脉冲宽度调制,PWM波形是一个数字输出信号,是由高低电平组成的,是一种对模拟电平信号进行数字编码的方法。在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域。也就是说,使用PWM波形,是用来等效地实现一个模拟信号的输出。

● (1)以LED为例:GPIO的输出信号只能是数字信号,如果想通过数字信号输出模拟量,可以通过以下的方法实现:让LED不断点亮、熄灭、点亮、熄灭,当点亮、熄灭的频率足够大时,由于LED的余晖和人眼的视觉暂留效应,LED就会呈现出一个中等亮度。当调控点亮和熄灭的时间比例时就能让LED呈现出不同的亮度级别。(2)对于电机调速也类似:在高频率下不断让电机交替通断,由于电机断电后不会立刻停止,而是由于惯性转动后停下,电机的速度就能维持在一个中等速度。

在这里插入图片描述

● PWM参数:
频率 :f = 1 / Ts(周期的倒数就是频率);变换越快=频率越大(PWM的频率越快,它等效模拟的信号就越平稳,不过同时性能开销就越大;一般来说PWM的频率在几kHz到几十kHz之间。)

占空比:q=Ton/Ts( Ton是高电平的时间,Ts是一个周期的时间。q就是高电平时间相对于整个周期时间的比例);占空比决定了PWM等效出的模拟电压的大小。一般用百分比表示。

分辨率:占空比的变化步距;分辨率就是占空比变化的精细程度。即,占空比最小能以百分之多少的精度变化,它的值可以是1%、0.1%。分辨率的大小要看实际项目的需求定。如果既要高频率,又要高分辨率,就需要硬件电路要有足够的性能。要求不高的情况下,1%的分辨率就足够使用了。

2.输出比较通道

2.1.结构原理图

输出比较通道(通用)
在这里插入图片描述
上图对应的是通用定时器电路里的下图红框部分电路,左边是CNT和CCR比较的结果,右边是输出比较电路,最后通过TIM_CH1输出到GPIO引脚上,然后下面还有三个同样的单元,分别输出到CH2、CH3、CH4。
在这里插入图片描述
主要流程说明:ETRF输入是定时器的一个小功能,一般不用,不需要了解/CNT和CCR1比较产生信号——传入输出模式控制器——改变OC1REF的高低电平——映射到主模式的控制器/主要是通往TIMx_CCER(极性选择,高低电平是否翻转)——输出使能,选择通道——通道输出.

输出比较通道(高级)
在这里插入图片描述在这里插入图片描述

OC1和OC1N是互补输出。死区发生器是防止两个输出同时打开,发热损耗。

2.2.模式分类

在这里插入图片描述
冻结模式:设置后输出停止,高低电平不变。
有效电平和无效电平通常用于高级定时器的说法关断、刹车功能配合表述的,可当成高低电平控制看待。
电平翻转:比如设置CCR=0时候,每次CNT更新清0就会产生一次CNT=CCR的事件,这就会导致输出电平翻转一次,每更新两次,输出为一个周期,占空比始终为50%;改变定时器频率时候,输出波形频率也会随之改变。输出波形的频率=更新频率/2
强制有效/无效电平:想暂停输出,并保存高电平或者低电平。
PWM模式1:频率和占空比都可调
PWM模式2:频率和占空比都可调,二者互为REF电平取反情况。比较灵活。

3.输出PWM波形及参数计算

在这里插入图片描述
黄色是ARR(Auto-Reload Register,自动重装载寄存器)ARR寄存器用于存储定时器计数器(CNT)的自动重装载值。当定时器计数器达到ARR的值时,会发生一次更新事件,计数器会重新从零开始计数。
蓝色是CNT(Counter Register,计数器寄存器)CNT寄存器是定时器的实际计数器寄存器,用于记录定时器当前的计数值。
绿色是CCR(Capture/Compare Register,捕获/比较寄存器)CCR寄存器用于捕获或比较模式,主要用于记录捕获事件的计数器值或者与计数器值进行比较。
在这里插入图片描述

PWM的一个周期如上图中的下面绿色区段的红线区间,可以看出它始终对应着计数器的一个溢出更新周期,所以PWM的频率就等于计数器的更新频率
当CNT = CCR时电路已经置为低电平,故REF为高电平的时间为CNT从0变到29(30个数)的时间。
CCR的值应设置在0到ARR+1的范围里,CCR=ARR+1时占空比是100%,ARR越大,CCR的范围就越大,对应的分辨率就越大.

参数计算公式如下所示:
PWM频率:即计数器的更新频率 Freq = CK_PSC / (PSC + 1) / (ARR + 1)
PWM占空比:Duty = CCR / (ARR + 1)
PWM分辨率:即占空比变化的步距 Reso = 1 / (ARR + 1),以上定义的分辨率是占空比最小的变化步距。ARR越大,CCR的变化范围就越大,分辨率就越高。(占空比变化的越细腻越好)

4.案例所需外设

4.1.案例

1.PWM驱动LED呼吸灯
2.PWM驱动舵机
3.PWM驱动直流电机

4.2.舵机

【舵机简介】
● 舵机是一种根据输入PWM信号占空比来控制输出角度的装置
● 输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~ 2.5ms
● 拆解包含:舵机上盖、输出轴、电机减速齿轮组、电位器、舵机内部控制电板、直流电机
在这里插入图片描述
【舵机硬件电路】
在这里插入图片描述

4.3.直流单机

【直流电机简介】
● 直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时电机正转,当电极反接时电机反转
● 直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作。
● TB6612是一款双路H桥型的直 流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向
在这里插入图片描述
【直流电机硬件电路】
在这里插入图片描述

  • VM就是电机电源的正极,和舵机的电源要求是一样的,要接一个可以输出大电流的电源,电压和电机的额定电压保持一致,比如时5v的电机就接5v电压

  • VCC是逻辑电平输入端,一般和控制器的电源保持一致。比如使用STM32,是3.3v的器件,就接3.3v

  • AO1\AO2\BO1\BO2是两路电机的输出,可以分别接两个电机。AO1和AO2就是A路的两个输出,它的控制端是上面的三个PWMA、AIN1和AIN2,这三个引脚控制下面的A路电机,对应关系如上图的灰色填充,其中PWMA引脚要接PWM信号输出断PA0,AIN1和AIN2引脚可以任意接两个普通的GPIO口,这三个引脚给一个低功率的控制信号,驱动电路就会从VM汲取电流来输出到电机,这样就能完成低功率的控制信号控制大功率设备的目的。右边的BO1及BO2这一路也是和A路的功能和操作方法是完全一样的。

  • STBY引脚意为Stand By,为待机控制引脚。如果接GND,芯片就不工作,处于待机状态。如果接到逻辑高电平VCC(3.3V)芯片就正常工作。如果不需要待机模式的话可以直接接VCC3.3v,如果需要控制可以接入任意一个GPIO口,给高低电平就可以进行控制。

  • 41
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值