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
    +关注

    关注

    146

    文章

    17173

    浏览量

    351656
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5193

    浏览量

    214210
  • 定时器
    +关注

    关注

    23

    文章

    3251

    浏览量

    115003

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

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

收藏 人收藏

    评论

    相关推荐

    stm32g474 qspi不进dma中断是怎么回事?

    stm32g474 qspi 不进dma中断
    发表于 09-13 07:10

    基于ST STM32G474的400W Microinverter之数字电源方案

    大联大友尚集团 HPL (HPLAB) 实验室设计的 400W Micromiverter ( 微型逆变器 ) 方案,使用 ST STM32G4 系列 MCU,同时控制 MPPT 与 Inverter,实现太阳能转换成交流电并回电网。
    的头像 发表于 08-30 12:53 1031次阅读
    基于ST <b class='flag-5'>STM32G474</b>的400W Microinverter之数字电源方案

    stm32g474的开发板很烫的原因?

    stm32g474的开发板很烫
    发表于 07-24 06:59

    基于STM32G474的电机控制,如何在sdk上配置使用spwm

    基于STM32G474的电机控制,如何在sdk上配置使用spwm
    发表于 05-30 06:28

    请问STM32NUCLEO-G474RE烧录失败是什么原因?

    是否是下载的packet有问题?NUCLEO-G474使用的不是Keil.STM32G4xx_DFP.1.6.0吗?
    发表于 05-30 06:21

    STM32G474的HRTIM和高级定时器除了定时精度上有区别外,还有其它什么区别?

    STM32G474的HRTIM和高级定时器除了定时精度上有区别外,还有其它什么区别?什么情况下只能用HRTIM定时器,而用不了高级定时器?有没有哪位大神讲一下!!!
    发表于 05-28 08:15

    STM32G474如何实现带同步整流管的BUCK电路?

    STM32G474 如何实现带同步整流管的BUCK电路
    发表于 05-22 07:53

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源?

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源,而timerB在使用死区模式后无法设置Tb2的置位源但可以设置复位源?
    发表于 05-22 06:23

    STM32G4 FLASH全为0x00的原因?怎么解决?

    请教一下大家,我想测试STLINK UTILITY的Automatic Mode功能(芯片是STM32G474的开发板自带的STM32G474RET6U),来测试一下量产刷程序(配合设置读保护
    发表于 04-08 07:06

    STM32G474除以0会进错误中断,为什么?

    我的编译环境为STM32CubeIDE,芯片为STM32G474,我发现程序中如果有除以0的操作时,会跑到错误中断中。请问能不能通过设置,可以让程序不要跑进错误中断,直接等于当前变量类型的最大值
    发表于 04-01 06:32

    STM32G4如何利用ADC-DMA对全桥电路实现闭环控制?

    开始接触STM32G474,用于对一个全桥电路实现闭环控制,里面包括PI控制,准PR控制,和一个相位环;在学习完输出pwm和ADC-DMA两个模块后无法将两者整合在一起,对于后续步骤更加没有思路
    发表于 03-22 06:40

    Stm32G474 DMA传输全部完毕后,需要产生中断并调运回调函数完成相关操作,如何处理?

    Stm32G474,DMA传输全部完毕后,需要产生中断并调运回调函数完成相关操作。请问我如何处理?没有看到常规的回调函数(例如这样的HAL_TIM_PeriodElapsedHalfCpltCallback)
    发表于 03-15 08:26

    关于STM32G474 ADC多通道数据采集遇到的问题求解

    STM32G474 ADC时钟:168MHz/4=42MHz 分辨率 12bit 单端输入 ADC1 采集6通道数据 采样时间6.5cycle 单端1.65V【0~-10mV左右跳动】 ADC2
    发表于 03-14 08:11

    STM32G474的DAC4无输出怎么解决?

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

    如何判断限流断路器能保护到微断?能否从限流曲线判断?

    ,以避免热量积累和元件损坏。限流断路器通过自动切断电流来实现这种保护,以防止潜在的火灾风险和设备摧毁。 限流断路器的主要功能是在发生过载或故障时切断电流。为了
    的头像 发表于 02-05 15:23 613次阅读