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.

[参考译文] TMS320F280039C:如何禁用 ePWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172035/tms320f280039c-how-to-disable-epwm

器件型号:TMS320F280039C

您好!  

我有一个控制电机的 ePWM。 当我想使用 ePWM 时、如何禁用 ePWM、然后重新启用它。 将计数器比较值设置为0似乎有所作用、因此 IGBT 仍在使用中。  

感谢您的帮助!

Derek

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

    我需要仅禁用控制 PWM 输出的 EPWM 的计数器比较 A 和 B、因为我使用 C 作为 ADC 采样的4kHz 中断。 执行此操作的最佳方法是什么?

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

    我通过以下帖子了解了这一点:  

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1167738/tms320f28388d-best-way-to-programatically-trip-the-epwm-outputs?tisearch=e2e-sitesearch&keymatch=disable%2520epwm%2520output#

    确保在初始化代码中添加跳闸区域设置–

        //设置禁用 ePWM 输出时要执行的操作

       ePWM_setTripZoneAction (A_PWM_HS_base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);

       ePWM_setTripZoneAction (A_PWM_HS_base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);

       ePWM_setTripZoneAction (B_PWM_HS_base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);

       ePWM_setTripZoneAction (B_PWM_HS_base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);

       ePWM_setTripZoneAction (C_PWM_HS_base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);

       ePWM_setTripZoneAction (C_PWM_HS_base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);

     

    然后、要禁用输出、请执行以下操作:

        //禁用 PWM 输出

       ePWM_forceTripZoneEvent (A_PWM_HS_base、ePWM_TZ_FORCE_EVENT_OST);

       ePWM_forceTripZoneEvent (B_PWM_HS_base、ePWM_TZ_FORCE_EVENT_OST);

       ePWM_forceTripZoneEvent (C_PWM_HS_base、ePWM_TZ_FORCE_EVENT_OST);

     

    要启用输出、请执行以下操作:

        //清除禁用输出的跳闸区域

       ePWM_clearTripZoneFlag (A_PWM_HS_base、ePWM_TZ_FLAG_OST);

       ePWM_clearTripZoneFlag (B_PWM_HS_base、ePWM_TZ_FLAG_OST);