Hi expert:
我们在epwm模块的应用中遇到一些问题,请帮忙看一下。如下为我们EPWM模块的配置方式,上升计数模式,驱动上升沿使用CMPB产生,实际应用中需要将CMPB由图中的CMPB1(ZERO)变化到CMPB2(PRD-T1),测试中发现EPWM6A会出现常低,对应互补的EPWM6B常高的问题。看样子是CMPB在由0突变到PRD的过程中,EPWM6A的上升沿没有出来。请帮忙看一下是什么原因,谢谢!
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.
Hi expert:
我们在epwm模块的应用中遇到一些问题,请帮忙看一下。如下为我们EPWM模块的配置方式,上升计数模式,驱动上升沿使用CMPB产生,实际应用中需要将CMPB由图中的CMPB1(ZERO)变化到CMPB2(PRD-T1),测试中发现EPWM6A会出现常低,对应互补的EPWM6B常高的问题。看样子是CMPB在由0突变到PRD的过程中,EPWM6A的上升沿没有出来。请帮忙看一下是什么原因,谢谢!
Hi Han Meng,
因为装载是在0时刻,如果不改变CMPB的话本身应该在0时刻拉高,改变了之后就会在(PRD-T1)处拉高,所以从上个周期的CMPA到本周期的(PRD-T1)就会持续处于低电平状态。
Hi Han Meng,
您把CMPA以及CMPB的所有比较值左移(比如左移一到两个计数值),仍然选择在CTR=0处装载。
这样做相当于是将波形整体左移了一个或两个计数值,不影响占空比;但是却保证了CMPB无论在哪里,都在装载时刻之前,避免了中间的空周期。
Hi Yale:
这种方法在下降沿只往左移的情况下看起来是可以的。但是我们的应用需求是需要上升沿在ZERO值左右移动,即CMPB值会在100~(PRD-100)之间来回变化,这种方法看起来也不能解决这个问题呢
Han Meng,
可以把装载模式从shadow改为立即装载试一下;
或者将计数模式改为上下计数模式(up-down count mode),重新设计周期以及占空比,并将装载时刻(LOADBMODE)改为在CTR = Zero以及CTR = PRD处都装载。
这本质上来说并不算是一个问题,因为一切的动作都是按照器件的设定来执行。
解决方案也可以根据您的具体设计,增加相应的TZ保护。比如在控制开关管时,当AFE检测到开关管过流时,通过TZ来将相应的PWM置低来关断管子。当然也可以在程序中改变比较值时主动配置TZ来使PWM进行相应的动作,并且TZ的动作可以配置成one shot,即动作只保持一个周期。