线程中讨论的其他部件: TMS320F2.8377万D
工具/软件:Code Composer Studio
大家好,我正在将TMS32F2811 DSP用于电动机控制应用,在这种应用中,我们使用DPWM技术生成PWM。 我为2811的PWM初始化设置的配置如下所示,并且工作正常。
EvaRegs.EXTCONA.bit.INDCOE=0;
EvaRegs.EXTCONA.bit.QEPIQUAL=0;
EvaRegs.EXTCONA.Bit.QEPIE=0;
EvaRegs.EXTCONA.bit.EVSOCE=0;
EvaRegs.T1PR = 1.5万;
EvaRegs.GPTCONA.Bit.T1PIN = 01;
// EvaRegs.GPTCONA.bit.t2PIN = 01;
EvaRegs.GPTCONA.Bit.T1CMOE = 1;
EvaRegs.GPTCONA.Bit.T2CMPOE = 0;
EvaRegs.GPTCONA.Bit.TCMPOE = 1;
EvaRegs.GPTCONA.Bit.T1TOADC = 00;
EvaRegs.GPTCONA.Bit.T2TOADC = 00;
EvaRegs.GPTCONA.Bit.T1CTRIPE= 0;
EvaRegs.GPTCONA.Bit.T2CTRIPE= 0;
EvaRegs.ACTRA.Bit.CMP1ACT =10;
EvaRegs.ACTRA.Bit.CMP2ACT =01;
EvaRegs.ACTRA.Bit.CMP3ACT =10;
EvaRegs.ACTRA.Bit.CMP4ACT =01;
EvaRegs.ACTRA.Bit.CMP5ACT =10;
EvaRegs.ACTRA.Bit.CMP6ACT =01;
EvaRegs.DBTCONA.Bit.DBTPS = 0x7;
EvaRegs.DBTCONA.Bit.EDBT1 = 1;
EvaRegs.DBTCONA.bit.EDBT2 = 1;
EvaRegs.DBTCONA.Bit.EDBT3 = 1;
EvaRegs.DBTCONA.Bit.DBT = 0xF;
EvaRegs.COMCONA.bit.C1TRIPE =0;
EvaRegs.COMCONA.bit.C2TRIPE =0;
EvaRegs.COMCONA.bit.C3TRIPE =0;
EvaRegs.COMCONA.bit.rsvd:2;
EvaRegs.COMCONA.bit.FCMP1OE =0;
EvaRegs.COMCONA.bit.FCMP2OE =0;
EvaRegs.COMCONA.bit.FCMP3OE =0;
EvaRegs.COMCONA.bit.PDPINTASTATUS=1;
EvaRegs.COMCONA.bit.FCOMPOE =0;
EvaRegs.COMCONA.bit.ACTRLD =00;
EvaRegs.COMCONA.bit.SVENABLE=0;
EvaRegs.COMCONA.bit.CLD =00;
EvaRegs.COMCONA.bit.CENABLE= 1;
EvaRegs.T1CON.Bit.TECMPR = 1;
EvaRegs.T1CON.bit.TCLD10 = 00;
EvaRegs.T1CON.Bit.TCLKS10=00;
EvaRegs.T1CON.Bit.Tenable = 0;
// EvaRegs.T1CON.bit.rsvd2 = 0;
EvaRegs.T1CON.Bit.TPS = 2;
EvaRegs.T1CON.Bit.TMODE = 1;
// EvaRegs.T1CON.bit.rsvd = 1;
EvaRegs.T1CON.bit.free = 1;
EvaRegs.T1CON.bit.soft = 1;
EvaRegs.T2CON.Bit.SET1PR = 0;
EvaRegs.T2CON.bit.TECMPR = 0;
EvaRegs.T2CON.Bit.TCLD10 = 00;
EvaRegs.T2CON.Bit.TCLKS10= 11;
EvaRegs.T2CON.bit.tenable = 0;
EvaRegs.T2CON.Bit.T2SWT1 = 0;
EvaRegs.T2CON.Bit.TPS =000;
EvaRegs.T2CON.Bit.TMODE =10;
// EvaRegs.T2CON.bit.rsvd = 1;
EvaRegs.T2CON.bit.free = 1;
EvaRegs.T2CON.bit.soft = 1;
EvaRegs.CAPCONA.ALL = 0x0000;
EvaRegs.T2PR = 6.5535万;
EvaRegs.T2CMPR = 6.5534万;
EvaRegs.T2CNT = 6.5535万;
EvaRegs.T2CON.bit.tenable = 1;
但在新开发中,我们使用的是TMS320F2.8375万D,并且我们面临着夹紧区域的电流峰值问题(有关DPWM问题的详细信息,请参阅以下链接 e2e.ti.com/.../58.4628万 )。 我为TMS320F2.8375万D的PWM初始化设置的配置如下所示。
EPwm1Regs.TBPRD = 1万;
EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;
EPwm1Regs.TBCTR = 0x0000;
EPwm1Regs.TBCTL.bit.FREE_SOFT = 3;
EPwm1Regs.TBCTL.bit.PHSDIR = 1;
EPwm1Regs.TBCTL.bit.CLKDIV = 1;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;
EPwm1Regs.TBCTL.bit.SWFSYNC = 0;
EPwm1Regs.TBCTL.bit.SYNCOSEL = 3;
EPwm1Regs.TBCTL.bit.PRDLD = 0;
EPwm1Regs.TBCTL.bit.PHSEN = 0;
EPwm1Regs.TBCTL.bit.CTRMODE = 2;
// EPwm1Regs.TBSTS.bit.rsvd1 = 0;
EPwm1Regs.TBSTS.bit.CTRMAX = 0;
EPwm1Regs.TBSTS.bit.SYNCI = 0;
EPwm1Regs.TBSTS.bit.CTRDIR = 0;
// EPwm1Regs.CMPCTL.bit.rsvd1 = 0;保留1
EPwm1Regs.CMPCTL.bit.SHDWBFULL = 0;
EPwm1Regs.CMPCTL.bit.SHDWAFULL = 0;
// EPwm1Regs.CMPCTL.bit.rsvd2 = 0;保留2
EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;
EPwm1Regs.CMPCTL.bit.LOADBMODE = 0;
EPwm1Regs.CMPCTL.bit.LOADAMODE = 2;
EPwm1Regs.CMPA.Halt.CMPA = 1万;
EPwm1Regs.CMPB.Halt.CMPB = 1万;
EPwm1Regs.AQCTLA.bit.CBD = 00;
EPwm1Regs.AQCTLA.bit.CBU = 00;
EPwm1Regs.AQCTLA.bit.CAD = 01;
EPwm1Regs.AQCTLA.bit.CAU = 10;
EPwm1Regs.AQCTLA.bit.PRD = 00;
EPwm1Regs.AQCTLA.bit.ZRO = 00;
// EPwm1Regs.AQCTLB.bit.rsvd = 0;
EPwm1Regs.AQCTLB.bit.CBD = 00;
EPwm1Regs.AQCTLB.bit.CBU = 00;
EPwm1Regs.AQCTLB.bit.CAD = 10;
EPwm1Regs.AQCTLB.bit.CAU = 01;
EPwm1Regs.AQCTLB.bit.PRD = 00;
EPwm1Regs.AQCTLB.bit.ZRO = 00;
EPwm1Regs.AQSFRC.bit.RLDCSF = 11;
//EPwm1Regs.AQCSFRC.bit.rsvd1 = 0;
EPwm1Regs.AQCSFRC.bit.CSFB = 00;
EPwm1Regs.AQCSFRC.bit.CSFA = 01;
EPwm1Regs.DBCTL.bit.out模式=3;
EPwm1Regs.DBCTL.bit.POLSEL = 00;
EPwm1Regs.DBCTL.bit.in_mode = 0;
EPwm1Regs.DBRED =160;
EPwm1Regs.DBFED = 160;
EPwm1Regs.ETSEL.bit.SOCBEN = 0;
EPwm1Regs.ETSEL.bit.SOCBSEL = 0;
EPwm1Regs.ETSEL.bit.SOCAEN = 0;
EPwm1Regs.ETSEL.bit.SOCASEL = 0;
EPwm1Regs.ETSEL.bit.inten = 0;
EPwm1Regs.ETSEL.bit.INTSEL =000;
EPwm1Regs.etps.bit.SOCBCNT = 00;
EPwm1Regs.etps.bit.SOCBPRD = 00;
EPwm1Regs.etps.bit.SOCACNT = 00;
EPwm1Regs.ETPS.bit.SOCAPRD = 00;
// EPwm1Regs.etps.bit.rsvd1 = 0;
EPwm1Regs.ETPS.bit.INTCNT = 00;
EPwm1Regs.etps.bit.INTPRD = 01;
EPwm1Regs.ETFLG.ALL = 0;
EPwm1Regs.ETFLG.ALL = 0;
EALLOW;
//EPwm1Regs.TZsel.bit.rsvd1 = 0;
EPwm1Regs.TZsel.bit.DCAEVT1=0;
EPwm1Regs.TZsel.bit.OSAHT5 = 0;
EPwm1Regs.TZsel.bit.OSAHT4 = 0;
EPwm1Regs.TZsel.bit.OSAHT3 = 1;
EPwm1Regs.TZsel.bit.OSAHT2 = 1;
EPwm1Regs.TZsel.bit.OSAHT1 = 1;
//EPwm1Regs.TZsel.bit.rsvd2 = 0;
EPwm1Regs.TZsel.bit.CBC6 = 0;
EPwm1Regs.TZsel.bit.CBC5 = 0;
EPwm1Regs.TZsel.bit.CBC4 = 0;
EPwm1Regs.TZsel.bit.CBC3 = 0;
EPwm1Regs.TZsel.bit.CBC2 = 0;
EPwm1Regs.TZsel.bit.CBC1 = 0;
//EPwm1Regs.TZCTL.bit.rsvd = 0;
EPwm1Regs.TZCTL.bit.TZA = 00;
EPwm1Regs.TZCTL.bit.TZB = 00;
EPwm1Regs.TZCTL.bit.DCAEVT1=0;
//EPwm1Regs.TZEINT.bit.rsvd1 = 0;
EPwm1Regs.TZEINT.Bit.OST = 0;
EPwm1Regs.TZEINT.Bit.CBC = 0;
//EPwm1Regs.TZEINT.bit.rsvd2 = 0;
EPwm1Regs.TZDCSEL.bit.DCBEVT1 = TZ_DCBH_HI;
EPwm1Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 0xF;
EPwm1Regs.DCBHTRIPSEL.bit.TRIPINPUT4 = 1;
EPwm1Regs.TZsel.bit.DCBEVT1 = 1;
EPwm1Regs.DCBCTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm1Regs.DCBCTL.bit.EVT1FRCSYNCSEL = DC_EVT_Async;
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX2 = 0;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX2 = 1;
EPwm2Regs.TZDCSEL.bit.DCBEVT1 = TZ_DCBH_HI;
EPwm2Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 0xF;
EPwm2Regs.DCBHTRIPSEL.bit.TRIPINPUT4 = 1;
EPwm2Regs.TZsel.bit.DCBEVT1 = 1;
EPwm2Regs.DCBCTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm2Regs.DCBCTL.bit.EVT1FRCSYNCSEL = DC_EVT_Async;
EPwm3Regs.TZDCSEL.bit.DCBEVT1 = TZ_DCBH_HI;
EPwm3Regs.DCTRIPSEL.bit.DCBHCOMPSEL = 0xF;
EPwm3Regs.DCBHTRIPSEL.bit.TRIPINPUT4 = 1;
EPwm3Regs.TZsel.bit.DCBEVT1 = 1;
EPwm3Regs.DCBCTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm3Regs.DCBCTL.bit.EVT1FRCSYNCSEL = DC_EVT_Async;
EPwmXbarRegs.TRIP5MUX0TO15CFG.bit.MUX7 = 1;
EPwmXbarRegs.TRIP5MUX0TO15CFG.bit.MUX9 = 1;
EPwmXbarRegs.TRIP5MUXENABLE.bit.MUX7 = 1;
EPwmXbarRegs.TRIP5MUXENABLE.bit.MUX9 = 1;
EPwm1Regs.DCBHTRIPSEL.bit.TRIPINPUT5 =1;
EPwm2Regs.DCBHTRIPSEL.bit.TRIPINPUT5 =1;
EPwm3Regs.DCBHTRIPSEL.bit.TRIPINPUT5 =1;
EPwm1Regs.TZCLL.bit.OST = 1;
EPwm1Regs.TZCLL.bit.CBC = 0;
EPwm1Regs.TZCLL.bit.INT =1;
EPwm1Regs.ETSEL.ALL = 0;
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.ETSEL.bit.SOCASEL = 3;
EPwm1Regs.ETPS.bit.SOCAPRD = 1;
EDIS;
请为我提供减少电流峰值的解决方案。
谢谢。




