This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

两块独立的DSP(28069),配置完全相同,固定频率及占空比的PWM,示波器测量有相对位移,是什么原因?

现象:两块独立的DSP(TMS320F28069PAG)分别生成固定频率(20kHz)和固定占空比(50%)的PWM,通过示波器测试两个DSP的PWM波形,可看到两个PWM在相对移动(示波器设置其中一个PWM的上升沿为触发)。此时的两个DSP均输出同一频率同一占空比的PWM,难道不应该无相对移动吗?两块DSP晶振频率为20MHz,内部时钟均为90MHz,所有电路保持一致。

采用PWM同步源SYNCOSEL设置会导致PWM的失去原有的频率和占空比(感觉像是TBCTR被同步源给打乱了),实际应用两块DSP不在一个空间,也不应用同步信号同步。

两个DSP的EPWM配置如下:

EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;        

EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD;

EPwm1Regs.CMPA.half.CMPA = EPWM1_TIMER_TBPRD;

EPwm1Regs.CMPA.half.CMPAHR = 0;

EPwm1Regs.CMPB = EPWM1_TIMER_TBPRD;

EPwm1Regs.TBPHS.all = 0;

EPwm1Regs.TBCTR = 0;

EPwm1Regs.TBPHS.half.TBPHS = 0;

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;

EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;

EPwm1Regs.TBCTL.bit.PHSDIR = TB_UP;

EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;

EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

EPwm1Regs.TBCTL.bit.FREE_SOFT = 3;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;

EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD;

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

EPwm1Regs.AQCTLA.bit.ZRO= AQ_SET;

EPwm1Regs.AQCTLA.bit.PRD= AQ_CLEAR;

  • user6191892 说:
    可看到两个PWM在相对移动(示波器设置其中一个PWM的上升沿为触发)。

    相对移动是指什么?方便给个示波器图形并做好标注吗?

    user6191892 说:
    实际应用两块DSP不在一个空间,也不应用同步信号同步。

    如果要完全同步的话,最可靠的还是通过同步信号。否则个人认为两块独立的芯片很难做到同步

  • 请看视频两个PWM有相对位移。

  • 我看到视频中示波器测试的两个PWM波形频率都是几乎一样的,确实正常来说同一频率的波形不应该产生位移而应该是一个固定的相位差。
    你试试不用“其中一个PWM的上升沿为触发”,仅单独测试两个波形呢?