主题中讨论的其他器件: C2000WARE、 SysConfig
工具与软件:
TMS320F28375D 控制器用于使用200MHz 的系统时钟和100MHz 的 ePWM 时钟、以1kHz 步进分辨率生成0.9至1.1 MHz 高分辨率 PWM (HRPWM)信号。 
问题在于、在具有500MHz 带宽的示波器中、信号的上升沿或下降沿都会出现占空比抖动(大约10ns 至12ns)。 
对于以下配置、用于 epwm6A。  
EPwm6Regs.TBPRD = 99; 
EPwm6Regs.TBPRDHR = 0; 
EPwm6Regs.TBPHS.bit.TBPHS = 0x0000; 
EPwm6Regs.TBCTL.bit.FREE_SOFT = 3; 
EPwm6Regs.TBCTL.bit.PHSDIR = 0; 
EPwm6Regs.TBCTL.bit.CLKDIV = 0; 
EPwm6Regs.TBCTL.bit.HSPCLKDIV = 0; 
EPwm6Regs.TBCTL.bit.SWFSYNC = 1; 
EPwm6Regs.TBCTL.bit.SYNCOSEL = 0; 
EPwm6Regs.TBCTL.bit.PRDLD = 0; 
EPwm6Regs.TBCTL.bit.PHSEN = 0; 
EPwm6Regs.TBCTL.bit.CTRMODE = 00; 
EPwm6Regs.TBSTS.bit.CTRMAX = 0; 
EPwm6Regs.TBSTS.bit.SYNCI = 0; 
EPwm6Regs.TBSTS.bit.CTRDIR = 0; 
EPwm6Regs.CMPCTL.bit.SHDWBFULL = 0; 
EPwm6Regs.CMPCTL.bit.SHDWAFULL = 0; 
EPwm6Regs.CMPCTL.bit.SHDWBMODE = 0; 
EPwm6Regs.CMPCTL.bit.SHDWAMODE = 0; 
EPwm6Regs.CMPCTL.bit.LOADBMODE = 0x00; 
EPwm6Regs.CMPCTL.bit.LOADAMODE = 0x00; 
EPwm6Regs.CMPA.bit.CMPA = 50; 
EPwm6Regs.CMPB.bit.CMPB = 50; 
EPwm6Regs.AQCTLA.bit.cbd = 00; 
EPwm6Regs.AQCTLA.bit.CBU = 00; 
EPwm6Regs.AQCTLA.bit.CAD = 00; 
EPwm6Regs.AQCTLA.bit.CAU = 01; 
EPwm6Regs.AQCTLA.bit.PRD = 00; 
EPwm6Regs.AQCTLA.bit.ZRO = 10; 
EPwm6Regs.AQCTLB.bit.cbd = 00; 
EPwm6Regs.AQCTLB.bit.CBU = 01; 
EPwm6Regs.AQCTLB.bit.CAD = 00; 
EPwm6Regs.AQCTLB.bit.CAU = 00; 
EPwm6Regs.AQCTLB.bit.PRD = 00; 
EPwm6Regs.AQCTLB.bit.ZRO = 10; 
EPwm6Regs.ETSEL.bit.SOCBEN = 0; 
EPwm6Regs.ETSEL.bit.SOCBSEL = 0; 
EPwm6Regs.ETSEL.bit.SOCAEN = 0; 
EPwm6Regs.ETSEL.bit.SOCASEL = 0; 
EPwm6Regs.ETSEL.bit.INTEN = 0; 
EPwm6Regs.ETSEL.bit.INTSEL = 0; 
EPwm6Regs.AQCSFRC.bit.CSFB = 01; 
EPwm6Regs.AQCSFRC.bit.CSFA = 01; 
EPwm6Regs.HRCNFG.ALL = 0x0; 
       
EPwm6Regs.HRCNFG.bit.EDGMODE = HR_FEP;           
EPwm6Regs.HRCNFG.bit.CTLMODE = HR_CMP;           
EPwm6Regs.HRCNFG.bit.HRLOAD = HR_CTR_PRD; 
      
EPwm6Regs.HRCNFG.bit.EDGMODEB = HR_FEP;          
EPwm6Regs.HRCNFG.bit.CTLMODEB = HR_CMP;          
EPwm6Regs.HRCNFG.bit.HRLOADB = HR_CTR_PRD; 
       
EPwm6Regs.HRCNFG.bit.AUTOCONV = 0; 
EPwm6Regs.HRPCTL.bit.TBPHSHRLOADE = 0;           
EPwm6Regs.HRMSTEP.bit.HRMSTEP = 28; 
EPwm6Regs.HRPCTL.bit.HRPE = 1; 
注意: 
//----- 不同频率的设置--- // 
//------- 对于1MHz、------------------------------------------------------- // 
EPwm6Regs.TBPRD = 99; 
EPwm6Regs.TBPRDHR = 0; 
EPwm6Regs.CMPA.bit.CMPA = 50; 
EPwm6Regs.CMPA.bit.CMPAHR = 0; 
//------- 对于1.1MHz、------------------------------------------------------- // 
EPwm6Regs.TBPRD = 89; 
EPwm6Regs.TBPRDHR = 59577; 
EPwm6Regs.CMPA.bit.CMPA = 45; 
EPwm6Regs.CMPA.bit.CMPAHR = 3386; 
//------- 对于0.9MHz、------------------------------------------------------- // 
EPwm6Regs.TBPRD = 110; 
EPwm6Regs.TBPRDHR = 7281; 
EPwm6Regs.CMPA.bit.CMPA = 55; 
EPwm6Regs.CMPA.bit.CMPAHR = 4110; 
//------------------------------------------------------- // 
那么、抖动的原因可能是什么? 
我们观察到、200MHz ePWM 时钟没有抖动、为 ePWM 使用200MHz 时钟是安全的。 
                  
 
				 
		 
					