PWM在异常时触发保护的配置如下代码所示
PWM保护时,应该输出0V的低电平,但是实际输出却是1.5V左右,请问这是什么原因?
for (i = 0; i < USED_PWMS_COUNT; i++) {
EPWM_selectDigitalCompareTripInput(pwms[i].pwmBase, EPWM_DC_TRIP_TRIPIN4, EPWM_DC_TYPE_DCAL);
EPWM_setTripZoneDigitalCompareEventCondition(pwms[i].pwmBase, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXL_LOW);
// Fail管脚,为0时,表示过流,需要通过硬件保护的方式关闭PWM
// 所以在DCXL_LOW时产生事件,触发保护
EPWM_setDigitalCompareEventSource(pwms[i].pwmBase, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL);
EPWM_setDigitalCompareEventSyncMode(pwms[i].pwmBase, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_INPUT_NOT_SYNCED);
// DCxEVTn管多个周期,一旦DCxEVTn标志被置上后,标志不会被自动清除,需要软件去把标志清除
EPWM_enableTripZoneSignals(pwms[i].pwmBase, EPWM_TZ_SIGNAL_DCAEVT1);
}