器件型号: LAUNCHXL-F280039C
您好:
我们已经发现 PWM 模块直流控制寄存器位和 TZOST 标志在组合或'TZOST 任务事件中没有相应地发挥作用。
当 TZ7、TZ8、TZ9 组合用于 PWM A1 B1 输出的单次 DOST EVENT1 跳闸时,只有一个 TZ 可以在 XBar 模拟多路复用器链接到 CMPSSn 时单独运行。 CMPSS 锁存事件在组合直流配置的跳闸中作为单个 TZ 操作置位、并且不会停止其他两个配置的 TZ 的 PWM 操作限定符中的进一步输出。
在 PWM 配置最后启用 dc.force 位时、它会通过 x39c 器件 driverlib 调用覆盖 DC 滤波位。 这应该是对来自 CPMSS 模块的异步滤波信号的 OR'd 功能。 但是、当对于启用 SYNC 位的滤波跳闸信号、只对多路复用 CMPSSn 设置一个操作时、EVT1LAT 位周期就像发生 CBC EVENT2 一样、再次仅循环向 CCS 调试寄存器显示的 OST 标志视图中未显示的 OST 标志。3 个 PWM 发生器的 A1 B1 输出不在组合 OR TZ 跳闸配置中执行操作。
DCA/BCTRL 寄存器同步位启用时是否会导致同步事件、而不是异步 A1/B1 事件、这与设置时 PWM 寄存器的状态相反?
是什么导致 EVT1LAT 位像发生 CMPSSn RS 数字滤波器同步复位或锁存输出那样循环?
为 3 TZOST 配置时、为什么在组合 TZ 动作限定器中只循环使用一个 TZ 标志?
奇数部分是从 CMPSS 滤波信号或锁存输出配置进行 LAT 位循环、不能保护直流逆变器免受一次过流事件的影响! 在这种情况下、如果不将 CMPSSn 数字滤波器窗口设置为接近其范围峰值的>28 来停止 LAT 位循环、则无法通过 UMCSDK 启动电机。 因此、我们没有真正的过流保护、因为组合的 TZ7、TZ8、TZ9 在它们应该是 OR'd 操作时会单独作用!






#else
// Trigger event when DCA1 is High
EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
EPWM_TZ_DC_OUTPUT_A1,
EPWM_TZ_EVENT_DCXH_HIGH);
// Trigger event when DCB1 is High
EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
EPWM_TZ_DC_OUTPUT_B1,
EPWM_TZ_EVENT_DCXH_HIGH);
#endif
/* Set DC-1A filter input event source */
EPWM_setDigitalCompareFilterInput(obj->pwmHandle[cnt], EPWM_DC_WINDOW_SOURCE_DCAEVT1);
/* Set DC-1B filter input event source */
EPWM_setDigitalCompareFilterInput(obj->pwmHandle[cnt], EPWM_DC_WINDOW_SOURCE_DCBEVT1);
EPWM_setDigitalCompareEventSyncMode(obj->pwmHandle[cnt],
EPWM_DC_MODULE_A,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_INPUT_NOT_SYNCED);
EPWM_setDigitalCompareEventSyncMode(obj->pwmHandle[cnt],
EPWM_DC_MODULE_B,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_INPUT_NOT_SYNCED);
// 03/10/25: Configure the DCA path to be filtered latch forces DCAEVT1
EPWM_setDigitalCompareEventSource(obj->pwmHandle[cnt],
EPWM_DC_MODULE_A,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_FLTLATCH_DCEVT1FORCE);
// 03/10/25: Configure the DCB path to be filtered latch forces DCBEVT1
EPWM_setDigitalCompareEventSource(obj->pwmHandle[cnt],
EPWM_DC_MODULE_B,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_FLTLATCH_DCEVT1FORCE);
// Configure the Digital CMPSS filter bit, not the Async original signal
EPWM_setDigitalCompareEventSource(obj->pwmHandle[cnt],
EPWM_DC_MODULE_A,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
//EPWM_DC_EVENT_SOURCE_FILT_SIGNAL EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL
// Configure the Digital CMPSS filter bit, not the Async original
EPWM_setDigitalCompareEventSource(obj->pwmHandle[cnt],
EPWM_DC_MODULE_B,
EPWM_DC_EVENT_1,
EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
//EPWM_DC_EVENT_SOURCE_FILT_SIGNAL EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL
// What do we want the OST/CBC events to do?
// 9.2.1.1 ePWM X-BAR Architecture Table:9-2
// TZA events can force EPWMxA from ePWM-xBAR MUX to DCA
// TZB events can force EPWMxB from ePWM-xBAR MUX to DCB
// First disable any Advanced TZ actions
EPWM_disableTripZoneAdvAction(obj->pwmHandle[cnt]);
EPWM_setTripZoneAction(obj->pwmHandle[cnt],
EPWM_TZ_ACTION_EVENT_TZA,
EPWM_TZ_ACTION_LOW);
//
EPWM_setTripZoneAction(obj->pwmHandle[cnt],
EPWM_TZ_ACTION_EVENT_DCAEVT1,
EPWM_TZ_ACTION_LOW);
//EPWM_TZ_ACTION_DISABLE, EPWM_TZ_ACTION_HIGH_Z, EPWM_TZ_ACTION_LOW
EPWM_setTripZoneAction(obj->pwmHandle[cnt],
EPWM_TZ_ACTION_EVENT_TZB,
EPWM_TZ_ACTION_LOW);
//
EPWM_setTripZoneAction(obj->pwmHandle[cnt],
EPWM_TZ_ACTION_EVENT_DCBEVT1,
EPWM_TZ_ACTION_LOW);
//EPWM_TZ_ACTION_DISABLE, EPWM_TZ_ACTION_HIGH_Z, EPWM_TZ_ACTION_LOW
// Technical 18.9 TZ6=CPU(EMUSTOP)
EPWM_enableTripZoneSignals(obj->pwmHandle[cnt],
EPWM_TZ_SIGNAL_CBC6);
#if defined(_SPIA_EN) || defined(_SPIB_EN)
// Oneshot TZ1 DRV83XXRS nFault Active LOW
EPWM_enableTripZoneSignals(obj->pwmHandle[cnt],
EPWM_TZ_SIGNAL_OSHT1);
#endif
// OSHT: DCA1/B1 Low/High trigger sources
// TRM: 18.9.1 Fig.18-41, 18.11 Fig.18-48
// CBC: TZ6 are DCA2/B2 trip event sources
EPWM_enableTripZoneSignals(obj->pwmHandle[cnt],
(EPWM_TZ_SIGNAL_DCAEVT1 | EPWM_TZ_SIGNAL_DCBEVT1));

