您好!
例如,如果启用了"制动"并且 brakingMode == HARDSWITCH_BRAKE_MODE,则执行以下代码,关闭/禁用两个 NFET,我不确定 这是否类似于 BRAKE?
static inline void HAL_exitBrakeResetPWM(HAL_MTR_Handle handle) { HAL_MTR_Obj *obj = (HAL_MTR_Obj *)handle; uint16_t cnt; for(cnt=0; cnt<3; cnt++) { // setup the Dead-Band Generator Control Register (DBCTL) EPWM_setDeadBandDelayMode(obj->pwmHandle[cnt], EPWM_DB_RED, true); EPWM_setDeadBandDelayMode(obj->pwmHandle[cnt], EPWM_DB_FED, true); // setup the Action-qualifier Continuous Software Force Register (AQCSFRC) EPWM_setActionQualifierContSWForceAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_A, EPWM_AQ_SW_DISABLED); // setup the Action-qualifier Continuous Software Force Register (AQCSFRC) EPWM_setActionQualifierContSWForceAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_B, EPWM_AQ_SW_DISABLED); } obj->flagEnablePWM = false; return; }
相比杨明2年前发布的,它 只打开低侧 NFET,电动机内部的能量收集器,有什么不同的2种方法 ?
static inline void HAL_enableBreakPwm(HAL_Handle handle) { HAL_Obj *obj = (HAL_Obj *)handle; // Force high side off, low side on PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_1], PWM_ActionQualContSWForce_Clear); PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_1], PWM_ActionQualContSWForce_Set); PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_2], PWM_ActionQualContSWForce_Clear); PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_2], PWM_ActionQualContSWForce_Set); PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_3], PWM_ActionQualContSWForce_Clear); PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_3], PWM_ActionQualContSWForce_Set); return; } // end of HAL_enableBreakPwm() function
丹尼