您的位置:首页 > 其它

STM32学习--定时器(高级定时器)

2016-11-23 20:48 411 查看
高级定时器

1、功能增加



由上图可了解到高级定时器在通用定时器上增加了三个功能部分:

① 时基部分:增加重复次数计数器和RCR寄存器。允许在指定数量的计数周期后产生更新事件,更新相应寄存器,其实际用处暂不了解,减少中断或DMA处理的资源占用?

②输入部分:增加刹车输入,可产生刹车事件。其源可为外部BKIN口和CCS事件,可控制输的。主要用在安全方面,如遇到紧急事件或系统异常时关闭输出口。

③输出部分:这部分增加功能较多,特别在1~3通道增加死区控制、互补输出、刹车响应及几种输出模式控制。

2、重复次计数器

增加重复次数计数器和RCR寄存器,当RCR寄存器为0时实际和通用定时器一样用。当其不为0时,重复次计数器会随下列事件,当递减至0时才会产生更新事件,在其不为0时计数器溢出或下溢均不产生更新事件。

重复计数器在下述任一条件成立时递减:

● 向上计数模式下每次计数器溢出时,

● 向下计数模式下每次计数器下溢时,

● 中央对齐模式下每次上溢和每次下溢时。

TIMx_RCR:重复计数寄存器

只有低8位有效,每次向下计数器REP_CNT达到0,会产生一个更新事件并且计数器REP_CNT重新从REP值开始计数。TIMx_RCR寄存器写入的新值只在下次周期更新事件发生时才起作用。

在PWM模式中, (REP+1)对应着:

- 在边沿对齐模式下, PWM周期的数目;

- 在中心对称模式下, PWM半周期的数目。

3、互补输出、死区插入、刹车功能

个人理解这个也主要用于电机控制,死区是避免直通烧坏外围器件。互补输出,有利于用于控制不同的驱动电路。

也可只使用CCxN输出,而不使能CCx输出,对于管脚选择也更有选择余地。

死区DTG用来设置死区时间,可根据外围器件的特性如电平转换延时、电源开关延时等进行设置。

刹车功能其源可为外部BKIN口和CCS事件,由BKE选择使能,极性由BKP设置。

相关寄存器:

CCxN输出电平依赖于MOE、 OSSI、 OSSR、OISx、 OISxN和CCxE位的值。



与通用定时器不同,TIMx_CCER寄存器中1~3通道每个通道多2个控制位CC1NE和CC1NP,分别用来使能反向输出和设定反向极性。

TIMx_CR2 中增加OISx和OISxN确定输出空闲状态状态。



TIMx_BDTR 刹车和死区寄存器

MOE: 主输出使能;

AOE: 自动输出使能

BKP: 刹车输入极性

BKE: 刹车功能使能

OSSR: 运行模式下“关闭状态”选择

OSSI: 空闲模式下“关闭状态”选择

LOOK[1:0]: 锁定设置 (Lock configuration)

该位为防止软件错误而提供写保护。

00:锁定关闭,寄存器无写保护;

01:锁定级别1,不能写入TIMx_BDTR寄存器的DTG、 BKE、 BKP、 AOE位和TIMx_CR2寄存

器的OISx/OISxN位;

10:锁定级别2,不能写入锁定级别1中的各位,也不能写入CC极性位(一旦相关通道通过

CCxS位设为输出, CC极性位是TIMx_CCER寄存器的CCxP/CCNxP位)以及OSSR/OSSI位;

11:锁定级别3,不能写入锁定级别2中的各位,也不能写入CC控制位(一旦相关通道通过

CCxS位设为输出, CC控制位是TIMx_CCMRx寄存器的OCxM/OCxPE位);

注:在系统复位后,只能写一次LOCK位,一旦写入TIMx_BDTR寄存器,则其内容冻结直至复

UTG[7:0]: 死区发生器时间设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stm32