部件号:LAUNCHXL-F2.8377万S
工具/软件:Code Composer Studio
哈洛
是否可能使用HRPWM在周期和占空比中创建两个PWM信号并使用固定死区?
我要创建具有特定周期和占空比的EPWMxA,EPWMxB应该是具有相同死区的A的反向信号。 我从controlSUITE示例修改了HRPWM_PRDUPDOWN SFO_cpu01项目。 但信道B上始终存在抖动
如何避免抖动?
// //采用HRPWM的ePWM通道寄存器配置 // ePWMxA切换低/高,MEP控制在上升沿 // EALLOW; CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;//在ePWM中禁用TBCLK EDIS; EPwm2Regs.TBCTL.bit.PRDLD = TB_shadow;//设置阴影负载 EPwm2Regs.TBPRD =周期; // PWM频率=1/(2*TBPRD) EPwm2Regs.CMPA.bit.CMPA =句点/ 2;//初始设置占空比50 % EPwm2Regs.CMPA.bit.CMPAHR =(1<8);//初始化HRPWM扩展 EPwm2Regs.CMPB.Bit.CMPB =周期/ 2;//初始设置占空比50 % EPwm2Regs.CMPB.all |=1; EPwm2Regs.TBPHS.ALL = 0; EPwm2Regs.TBCTR = 0; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//选择Up-Down //计数模式 EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; // TBCLK = SYSCLKOUT EPwm2Regs.TBCTL.bit.FREE_SOFT = 11; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;//在CTR = 0上加载CMPA EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHAME; EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADO; EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; // PWM切换高/低 EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR; EPwm2Regs.AQCTLB.bit.CBU = AQ_SET; // PWM切换高/低 EPwm2Regs.AQCTLB.bit.CBD = AQ_CLEAR; EALLOW; EPwm2Regs.HRCNFG.ALL = 0x0; EPwm2Regs.HRCNFG.bit.EDGMODE = HR_BEP; // MEP控制开启 //两条边线。 EPwm2Regs.HRCNFG.bit.CTLMODE = HR_CMP; // CMPHR和TBPRDHR //已更改 // HR控制。 EPwm2Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO_PRD;//在CTR上加载= 0 //和CTR = TBPRD EPwm2Regs.HRCNFG.bit.EDGMODEB = HR_BEP; // MEP控制开启 //两条边线 EPwm2Regs.HRCNFG.bit.CTLMODEB = HR_CMP; // CMPBHR和TBPRDHR // HR控制 EPwm2Regs.HRCNFG.bit.HRLOADB = HR_CTR_ZERO_PRD;//在CTR上加载= 0 //和CTR = TBPRD EPwm2Regs.HRCNFG.bit.AUTOCONV = 1; //为启用自动转换 // HR期间 EPwm2Regs.HRPCTL.bit.TBPHSHRLOADE = 1;//启用TBPHSHR同步 //(对于上一个上一个上一个上一个上一个上 //计数HR控制) EPwm2Regs.HRPCTL.bit.HRPE = 1; //打开高分辨率 //期间控制。 CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; //在中启用TBCLK // ePWM EPwm2Regs.TBCTL.bit.SWFSYNC = 1; //同步高 //解析阶段至 //开始HR期间 EDIS; // ohne EPwm2Regs.DBCTL.bit.POLSEL EPwm2Regs.DBRED EPwm2Regs.DBFED PWM2A = PWM2B // Setzen der Totzeit //有源低互补PWM -设置死区 EPwm2Regs.DBCTL.bit.out模式= DB_FULL启用;//启用上升边缘延迟和下降边缘延迟 EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; //极性选择控制EPWMxB反转|| 10:有源高互补(AHC)。 EPWMxB反转。 EPwm2Regs.DBCTL.bit.in_mode = DBA_All; //死带输入模式控制:EPWMxA是上升和下降边缘的来源 EPwm2Regs.DBRED = EPWM2_DB; //上升边缘延迟值 EPwm2Regs.DBFED = EPWM2_DB; //下降边缘延迟值