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.
28034移植到280025,重新配置CBC功能寄存器,测试时CBC没有工作,想请教一下,280025,CBC寄存器如何配置?
谢谢!
首先推荐一个文档,F28035向F280025迁移的文档,虽然跟CBC本身没什么关系,但可能跟你的程序运行会有关系:https://www.ti.com.cn/cn/lit/an/zhca980/zhca980.pdf?ts=1657515641926&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fproduct%252Fcn%252FTMS320F28035
参考2:芯片的例程:C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f28002x\examples\epwm\epwm_ex1_trip_zone.c
您好,非常感谢,您能帮忙看一下寄存器配置有没有问题吗?想先排除这方面的原因。代码如下:
EALLOW;
AnalogSubsysRegs.CMPHPMXSEL.bit.CMP1HPMXSEL = 4;//A1:HighPositive_CMP1 (HPMXSEL=4)
AnalogSubsysRegs.CMPLPMXSEL.bit.CMP1LPMXSEL = 1;//A11:LowPositive_CMP1 (LPMXSEL=1)
AnalogSubsysRegs.CMPHPMXSEL.bit.CMP3HPMXSEL = 4;//A14:HighPositive_CMP3 (HPMXSEL=4)
//使用比较器1的高比较器
Cmpss1Regs.COMPCTL.bit.COMPDACE = 1;//使能比较器
Cmpss1Regs.COMPCTL.bit.COMPHSOURCE = 0;//CMP1H的负端使用内部DAC
Cmpss1Regs.COMPCTL.bit.CTRIPHSEL = 0;//比较器异步输出到ePWM_XBAR
Cmpss1Regs.COMPCTL.bit.COMPHINV = 1;//输出反向,大于DACVAL发送1;小于DACVAL发送0
Cmpss1Regs.DACHVALS.bit.DACVAL = 512;//CBC_VOL_COMP;//512
//使用比较器1的低比较器
Cmpss1Regs.COMPCTL.bit.COMPLSOURCE = 0;//CMP1L的负端使用内部DAC
Cmpss1Regs.COMPCTL.bit.CTRIPLSEL = 0;//比较器异步输出到ePWM_XBAR
Cmpss1Regs.COMPCTL.bit.COMPLINV = 1;//输出反向,大于DACVAL发送1;小于DACVAL发送0
Cmpss1Regs.DACLVALS.bit.DACVAL = 512;//CBC_VOL_COMP;//512
//使用比较器3的高比较器
Cmpss3Regs.COMPCTL.bit.COMPDACE = 1;//使能比较器
Cmpss3Regs.COMPCTL.bit.COMPHSOURCE = 0;//CMP1H的负端使用内部DAC
Cmpss3Regs.COMPCTL.bit.CTRIPHSEL = 0;//比较器异步输出到ePWM_XBAR
Cmpss3Regs.COMPCTL.bit.COMPHINV = 1;//输出反向,大于DACVAL发送1;小于DACVAL发送0
Cmpss3Regs.DACHVALS.bit.DACVAL = 512;//CBC_VOL_COMP;//512
//配置ePWM_XBAR
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX0 = 0;
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX4 = 0;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX0 = 1;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX4 = 1;
//配置DAC
//U相CBC设置
//上桥
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm1Regs.TZDCSEL.bit.DCAEVT2 = 1;//Low Active
//下桥
EPwm1Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm1Regs.TZDCSEL.bit.DCBEVT2 = 1;//Low Active
//将比较器输出作为CBC的触发源
EPwm1Regs.TZSEL.bit.DCAEVT2 = 1;
EPwm1Regs.TZSEL.bit.DCBEVT2 = 1;
//CBC最终输出动作
EPwm1Regs.TZCTL.bit.DCAEVT2 = 1;//强制epwm1为高
EPwm1Regs.TZCTL.bit.DCBEVT2 = 1;//强制epwm1为高
//V相CBC设置
//上桥
EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm2Regs.TZDCSEL.bit.DCAEVT2 = 1;//Low Active
//下桥
EPwm2Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm2Regs.TZDCSEL.bit.DCBEVT2 = 1;//Low Active
//将比较器输出作为CBC的触发源
EPwm2Regs.TZSEL.bit.DCAEVT2 = 1;
EPwm2Regs.TZSEL.bit.DCBEVT2 = 1;
//CBC最终输出动作
EPwm2Regs.TZCTL.bit.DCAEVT2 = 1;//强制epwm1为高
EPwm2Regs.TZCTL.bit.DCBEVT2 = 1;//强制epwmB为高
//W相CBC设置
//上桥
EPwm3Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm3Regs.TZDCSEL.bit.DCAEVT2 = 1;//Low Active
//下桥
EPwm3Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 3;//DCA's input select the ePWM_xbar_Trip4
EPwm3Regs.TZDCSEL.bit.DCBEVT2 = 1;//Low Active
//将比较器输出作为CBC的触发源
EPwm3Regs.TZSEL.bit.DCAEVT2 = 1;
EPwm3Regs.TZSEL.bit.DCBEVT2 = 1;
//CBC最终输出动作
EPwm3Regs.TZCTL.bit.DCAEVT2 = 1;//强制epwmA为高
EPwm3Regs.TZCTL.bit.DCBEVT2 = 1;//强制epwmB为高
EDIS;