引言
在高精度定时器中,可以使用外部事件来对 PWM 输出进行封锁,并可自动恢复;在高级控制定时器中,可以使用 Break 或是 Clr_input 来对 PWM 输出进行封锁, 然后也可以自动恢复,其中 Break 必须结合 AOE 置位来实现自动恢复。
虽然都可以实现封波后的自动恢复,但是在二者之间还是存在一些区别。
PWM 封波-自动恢复原理分析
在高精度定时器中,通过配置 PWM 的 Set 与 Reset 事件,当 Set/Reset 事件发生时,PWM 输出做出对应的响应。要实现封波-自动恢复,只需配置合适的 Reset 事件,Reset 发生时,触发 PWM 输出 inactive 电平,当 Reset 事件消失后,PWM 将在下个 Set 事件点重新输出。
在高级控制定时器中,PWM 的工作方式有 PWM_Mode1 与 PWM_Mode2,基于定时器比较器的值与当前 Counter 的值来结合 PWM 模式来确定输出电平的状态。要实现封波-自动恢复,通过 Break(with AOE)或是 Clr_input 功能,当 Break 信号或是 Clr_input 信号电平有效时,PWM 输出会被封锁,此时端口电平跟当时的 PWM 配置有关;当 Break 信号或是 Clr_input 信号电平无效时,PWM 将在下个 UEV(更新事件)或是新的 PWM 的周期恢复输出。
下面通过实际的测试与波形来详细说明。
高精度定时器的 “封波-自动恢复”
使用的是外部事件 1(EEV1)关联外部过流故障信号,利用 EEV1 来封锁 PWM。配置如下(测试中使用的配置是高电平触发事件):
使用以上配置时,只要故障信号持续高电平的时间和 PWM 的 Set 事件不重叠,那么定时器在下个 PWM 周期能正常输出 PWM,如下图所示。
但是如果 Fault 信号高电平的持续时间覆盖了 PWM 的 set 事件,那么 PWM 将一直输出低电平,直到 Fault 信号高电平不再覆盖 PWM 的 Set 件,如下图所示。
另外,高精度定时器中的还可以工作的沿模式,例如配置 EEV1 工作在上升沿触发模式,如下图所示。
高级控制定时器的“封波-自动恢复”
高级控制定时器中,break 为电平有效模式(测试中使用的配置是高电平触发 Break)。当出现 Break 信号出现高电平时,PWM 封波,如果 Break 信号高电平未跨周期,那么在下个周期 PWM 能正常输出,如下图所示。
但是如果 Break 信号高电平跨周期,即使高电平持续时间没有到达比较事件点,下个周期 PWM 依旧继续“封波”,直到 Break 信号恢复低电平的下个周期 PWM 才会正常输出,如下图所示。
小结
综上以上的分析与实验结果:
• 高精度定时器封波基于事件触发,封波后只要故障消失,则在下个触发来临时就可以立即生效,恢复 PWM 输出。
• 高级控制定时器封波后,即使故障消失后,也要等到下个 UEV 事件或是新的 PWM周期才能恢复 PWM 输出。
原文标题:工程师笔记|高精度定时器与高级控制定时器 PWM 封波后再恢复的区别
文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !