Part Number:TMS320F28335
各位工程师们好,现在我有个问题;我用F28335做三相交错并联双向DCDC,PWM1,3,5各移相120°,PWM2,4,6各移相120°;我用PWM1的过零点触发PWM中断,之后就进行AD采样,得三相电感电流;但是目前我只有PWM1时采样的电感电流值是正确的,采样在了电感电流上升沿的中电,但是其他的PWM动作时,采样的电感电流与PWM1互差了120°,采样的电感电流值就不在上升沿的中点了,这应该怎么样才可以时PWM1~6都动作时,都可以采样到电感电流上升沿的中电呀;期望工程师们的回答,感谢!
Yale Li:
AD采样可以由EPWM模块的ET子模块自动触发。每一路采样可以单独设置在每一路PWM信号的特定时刻进行采样:
sprui07_TMS320x2833x, TMS320x2823x Technical Reference Manual第222页
,
?? ?:
这种方法我也试了,我用PWM2做了实验,还是在电感电流的下降沿采样的,我的配置如下:
EPwm2Regs.ETSEL.bit.SOCASEL = 2; EPwm2Regs.ETSEL.bit.SOCAEN = 1; EPwm2Regs.ETPS.bit.SOCAPRD = 1;// EPwm2Regs.ETPS.bit.SOCACNT = 1;// EPwm1Regs.ETSEL.bit.INTSEL = 1;// EPwm1Regs.ETSEL.bit.INTEN = 1;// AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=1; //start AD// asm(" RPT #10 || NOP");
while (AdcRegs.ADCST.bit.INT_SEQ1== 0); // Wait for interrupt AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; mMainRlyOn; wDcIlACurrSample = (INT16U)(((ADCRESULT2>>4)+(ADCRESULT3>>4))/2); fDcIlACurrReal = ((float)(wDcIlACurrSample * 3)/4095); fDcIlACurrReal = (fDcIlACurrReal – 1.495)*70-0.132882819; // fDcIlACurrReal = fDcIlACurrRealy – fDcIlACurrRealOffset;
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;
,
?? ?:
更改了ET的触发模式,采样点都不变,一直在一个位置
,
Yale Li:
你是想让所有PWM对应的AD采样在同一时刻发生?还是每一路都自定义采样发生的时间?