器件型号:LAUNCHXL-F28377S
大家好!
我尝试使用 F28377S 评估板的 ePWM 模块生成高频/低占空比信号、并且在信号周期小于~900ns 时测量奇怪的干扰。
这是我的 ePWM 配置:
ClkCfgRegs.PERCLKDIVSEL.BIT.EPWMCLKDIV = 0x1; CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0x0; EPwm6Regs.TBCTL.bit.CTRMODE = 0;//向上计数 EPwm6Regs.TBPRD = 130; EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm6Regs.CMPA.bit.CMPA = 4; EPwm6Regs.AQCTLA.bit.CAU = AQ_SET; //切换至高 EPwm6Regs.CMPB.BIT.CMPB = 8; EPwm6Regs.AQCTLA.bit.CBU = AQ_CLEAR;//切换回低 CpuRegs.PCLKCR0.bit.TBCLKSYNC = 0x1;SysSysRegs.PCLKCR0.bit.TBCLKSYNC = 0x1;
此外、如 spruhx5c-TRM 第2.7.6.4节所述、将时钟计算为200MHz -3%。
在离开 EPwm6Regs.TBPRD >= 130时、一切工作正常、如下图所示:
但是、一旦我更改 TBPRD=120 (或860ms)、奇怪的干扰就会开始出现:
经过一些测试后、我注意到了以下几点:
-尖峰仅出现在特定的物理时间(<900ns)以下。 将时钟速度和 TBPRD 除以2会得到相同的结果。
-它们在 TBPRD = 50和 TBPRD = 25时消失(很可能是因为它们与信号重叠)
-改变针脉冲的宽度(EPwm6Regs.CMPB.bit.CMPB)无效。
我想知道这是硬件限制还是我缺少其他东西。