TMS320F28377S: epwm同步过程中发现会偶尔同步失败的现象

Part Number: TMS320F28377S

现象描述:

     需要让两个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;

  • 您好,

          请问现在测试情况怎样?

         TRM  “14.4.3.3 Time-Base Counter Synchronization'

          TMS320F2837xS Real-Time Microcontrollers Technical Reference Manual (Rev. I)

  • 后面把同步的改为:EPwm1Regs.TBPHS.bit.TBPHS = 75;  EPwm1Regs.TBCTL.bit.PHSDIR = 0; 不在计数器过零的时刻同步,这个问题测试了几天未再出现,但是今天发现又出现了一次,还没找到根本原因

  • 您好,

           请重新确认下面内容。

           您正在使用外部同步来执行此操作。 每个ePWM都可以从外部输入源同步。

           例如,您可以将主机的EPWM1同步输出信号配置为在CTR =0上发生,然后将此信号路由到EXSYNCOUT:

           

           并使用此信号(主机的EPWM1同步输出脉冲)作为从属ePWM组的输入。 

    每个PWM的同步和同步设置是什么? 您是否按照TRM中的说明一起启动ePWM时钟?

    当前程序/设计是否始终出现此问题? 或者最近进行的配置或其他更改是否导致了这种情况?

    请记住,当TBCLK = EPWMCLK时,主从PWM模块之间应期望2个EPWMCLK延迟周期: