现象描述:
需要让两个DSP同步,在两个TMS320F28377S控制板的epwm设置相同的周期,一个作为主机在计数器过零的位置发出同步信号,一个作为从机接收该同步信号,让epwm1~6能与主机同步,因为从机的epwm1~epwm3是一组,epwm4~epwm6是一组,为了确保两组都能成功的同步,所以设置每间隔200us读取一次epwm3和epwm6的计数器值,如果两个计数值差异超过10个PWMCLK,认为两组同时同步失败;这么设置后大部分情况没问题,连续运行几个小时,会偶发该故障,读取6个从机的epwm模块的计数值,发现存在第一组epwm1~epwm2,epwm4~epwm6计数值一样,epwm3不一样,目前认为可能是epwm3在这个开关周期没有同步上,想请教一下这可能是什么原因,下面是软件的配置:
配置GPIO17作为从机的同步信号输入口
InputXbarRegs.INPUT5SELECT = 17; // 设置GPIO17作为从机接收外部同步信号的口
GpioCtrlRegs.GPAGMUX2.bit.GPIO17 = 0;
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0;
EPwm1Regs.TBPRD = 5000; //这部分epwm1~6配置一样,这里只列举epwm1
EPwm1Regs.TBPHS.bit.TBPHS = 0;
EPwm1Regs.TBCTR = 0x0000;
EPwm1Regs.TBCTL.bit.PHSDIR = 1;
EPwm1Regs.TBCTL.bit.SYNCOSEL = 0;
EPwm1Regs.TBCTL.bit.PHSEN = 1;//这部分epwm1~6配置一样,这里只列举epwm1
EALLOW;
SyncSocRegs.SYNCSELECT.bit.EPWM4SYNCIN = 5;
EDIS;