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.

TMS320F280025: 硬件过流保护比较器通过大电流封波时间变长

Part Number: TMS320F280025

最近在进行异步电机V相与电源负级的短路保护测试,做硬件过流保护遇到的问题 首先明确DACHVALS影子寄存器与峰值电流的对应关系为 :

DACHVALS = 3050(±15)时  峰值电流为320A

DACHVALS = 3180(±15)时  峰值电流为400A

DACHVALS = 3320(±15)时  峰值电流为450A

所遇问题如下:

在DACHVALS设置为3050(±15)或3180(±15)时(也就是峰值电流为320或400A时EPWM封波),封波时电流最大不超过800A 且封波速度小于10微秒 如图

但是在DACHVALS设置为3320(±15)时(峰值电流为450A时封波),封波时电流频繁出现在1500A以上才能封波且封波速度为25微秒左右,

这个情况在3050(±15)或3180(±15)时几乎不会出现。如图

我检查了我的底层配置 找不出什么明显的问题 请问各位大佬有没有遇到相似的问题?代码段如下

Cmpss2Regs.COMPDACCTL.bit.DACSOURCE = 0; //DAC更新数据来自于其影子寄存器
Cmpss2Regs.COMPDACCTL.bit.SELREF = 0; //VDDA作为DAC的参考电压:2.5?
Cmpss2Regs.COMPDACCTL.bit.SWLOADSEL = 0; //使用系统时钟同步DAC
Cmpss2Regs.COMPCTL.bit.COMPHSOURCE = 0; //高侧比较器方向输入端为DAC
Cmpss2Regs.COMPCTL.bit.COMPDACE = 1; //比较器DAC使能
//CMP3HP输入信号
AnalogSubsysRegs.CMPHPMXSEL.bit.CMP3HPMXSEL = 1; //选择C2引脚作为高侧比较器3的同向输入端

//比较器之后的滤波配置====================================================================================
Cmpss2Regs.COMPCTL.bit.COMPHINV = 0; //比较器输出不反相
Cmpss2Regs.COMPCTL.bit.ASYNCHEN = 0; // 异步比较器输出不馈入OR门与锁存数字滤波器输出
//比较器滤波之后的输出配置==============================================================================
//H反向输入端
Cmpss2Regs.DACHVALS.bit.DACVAL = 3320; //配置DAC的影子寄存器值
Cmpss2Regs.COMPHYSCTL.bit.COMPHYS = 3;
//输出端
Cmpss2Regs.COMPCTL.bit.CTRIPHSEL = 0; //比较器输出非滤波信号
Cmpss2Regs.COMPCTL.bit.CTRIPOUTHSEL = 0;
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX4 = 0; // TRIP4触发C2的CTRIPH信号
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX4 = 1; //复用开关使能

EALLOW;
EPwm5Regs.TZCLR.all = 127;
//DC输入端-----------------------------------------------------------------------------------------------------------------
EPwm5Regs.DCAHTRIPSEL.bit.TRIPINPUT4 = 1;//输入
EPwm5Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 15;
EPwm5Regs.TZDCSEL.bit.DCAEVT1 = 2;// DCAH=1
// EPwm5Regs.TZDCSEL.bit.DCAEVT2 = 2;
EPwm5Regs.DCACTL.bit.EVT1SRCSEL = 0;//DCAEVT1 Source Signal Select
EPwm5Regs.DCACTL.bit.EVT1FRCSYNCSEL = 1;//DCAEVT1 Force Synchronization Signal Select 异步
EPwm5Regs.DCACTL.bit.EVT1LATSEL = 0;//DCAEVT1事件触发时立即更新事件标志,不会延迟。
//对TZ进行控制---------------------------------------------------------------------------------------------------------
EPwm5Regs.TZSEL.all = 0;
EPwm5Regs.TZCTL.bit.TZA = 2;
EPwm5Regs.TZCTL.bit.TZB = 2;
EPwm5Regs.TZCTL.bit.DCAEVT1 = 2;
EPwm5Regs.TZSEL.bit.DCAEVT1 = 1;
EPwm5Regs.TZCTL2.bit.ETZE = 0;

EPwm5Regs.TZCLR.all = 127;
//DC输入端-----------------------------------------------------------------------------------------------------------------
EPwm5Regs.DCBHTRIPSEL.bit.TRIPINPUT5 = 1;//输入
EPwm5Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 15;
EPwm5Regs.TZDCSEL.bit.DCBEVT1 = 2;// DCBH=1
// EPwm5Regs.TZDCSEL.bit.DCBEVT2 = 2;
EPwm5Regs.DCBCTL.bit.EVT1SRCSEL = 0;//DCBEVT1 Source Signal Select
EPwm5Regs.DCBCTL.bit.EVT1FRCSYNCSEL = 1;//DCBEVT1 Force Synchronization Signal Select 异步
EPwm5Regs.DCBCTL.bit.EVT1LATSEL = 0;//DCAEVT1事件触发时立即更新事件标志,不会延迟。
//对TZ进行控制---------------------------------------------------------------------------------------------------------
EPwm5Regs.TZCTL.bit.DCBEVT1 = 2;
EPwm5Regs.TZSEL.bit.DCBEVT1 = 1;
EPwm5Regs.TZCTL2.bit.ETZE = 0;