STMCU小助手
发布时间:2022-5-31 18:00
|
引言 在高精度定时器中,可以使用外部事件来对 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 输出。 |
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
微信公众号
手机版