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.

[参考译文] TMS320F28379D:ePWM 意外跳闸

Guru**** 2466550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1485561/tms320f28379d-epwm-tripping-unexpectedly

器件型号:TMS320F28379D

工具与软件:

您好!

我使用四个 IO 作为 EPWM4、EPWM5和 EPWM6的跳闸信号。

我有一个为 XINT4配置的额外 IO、其中在 XINT4 ISR 中、我将禁用这些相同的 ePWM 通道(4、5、6)。   

我看到一个问题、即在 XINT4 ISR 开始时(我设置一个断点)、ePWM 通道被关闭/跳闸 代码、那么应该会将其关闭。   

ISR:

__interrupt void xint4_isr(void){

EPWM_forceTripZoneEvent(EPWM4_BASE, EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(EPWM5_BASE, EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(EPWM6_BASE, EPWM_TZ_FORCE_EVENT_OST);

Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1);
}

我在首次调用 EPWM_forceTripZoneEvent 时设置了断点。  当我强制 XINT4中断时、它会在断点处停止、但所有 ePWM 通道都已关闭。

我使用来配置它

XBAR_setInputPin (XBAR_Input1131);
XBAR_setInputPin (XBAR_INPUT2、24);
XBAR_setInputPin (XBAR_INPUT3、27);
XBAR_setInputPin (XBAR_INPUT4、60);

XBAR_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX01_INPUTXBAR1);
XBAR_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX03_INPUTXBAR2);
XBAR_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX05_INPUTXBAR3);
XBAR_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX07_INPUTXBAR4);

XBAR_ENABLEEPWMMux (XBAR_TRIP4、XBAR_MUX01 | XBAR_MUX03 | XBAR_MUX05 | XBAR_MUX07);

EPWM_setTripZoneAction (EPWM4_BASE、EPWM_TZ_ACTION_EVENT_TZA、EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction (EPWM4_BASE、EPWM_TZ_ACTION_EVENT_TZB、EPWM_TZ_ACTION_LOW);
EPWM_enableTripZoneSignals (EPWM4_BASE、EPWM_TZ_SIGNAL_DCAEVT1);
EPWM_selectDigitalCompareTripInput (EPWM4_BASE、EPWM_DC_TRIPIN4、EPWM_DC_TYPE_DCAH);
EPWM_setTripZoneDigitalCompanyEventCondition (EPWM4_BASE、EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSyncMode (EPWM4_BASE、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、EPWM_DC_EVENT_INPUT_NOT_SYNCK);

EPWM_setTripZoneAction (EPWM5_BASE、EPWM_TZ_ACTION_EVENT_TZA、EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction (EPWM5_BASE、EPWM_TZ_ACTION_EVENT_TZB、EPWM_TZ_ACTION_LOW);
EPWM_enableTripZoneSignals (EPWM5_BASE、EPWM_TZ_SIGNAL_DCAEVT1);
EPWM_selectDigitalCompareTripInput (EPWM5_BASE、EPWM_DC_TRIPIN4、EPWM_DC_TYPE_DCAH);
EPWM_setTripZoneDigitalCompanyEventCondition (EPWM5_BASE、EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSyncMode (EPWM5_BASE、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、EPWM_DC_EVENT_INPUT_NOT_SYNCK);

EPWM_setTripZoneAction (EPWM6_BASE、EPWM_TZ_ACTION_EVENT_TZA、EPWM_TZ_ACTION_LOW);
EPWM_setTripZoneAction (EPWM6_BASE、EPWM_TZ_ACTION_EVENT_TZB、EPWM_TZ_ACTION_LOW);
EPWM_enableTripZoneSignals (EPWM6_BASE、EPWM_TZ_SIGNAL_DCAEVT1);
EPWM_selectDigitalCompareTripInput (EPWM6_BASE、EPWM_DC_TRIPIN4、EPWM_DC_TYPE_DCAH);
EPWM_setTripZoneDigitalCompanyEventCondition (EPWM6_BASE、EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSyncMode (EPWM6_BASE、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、EPWM_DC_EVENT_INPUT_NOT_SYNCK);

XBAR_setInputPin(XBAR_INPUT13, 63);

GPIO_setInterruptType(GPIO_INT_XINT4, GPIO_INT_TYPE_FALLING_EDGE);
GPIO_enableInterrupt(GPIO_INT_XINT4);

当我将 GPIO63/XBAR_INPUT13置位后、您是否看到上述配置中会导致 EPWM4/EPWM5/EPWM6跳闸的任何问题?

谢谢

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

    您好!

    我看到的第一个问题是清除中断标志。 将其设置为  Interrupt_clearACKGroup (INTERRUPT_ACK_GROUP1)。 基于 PIE 通道映射、XINT4不是组1、而是组12。 因此、它应该 改为 Interrupt_clearACKGroup (interrupt_ack_Group12)。

    请参阅器件 TRM 部分和表3.4.5 PIE 通道映射、以便更好地理解: https://www.ti.com/lit/ug/spruhm8k/spruhm8k.pdf。请告诉我这是否可行。