User Manual
Speed setting
3-Phase BLDC Motor Control with Sensorless Back-EMF, ADC, Zero Crossing, Rev. 3
Freescale Semiconductor 55
Preliminary
10.2.6 Commutation Timing Setting
Notes: Normally these structures do not require change. If the constants described in this section need to be
changed, a detailed study of the control principle needs to be studied (see
Section 5. and
MotorControl.pdf).
If it is required to change the motor commutation advancing (retardation) the coefficients in starting and
running structures needs to be changed:
x_StartComputInit
x_RunComputInit
Both structures are in bldcadczcdefines.h.
The x_StartComputInit structure is used by the application software during Starting state (see Section 5.4.3).
The x_RunComputInit structure is used by the application software during Running state see
Section 5.4.3.1).
Coef_CmtPrecompLShft
Coef_CmtPrecompFrac
fractional and scaling part of Coef_CmtPrecomp
final Coef_CmtPrecomp = Coef_CmtPrecompFrac << Coef_CmtPrecompLShft
this final Coef_CmtPrecomp determines the interval between motor commutations when no Back-EMF Zero
Crossing is captured. The application software multiplies fractional Coef_CmtPrecomp with commutation
period.
Coef_HlfCmt
determines Commutation advancing (retardation) - the interval between Back-EMF Zero Crossing and motor
commutation
The application software multiplies fractional Coef_HlfCmt with commutation period.
Coef_Toff
determines the interval between Back-EMF Zero Crossing and motor commutation
The application software multiplies fractional Coef_Toff with commutation period
10.3 Speed setting
10.3.1 Maximal and Minimal Speed and Speed Regulator Setting
All these section settings are in bldcadczcdefines.h.
In order to compute the speed setting, it is important to set number of BLDC motor commutations per motor
mechanical revolution:
#define x_MOTOR_COMMUTATION_PREV 18 /* Motor Commutations Per Revolution */
Maximal required speed in rpm is set by:
#define x_SPEED_ROTOR_MAX_RPM 3000 /* maximal rotor speed [rpm] */