Hello @marekmusak ,
Thanks for your explanation.
what is alignment vector? why it is required in BLDC motor control.
In MCSPTE1AK144_BLDC_6Step code (sensor based), after the alignment vector initialized there is delay (alignmentTimer) it is decreasing from 20,000 to 0. why this delay is required.
/*******************************************************************************
*
* Function: void AppStopToAlignment(void)
*
* Description: BLDC application STOP to ALIGN state transition function
*
*******************************************************************************/
void AppStopToAlignment(void)
{
driveStatus.B.Alignment = 1;
driveStatus.B.EnableCMT = 0;
driveStatus.B.CloseLoop = 0;
driveStatus.B.Calib = 0;
driveStatus.B.Sensorless = 0;
driveStatus.B.NewZC = 0;
alignmentTimer = mcat_alignDuration;
duty_cycle = MLIB_Mul(MLIB_Div(mcat_alignVoltage, U_PH_NOM), 100.0F);
// Update PWM duty cycle
ACTUATE_SetDutycycle(duty_cycle, HW_INPUT_TRIG1);
/* Apply PWM settings for motor alignment */
ACTUATE_SetPwmMask(ui8FTM3OutmaskVal[0][6], ui16FTM3SwOctrlVal[0][6], HW_INPUT_TRIG1);
appState = APP_ALIGNMENT;
}
/*******************************************************************************
*
* Function: void AppAlignment(void)
*
* Description: BLDC application ALIGN state function
*
*******************************************************************************/
void AppAlignment(void)
{
if(alignmentTimer == 0)
{
AppAlignmentToStart();
}
}