This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377S实现交错并联两路BUCK的变频控制

Other Parts Discussed in Thread: TMS320F28377S, TIDM-1001

背景:拟采用两路BUCK交错并联工作降低输出电压纹波,BUCK均工作在DCM模式下,采用固定Ton时间调节频率的方式实现。主控芯片为TMS320F28377s,目前遇到的问题是两路EPWM信号(EPWM7A和EPWM8A)实现180°交错时出现了从模块(EPWM8A)导通时间突然增大,导致该路电感饱和的问题,详见如下波形

下方ZOOM窗口中黄色波形为主模块EPWM7A的驱动信号波形,蓝色波形为从模块EPWM8A的驱动信号波形,绿色波形为EPWM8A对应BUCK的电感电流波形。

程序实现方式是:Ton时间固定,在EPWM7A模块中设置其计数器CTR=0时刻产生同步信号给EPWM8A;EPWM8A中使能PHASE LOAD功能,在接收到EPWM7A发出的同步信号后将TBPHS中的值(0.5*Ts)赋给EPWM8A的CTR,以此实现两路信号交错180°。两路EPWM均采用增计数方式,CTR=0时输出置高,CTR=CMPA时刻,输出置低。

问题:在黄色波形(EPWM7A)的最后一个上升沿时刻EPWM8模块的TBPHS中的值被加载到EPWM8模块的CTR中,而该时刻EPWM8A的CTR的计数值小于EPWM8模块的CPMA寄存器值,因此EPWM8A输出仍为高。被加载的TBPHS值大于CMPA的值,使得CTR中的值出现了跳变,从小于CMPA的值直接跳转到了TBPHS的值,因此不会出现CTR=CMPA的情况,因而EPWM8A输出一直为高,导致了导通时间过长电感饱和的问题。(最后时刻驱动信号被置低了是因为过流导致电流采样信号触发了TZ保护功能被强制置低,而非CTR=PRD情况的出现)

想请教一下:

1、以上对于导通时间异常增加的分析是否有道理?

2、28377s EPWM模块交错实现机制对于变频条件下的交错并联是不是存在局限性?

3、类似于这样的问题应该通过何种方式解决?

谢谢!

  • 你的问题描述非常清楚且专业。我认为你的分析是准确的。应该就是这个原因。

    这是交错并联Ton控制的一大问题。这也是为什么377里的pwm模块加入了GLDCTL功能模块。这个模块就是为了解决这个问题设计的。从你的描述中看,你应该没有使用这个模块来更新两路pwm的相关寄存器。

    你可以查看一下数据手册中关于这个GLDCTL(global PWM load control register)寄存器的描述,并应用到你的程序中应该这个问题就会得到解决。

  • 感谢您的回复。

    我仔细阅读了关于GLDCTL寄存器的描述,根据我的理解,该寄存器的主要功能简单来说就是:针对单个EPWM模块(EPWMx)内11个相关寄存器(在GLDCFG中定义),从其影寄存器向实际寄存器中载入数值的过程以同一个事件作为载入的触发信号。

    针对我之前所提的问题,使用global load似乎并没有改善的可能。之前所提问题的关键在于CMPA中的值、TBPHS中的值(0.5*TBPRD)以及相位加载时刻EPWM8A计数器CTR中的值三者的大小关系,(相位加载时刻为EPWM7A计数器CTR=0时刻)。我对DSP的EPWM相移功能理解不到位,还请您帮我详细讲讲如何用GLDCTL来实现准确的交错并联,或者有例程分享也可以。

    谢谢您!

  • 抱歉,忽略了你用的是两个PWM模块,如果是这样的话你可以配置EPWM 中的XLINK寄存器(EPWMXLINK),将两个PWM模块的相关寄存器同时更新。



  •       暂时还是没有想清楚该怎么做才能避免前述问题,请问TI目前有这种例程吗,就是变频控制的交错并联的数字控制实现,能否提供相关资料让我学习一下(TIDM-1001看过了,与需求不太吻合)

    谢谢!

  • 我的理解是利用XLINK寄存器中的GLDCTL2LINK寄存器,将EPWM7和EPWM8的GLDCTL同步动作,就可以实现你需要的功能?不知道这种办法是否有遗漏的点。

  • 对于EPWMXLINK寄存器的使用我想向您咨询更多的细节,我在EPWM8的初始化程序中加入如下代码,

    EPwm8Regs.EPWMXLINK.bit.CMPALINK=6;
    EPwm8Regs.EPWMXLINK.bit.TBPRDLINK=6;

    其实现的功能是在EPWM7的CMPA寄存器和TBPRD寄存器加载影寄存器内容的同时,EPWM8模块中的对应寄存器也进行加载过程,两个模块的对应寄存器加载过程完全同步。假设EPWM7模块影寄存器加载以CTR=0为触发信号,则当EPWM7.TBCTR=0时刻,EPWM7和EPWM8的寄存器同时被刷新,不知这样理解是不是正确?

    感谢您的帮助,谢谢!

  • 您好,我们现在调试多相交错也遇到这个问题,请问您解决了吗?能否留个联系方式 ,请教您一下,谢谢!我的联系方式是扣扣452277813.