工具与软件:
尊敬的专家:
我打算使用 CMPSS 模块和 ePWM 模块实现一种电流控制、但我发现不同触发源产生的波之间存在差异。 问题如下:
恒定 ePWM 设置:
EPwm1REGS.TBPRD = 0xFFFF;
EPwm1REGS.TBCTL.bit.CTRMODE = TB_COUNT_DOWN;
如果我按如下方式配置 EPWM 的 AQ 子模块:
EPwm1REGS.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm1REGS.AQCTLA.bit.ZRO = AQ_SET;
EPwm1REGS.CMPA.bit.CMPA = 0x7FFF;
ePWM1A 的波形为:

但是、如果我将 T1事件和 T2事件设置如下:
EPwm1REGS.DCTRIPSEL.bit.DCAHCOMPSEL = 0x6;//CMPSS1.CTRIPH --> TRIPIN7 --> DCTRIP.A. HIGH
EPwm1REGS.DCTRIPSEL.bit.DCBHCOMPSEL = 0x7;//CMPSS1.CTRIPL --> TRIPIN8 --> DCTRIP.B. HIGH
EPwm1REGS.TZDCSEL.bit.DCAEVT1 = 0B010;//DCAH =高电平、DCAL =不用考虑
EPwm1REGS.TZDCSEL.bit.DCBEVT1 = 0B010;//DCBH =高电平、DCBL =不用考虑
EPwm1REGS.AQTSRCSEL.bit.T1SEL = 0x0;//0000:DCAEVT1
EPwm1REGS.AQTSRCSEL.bit.T2SEL = 0x2;//0010:DCBEVT1
EPwm1REGS.AQCTLA2.bit.T1d = AQ_CLEAR;
EPwm1REGS.AQCTLA2.bit.T2D = AQ_SET;
我通过依次运行2个代码组以4kHz ADC_ISR ()的形式手动反转 CMPSS1 H&L 的输出:
组1:
Cmpss1Regs.COMPCTL.bit.COMPLINV = 0;
Cmpss1Regs.COMPCTL.bit.COMPHINV = 1;
组2:
Cmpss1Regs.COMPCTL.bit.COMPLINV = 1;
Cmpss1Regs.COMPCTL.bit.COMPHINV = 0;
ePWM1A 的波形在理论上与上图类似、但与下图类似:

更改为 AQ_CLEAR 时看起来它具有高阻抗 、因此我将 EPwm1REGS.AQCTLA2.bit.T1D 更改为 AQ_TOGGLE、但下降沿仍然类似。
那么、我如何在这种情况下立即使下降沿下降(就像以前的图像一样)(上升沿和下降沿必须由 CMPSS 输出信号触发)?