
1. 引言 在高精度定时器中,可以使用外部事件来对 PWM 输出进行封锁,然后可自动恢复;在高级控制定时器中,可以使用 Break 或是 Clr_input 来对 PWM 输出进行封锁, 然后可自动恢复,其中 Break 必须结合 AOE 置位来实现自动恢复。虽然都可以实现封波后的自动恢复,但是在二者还是存在一些区别。 2. 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 的周期恢复输出。 下面通过实际的测试与波形来详细说明。 3. 高精度定时器的 “封波-自动恢复” 使用的是外部事件 1(EEV1)关联外部过流故障信号,利用 EEV1 来封锁 PWM。配置如下(测试中使用的配置是高电平触发事件): ![]() 使用以上配置时,只要故障信号持续高电平的时间和 PWM 的 Set 事件不重叠,那么定时器在下个 PWM 周期能正常输出 PWM,如下图所示。 ![]() C1(黄色):高精度 PWM 输出,受 Fault 信号控制 C2(蓝色):高精度 PWM 输出,与 C1 同频同相同占空比,但是不受 Fault 信号控制,作为对比参考 C3(红色):Fault 信号(EEV1),高电平触发 但是如果 Fault 信号高电平的持续时间覆盖了 PWM 的 set 事件,那么 PWM 将一直输出低电平,直到 Fault 信号高电平不再覆盖 PWM 的 Set 事件,如下图所示。 ![]() C1(黄色):高精度 PWM 输出,受 Fault 信号控制 C2(蓝色):高精度 PWM 输出,与 C1 同频/同相/同占空比,但是不受 Fault 信号控制,作为对比参考 C3(红色):Fault 信号(EEV1),高电平触发 另外,高精度定时器中的还可以工作的沿模式,例如配置 EEV1 工作在上升沿触发模式,如下图所示。 使用以上配置时,只有故障信号的上升沿才能触发封波,与故障电平无关,接下来只要set 事件出现,PWM 输出都可以正常翻转。如下图所示。 ![]() 完整版请查看:附件 |
LAT1045 高精度定时器与高级控制定时器PWM封波后再恢复的区别_v1.0.pdf
下载846.24 KB, 下载次数: 1
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
经验分享 | STM32G4 UART+TIMER+DMA应用示例
经验分享 | STM32定时器同步启动示例及应用提醒
经验分享 | STM32 TIMER+DMA输出PWM异常二案例
经验分享 | 更改STM32定时器周期后的输出疑问分析
基于定时器捕获测量脉宽的应用示例
狂欢三】STM32C031使用TIM定时器DMA方式实现WS2812彩灯输出(三)
【狂欢三】STM32C031使用TIM定时器DMA方式实现PWM输出(二)
【狂欢三】STM32C031使用TIM定时器PWM输出
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法