0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32G474逐波限流保护的实现

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-05-06 09:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

电源设计中经常会使用逐波限流保护来保证电流不超过限定的最大值,若在短时内多次触发逐波限流保护则强制封锁 PWM 输出,让系统进入故障保护状态,在这个过程中需要对逐波限流触发次数进行计数,以此来判断是否进入故障保护,本文针对该功能,基于 STM32G474 高精度定时器,介绍如何实现逐波限流保护以及保护次数计数。

逐波限流原理介绍

所谓逐波限流指在电源工作过程中,对电感电流或是功率管导通电流进行实时监测,一旦超出设定范围,则在该 PWM 周期内立即关闭相关的 PWM 驱动,直到下个 PWM 周期再自动使能PWM 驱动,若电流信号一直超限,则一直封锁 PWM,直到电流恢复正常的下一个新的 PWM 周期后,才能重新使能 PWM 输出。工作过程示意图如下图所示,OCP 表示过流保护,高电平表示电流超限。

dacfd13e-ccd5-11ec-bce3-dac502259ad0.png

STM32G474 逐波限流保护的实现

STM32G474 的高精度定时器除了能产生高精度的 PWM 波外,还包含了外部事件管理器,能对多达 10 个外部事件进行处理。可以设置外部事件的触发源、触发方式(沿触发或是电平触发)、相应方式(同步或是异步)以及事件的滤波方式。外部事件的一个最重要的作用就是用来对输出的PWM 进行控制,触发 PWM 的 Set 与 Reset 动作。

dadf0b40-ccd5-11ec-bce3-dac502259ad0.png

在触发源的选择上,每个外部事件可以从 4 个源中进行选择:

• 外部 pin 脚输入

•内部比较器输出

• 其他定时器触发信号(如 TIM1/2/3_TRGO)

ADC 看门狗事件(ADCx_ADC1/2/3)

对应逐波限流功能,可以选择外部 pin 脚输入或是内部比较器输出,推荐的方式为内部比较器输出。外部电流采样信号直接输入到片上比较器(COMPx_INP),比较器的输出结果作为外部事件触发源。

daee7c9c-ccd5-11ec-bce3-dac502259ad0.png

基于以上的介绍,利用 CubeMx 工具进行相应的配置来说明整个功能的实现过程,以高精度定时器中的 Timer A 为例,主要介绍外部事件与逐波限流保护的配置,其他的配置不再赘述。外部事件的配置如下,触发源为内部比较器 2 的输出,高电平有效。

db0d1c42-ccd5-11ec-bce3-dac502259ad0.png

为了使用内部比较器,必须对内部对应的比较器进行配置,一般选择 DAC 的输出作为比较器的参考,所以还需要对 DAC 进行配置。比较器的配置如下,设置回差,减少比较器输出抖动。

db2e04f2-ccd5-11ec-bce3-dac502259ad0.png

DAC 的配置如下(如果选择 VREFINT 或是COMPx_INM 则无需配置 DAC):

db3e9196-ccd5-11ec-bce3-dac502259ad0.png

PWM 输出的配置如下,PWM 的 Reset 除了比较事件外,添加外部事件源。

db5c7dc8-ccd5-11ec-bce3-dac502259ad0.png

基于以上的配置,在生成的工程代码中添加必要的外设启动函数即可,如下:

db70dbd8-ccd5-11ec-bce3-dac502259ad0.png

通过示波器查看波形,黄色表示输出 PWM 驱动;绿色内部比较器输出信号,输出为高时表示限流保护,触发封波,输出为低则 PWM 可正常输出。

db903f0a-ccd5-11ec-bce3-dac502259ad0.png

逐波限流触发次数计数的实现

很多应用中不但需要实现逐波限流,还需要对某段时间内触发逐波限流的次数进行计数,以此来判断系统是否出现短路或是过载,然后决定系统是否进入永久保护状态,除非软件再次使能输出。

在高精度定时器中,外部事件不但可以用来触发 PWM 动作,它还可以被定时器内部的捕获单元捕获,所以可以通过读取捕获标志位来判定外部事件是否发生并进行计数;另外如本文采用了内部比较器的输出作为外部事件的触发源,可以通过直接读取比较器的比较中断标识或是输出状态的方式来判定外部事件是否发生并进行计数。

下面以读取捕获标识为例说明如何实现该功能,该方法更加通用。在 CubeMx 中配置高精度定时器的 Capture 功能,如下:

dba5b1a0-ccd5-11ec-bce3-dac502259ad0.png

在软件中添加如下的代码,假如判断周期为 1 秒,本文给出伪代码的形式,具体代码需根据实际的应用进行修改。

dbb9f1b0-ccd5-11ec-bce3-dac502259ad0.png

小结

