Hi
在使用280049 CMPSS模块进行峰值电流控制,加入了RAMP功能,其同步源来自PWM5 SYNC0信号,
Cmpss6Regs.RAMPDECVALS = 10;
Cmpss6Regs.RAMPMAXREFS = 1000;
Cmpss6Regs.RAMPDLYS.bit.DELAY = 10;
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 1; // RAMPSTS -> DACVAL
Cmpss6Regs.COMPDACCTL.bit.RAMPSOURCE = 4; //EPWM5SYNCO -> RAMPSOURCE
Cmpss6Regs.COMPDACCTL.bit.RAMPLOADSEL = 1; //
但通过在线仿真发现DACHVALA寄存器数据一直是一个很小的值,导致CMPSS6输出一直为高,请问以上配置有问题么?哪里可以找到280049 RAMP配置例程?
作为对比,
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 0; // DACHVALS -> DACVAL
可以看到DACHVALA=DACHVALS.
Joe Reng:PWM5同步信号配置如下
EPWM_setSyncOutPulseMode(EPWM5_BASE,EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);EPWM_setPhaseShift(EPWM5_BASE,(0));
EPwm5Regs.HRPCTL.bit.PWMSYNCSEL = 1;
观察寄存器,好像是同步信号并未传输到CMPSS模块
Hi
在使用280049 CMPSS模块进行峰值电流控制,加入了RAMP功能,其同步源来自PWM5 SYNC0信号,
Cmpss6Regs.RAMPDECVALS = 10;
Cmpss6Regs.RAMPMAXREFS = 1000;
Cmpss6Regs.RAMPDLYS.bit.DELAY = 10;
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 1; // RAMPSTS -> DACVAL
Cmpss6Regs.COMPDACCTL.bit.RAMPSOURCE = 4; //EPWM5SYNCO -> RAMPSOURCE
Cmpss6Regs.COMPDACCTL.bit.RAMPLOADSEL = 1; //
但通过在线仿真发现DACHVALA寄存器数据一直是一个很小的值,导致CMPSS6输出一直为高,请问以上配置有问题么?哪里可以找到280049 RAMP配置例程?
作为对比,
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 0; // DACHVALS -> DACVAL
可以看到DACHVALA=DACHVALS.
Green Deng:
回复 Joe Reng:
抱歉没太多使用过这两个功能,目前TI也没有发布针对这款芯片的对应例程。就这个问题我会咨询一下其他工程师之后给你答复
Hi
在使用280049 CMPSS模块进行峰值电流控制,加入了RAMP功能,其同步源来自PWM5 SYNC0信号,
Cmpss6Regs.RAMPDECVALS = 10;
Cmpss6Regs.RAMPMAXREFS = 1000;
Cmpss6Regs.RAMPDLYS.bit.DELAY = 10;
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 1; // RAMPSTS -> DACVAL
Cmpss6Regs.COMPDACCTL.bit.RAMPSOURCE = 4; //EPWM5SYNCO -> RAMPSOURCE
Cmpss6Regs.COMPDACCTL.bit.RAMPLOADSEL = 1; //
但通过在线仿真发现DACHVALA寄存器数据一直是一个很小的值,导致CMPSS6输出一直为高,请问以上配置有问题么?哪里可以找到280049 RAMP配置例程?
作为对比,
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 0; // DACHVALS -> DACVAL
可以看到DACHVALA=DACHVALS.
Green Deng:
回复 Joe Reng:
问一下,你的ePWM确保是在正常运行的吗?
Hi
在使用280049 CMPSS模块进行峰值电流控制,加入了RAMP功能,其同步源来自PWM5 SYNC0信号,
Cmpss6Regs.RAMPDECVALS = 10;
Cmpss6Regs.RAMPMAXREFS = 1000;
Cmpss6Regs.RAMPDLYS.bit.DELAY = 10;
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 1; // RAMPSTS -> DACVAL
Cmpss6Regs.COMPDACCTL.bit.RAMPSOURCE = 4; //EPWM5SYNCO -> RAMPSOURCE
Cmpss6Regs.COMPDACCTL.bit.RAMPLOADSEL = 1; //
但通过在线仿真发现DACHVALA寄存器数据一直是一个很小的值,导致CMPSS6输出一直为高,请问以上配置有问题么?哪里可以找到280049 RAMP配置例程?
作为对比,
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 0; // DACHVALS -> DACVAL
可以看到DACHVALA=DACHVALS.
Joe Reng:
回复 Green Deng:
确保正常运行。
问题找到了,RAMPSTS取值的话是取了RAMP_MAX的高12位,之前没有注意到这一点。
PWM同步CMPSS的配置是对的,谢谢你的帮助
Hi
在使用280049 CMPSS模块进行峰值电流控制,加入了RAMP功能,其同步源来自PWM5 SYNC0信号,
Cmpss6Regs.RAMPDECVALS = 10;
Cmpss6Regs.RAMPMAXREFS = 1000;
Cmpss6Regs.RAMPDLYS.bit.DELAY = 10;
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 1; // RAMPSTS -> DACVAL
Cmpss6Regs.COMPDACCTL.bit.RAMPSOURCE = 4; //EPWM5SYNCO -> RAMPSOURCE
Cmpss6Regs.COMPDACCTL.bit.RAMPLOADSEL = 1; //
但通过在线仿真发现DACHVALA寄存器数据一直是一个很小的值,导致CMPSS6输出一直为高,请问以上配置有问题么?哪里可以找到280049 RAMP配置例程?
作为对比,
Cmpss6Regs.COMPDACCTL.bit.DACSOURCE = 0; // DACHVALS -> DACVAL
可以看到DACHVALA=DACHVALS.
Green Deng:
回复 Joe Reng:
非常感谢你的反馈