TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F2800137:ePWM TBCTR 高于 TBPRD

Guru**** 2048860 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1318501/tms320f2800137-epwm-tbctr-higher-then-tbprd

器件型号:TMS320F2800137

您好!

Im 与2个 ePWM 通道配合使用、并在它们之间保持同步。
当 Im 将 EPWM1设置为较高速度(较低 TBPRD)时、我会根据 EPWM3较低速度(较高 TBPRD)设置其 SYNC IN 脉冲、反之亦然。

它一开始运行良好、切换后(ePWM 3速度更高、EPWM1速度更慢)和切换后(EPWM1速度更高、EPWM3速度更慢)、我遇到了问题:

TBCTR (3056) is >> Then TBPRD (600);问题已在 I reset 后解决  

另一个 PIC 寄存器 EPWM1运行良好:

错误:  



将 PHSEN 从1复位为0并重新复位为1解决问题:



瞬态代码 :  

        EPWM_enablePhaseShiftLoad (EPWM1);
        EPWM_setSyncInPulseSource(EPWM1, EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM3);
        EPWM_setPhaseShift(EPWM1, (2U * TBPRD) - 30U );
        EPWM_setSyncInPulseSource(EPWM3, EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM3);


谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Michael、您好!

    为了说明这一点、您是在运行时更改 EPWM1和 EPWM3的 TBPRD? 如果如此、你很可能将 TBPRD 更改为低于计数器的当前值、或者 TBPHS 的值在同步脉冲发生时大于 TBPRD。 如果 TBCTR 超过 TBPRD、它将不断向上计数直到 TBCTR 溢出。

    在何时更改 TBPRD 值要特别小心、这样才能避免这种情况。 您还可以在软件中将 TBCTR 设置为0来帮助防止这种情况。

    您能否提供更多信息、说明何时为 EPWM1和 EPWM3更新 TBPRD、何时发生同步脉冲、以及 TBPHS 使用了哪些值?