本文对逐波限流的原理进行了简单介绍,给出了如何利用 STM32G474 系列 MCU 的高精度定时器中的相关功能实现逐波限流以及逐波限流计数的方案。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18628

    浏览量

    387506
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5847

    浏览量

    223860
  • 定时器
    +关注

    关注

    23

    文章

    3361

    浏览量

    121763

原文标题:工程师笔记|逐波限流保护实现方案

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ‌基于STM32G474的数字电源控制板设计解析与应用指南

    STMicroelectronics STEVAL-DPSG474Q数字电源控制盘基于STM32G4系列的STM32G474QE微控制器。STEVAL-DPSG474Q可控制需要高引脚
    的头像 发表于 10-15 13:59 799次阅读
    ‌基于<b class='flag-5'>STM32G474</b>的数字电源控制板设计解析与应用指南

    求助,关于STM32G474使用HRTIME完成两路180度移相问题求解

    开发平台 STM32G474RET6CUBEMX+MDK 现在的问题是 我已经完成了移向 使用的是主定时器做同步 使能了TIMA TIMB两个定时器的period和主定时器的一致 设置了200khz
    发表于 07-24 08:29

    STM32G474RBT3 HRTIME 与 TIM 相位差如何消除?

    使用STM32G474RB芯片时钟配置是170M,HRTIME 和 TIM4 都设置为相同频率 2400Hz, 但它们的输出存在相位差,请问有什么方法可以消除这个相位差?
    发表于 07-23 06:54

    STM32G474如何实现Buck变换器的COT控制模式?

    我想用STM32G474实现恒定导通时间模式控制,如下图所示,我打算使用片上比较器实现VOUT和Vref的比较功能以开通pwm,但是要如何实现
    发表于 07-10 06:35

    有一个关于STM32G474双BANK的测试问题求解答

    工程师朋友,您好有一个关于STM32G474 双BANK的测试问题请教各位:一个LED 闪烁的测试程序已经在IAR环境构建成功,使用STM32CubeProgrammer 加载到0X800 0000
    发表于 06-17 07:15

    求助,关于STM32G474双BANK的测试问题求解

    工程师朋友,您好有一个关于STM32G474 双BANK的测试问题请教各位:一个LED 闪烁的测试程序已经在IAR环境构建成功,使用STM32CubeProgrammer 加载到0X800 0000
    发表于 06-11 07:57

    stm32G474的flash模式如何判定?

    请教各位,使用的芯片是stm32g474cbt6,按照手册说法,single bank是单一flash区域,最小擦除是4k,dual bank是支持双flash区域,一边操作不影响另外一块,最小擦除
    发表于 03-12 08:18

    stm32g474 hrtim中怎么使用dual channel DAC trigger?

    stm32g474 hrtim 中怎么使用 dual channel DAC trigger
    发表于 03-12 07:33

    STM32G474 ADC多通道采集结果为同一通道结果是怎么回事?

    STM32G474ADC 配置为DMA模式采集3路电压数据,用HRTIM 触发AD,绝大多数时间正常,在某些输入电压下,会出现3路ADC采到的数据为同一个值,且这个值不再随外部电压变化而变化,此时程序还在正常运行。只有重启单片机才恢复正常。
    发表于 03-11 07:05

    stm32g474的开发板很烫的原因?

    stm32g474的开发板很烫
    发表于 03-10 08:30

    STM32G474用ymodem传文件时,传输停止了是怎么回事?

    我现在用的芯片是STM32G474VET6,我想根据AN4657,来实现用UART进行IAP。我下载了示例代码,进行了简单的修改和适配。生成了一个test_iap的代码和test_bin的代码。然后
    发表于 03-10 07:14

    STM32G474利用高精度HRTIM怎么捕获外部波形计算波形频率?

    STM32G474 利用高精度HRTIM怎么捕获外部波形计算波形频率,想用STM32Cube配置工程代码,网上查了很多资料,没有看到这个用法。希望大神指导一下。
    发表于 03-10 06:29

    stm32G474RE cordic外设的1~101的ln运算怎么配置?

    有哪位大神用过stm32G474RE cordic外设,咨询一下1~101的ln运算怎么配置?
    发表于 03-07 08:29

    STM32G474的DAC4无输出怎么解决?

    STM32G474 的DAC4采用定时器4触发dma,OUT1连接到比较器5,测试下来 DAC4没输出,是配置哪里有问题吗 定时器4的配置: DAC4: 比较器5: DAC4的DMA: normal 改circular 改过不行memory 勾上也试过 不行。 配置哪里有问题吗
    发表于 03-07 06:06

    STM32G474RCT6 STM32G0B1VET6 微控制器 IC MCU 32BIT FLASH LQFP

    能级别的应用衍生产品时实现出色的效率。 明佳达 STM32G474RCT6 IC MCU 32BIT 256KB FLASH 64LQFP RAM大小:128 KB 工作温度:-40 ℃ 至 85 ℃ 耗散
    发表于 12-31 11:59