User Manual
Sensorless Commutation Control
3-Phase BLDC Motor Control with Sensorless Back-EMF, ADC, Zero Crossing, Rev. 3
Freescale Semiconductor 23
Preliminary
5.4.2.2 Running - Commutation Times Calculation
Commutation times calculation is provided by algorithm bldcZCComput described in Section 11.1.
COEF_CMT_PRESET *
T_ZCros[n]
n-2
n-1
n
T_Cmt0[n-2]
T_Cmt0[n-1] T_Cmt0[n]
Zero Crossing
T_Cmt0*[n+1]
Commutation is preset
Zero Crossing
T_Cmt0**[n+1]
Commuted when Back-EMF
Per_HlfCmt[n]
Per_HlfCmt[n]
Detection Signal
Detection Signal
Zero Crossing
Detection Signal
Commuted at preset time.
No Back-EMF feedback
was received
Back-EMF feedback
received and evaluated
Zero Crossing is missed
Per_ZCros[n]
Per_ZCros[n-1]Per_ZCros[n-2]
Per_Toff[n]
Per_ZCros[n]
- Corrective Calculation 1.
- Corrective Calculation 2.
T_Next[n]
T_ZCros[n-1]
Per_ZCros0[n] =
Per_ZCros[n]
* Per_ZCrosFlt[n-1]
Figure 5-8. BLDC Commutation Times with Zero Crossing Sensing
The following calculations are made to calculate the commutation times (T_Next[n])
during the Running state:
• Service of Commutation - The commutation time (T_Next[n]) is predicted:
T_Next[n] = T_Cmt0[n] + Per_CmtPreset[n] =
= T_Cmt0[n] + Coef_CmtPrecomp*Per_ZCrosFlt[n-1]
coefficient Coef_CmtPrecomp = 2 at Running state!
If Coef_CmtPrecomp*Per_ZCrosFlt>Max_PerCmt
then result is limited at Max_PerCmt