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.
尊敬的团队:
我的客户希望实施 HRPWM 相移控制,但他发现,在配置完成后,HRPWM 相移不会实施,如下所示。 配置错误在哪里?
PWM 初始化:
void InitEPwm2Example() //滞后臂 { // // Setup TBCLK // EALLOW; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm2Regs.TBPRD = period1; // Set timer period // EPwm2Regs.TBPHS.all = 0; EPwm2Regs.TBPHS.half.TBPHS = PHS; // Phase is 0 EPwm2Regs.TBPHS.half.TBPHSHR = 0; // Phase is 0 EPwm2Regs.CMPA.half.CMPA=272; // EPwm2Regs.CMPB = 100; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBCTR = 0x0000; // Clear counter EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR; // EPwm2Regs.AQCTLB.bit.PRD = AQ_SET; EPwm2Regs.AQCTLB.bit.CAU = AQ_NO_ACTION; EPwm2Regs.AQCTLB.bit.PRD = AQ_NO_ACTION; EPwm2Regs.DBCTL.bit.IN_MODE = 3; EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; // EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm2Regs.DBFED = db; //死区300ns EPwm2Regs.DBRED = db; EDIS; EALLOW; EPwm2Regs.HRCNFG.all = 0x0; EPwm2Regs.HRCNFG.bit.EDGMODE = HR_BEP; EPwm2Regs.HRCNFG.bit.CTLMODE = HR_PHS; EPwm2Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO; EPwm2Regs.HRCNFG.bit.SWAPAB=0; EPwm2Regs.HRCNFG.bit.SELOUTB=0; EPwm2Regs.HRCNFG.bit.AUTOCONV = 0; EPwm2Regs.HRPCTL.bit.HRPE = 1; EPwm2Regs.HRPCTL.bit.TBPHSHRLOADE = 1; EDIS; EALLOW; EPwm2Regs.TZCTL.bit.TZA = 2; EPwm2Regs.TZCTL.bit.TZB = 2; EDIS; }
相移:
PID_Value.pidvalue = 100.5; EPwm2Regs.TBPHS.half.TBPHS = (Uint16) PID_Value.pidvalue; EPwm2Regs.TBPHS.half.TBPHSHR =( (Uint16) (( (PID_Value.pidvalue - EPwm2Regs.TBPHS.half.TBPHS)*61+0.5))) <<8;
此致
您好,格林,
[引用 userid="306637" url="~/support/icros/c2000-icroms-group/c2f/c2000-iclms -forume/1081107/tms320f28069-phase-shift-on-HRPWM"],但他发现在配置完成后未实施 HRPWM 相移。输出波形中是否出现应用的正常相位?
[引用 userid="306637" url="~/support/icros/c2000-icro-group/c2f/c2000-微控制器-forume/1081107/tms320f28069-phase-shift-On-HRPWM"]配置错误的位置是什么?我看到您启用了高分辨率期间,是应用于高分辨率相位,负载还是两者兼有?
此致,
Marlyn
是的,他可以看到 输出波形中应用了正常相位。
该应用程序用于高分辨率阶段。
您好,格林,
如果应用程序用于高分辨率阶段,则不应设置高分辨率期间启用(HRPE)位:EPwm2Regs.HRPCTL.bit.HRPE =0;
此致,
Marlyn