STMCU小助手
发布时间:2022-8-1 21:21
|
1. 前言 在电源设计中经常会使用逐波限流保护来保证电流不超过限定的最大值,若在短时内多次触发逐波限流保护则强制封锁 PWM 输出,让系统进入故障保护状态,在这个过程中需要对逐波限流触发次数进行计数,以此来判断是否进入故障保护,本文针对该功能,基于 STM32G474 高精度定时器,介绍如何实现逐波限流保护以及保护次数计数。 2. 逐波限流原理介绍 所谓逐波限流指在电源工作过程中,对电感电流或是功率管导通电流进行实时监测,一旦超出设定范围,则在该 PWM 周期内立即关闭相关的 PWM 驱动,直到下个 PWM 周期再自动使能PWM 驱动,若电流信号一直超限,则一直封锁 PWM,直到电流恢复正常的下一个新的 PWM 周期后,才能重新使能 PWM 输出。工作过程示意图如下图所示,OCP 表示过流保护,高电平表示电流超限。
3. STM32G474 逐波限流保护的实现 STM32G474 的高精度定时器除了能产生高精度的 PWM 波外,还包含了外部事件管理器,能对多达 10 个外部事件进行处理。可以设置外部事件的触发源、触发方式(沿触发或是电平触发)、相应方式(同步或是异步)以及事件的滤波方式。外部事件的一个最重要的作用就是用来对输出的PWM 进行控制,触发 PWM 的 Set 与 Reset 动作。
在触发源的选择上,每个外部事件可以从 4 个源中进行选择: • 外部 pin 脚输入 • 内部比较器输出 • 其他定时器触发信号(如 TIM1/2/3_TRGO) • ADC 看门狗事件(ADCx_ADC1/2/3) 对应逐波限流功能,可以选择外部 pin 脚输入或是内部比较器输出,推荐的方式为内部比较器输出。外部电流采样信号直接输入到片上比较器(COMPx_INP),比较器的输出结果作为外部事件触发源。
基于以上的介绍,利用 CubeMx 工具进行相应的配置来说明整个功能的实现过程,以高精度定时器中的 Timer A 为例,主要介绍外部事件与逐波限流保护的配置,其他的配置不再赘述。 外部事件的配置如下,触发源为内部比较器 2 的输出,高电平有效。
为了使用内部比较器,必须对内部对应的比较器进行配置,一般选择 DAC 的输出作为比较器的参考,所以还需要对 DAC 进行配置。 比较器的配置如下,设置回差,减少比较器输出抖动。
DAC 的配置如下(如果选择 VREFINT 或是 COMPx_INM 则无需配置 DAC):
PWM 输出的配置如下,PWM 的 Reset 除了比较事件外,添加外部事件源。
基于以上的配置,在生成的工程代码中添加必要的外设启动函数即可,如下:
通过示波器查看波形,黄色表示输出 PWM 驱动;绿色内部比较器输出信号,输出为高时表示限流保护,触发封波,输出为低则 PWM 可正常输出。
完整版请查看:附件 |
LAT1046 逐波限流保护实现方案_v1.0.pdf
下载507.02 KB, 下载次数: 17
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
一个软件引起的 LSE 驱动不良的问题
STM32 GUI LTDC 最大像素时钟评估方法
STM32 Cordic 运算速度评估
全新OpenSTLinux 6.1版本发布
ST-LINK Utility介绍、下载、安装和使用教程
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
微信公众号
手机版