Freescale Semiconductor, Inc.

BLDC Motor Control

Used Control Technique

T_Cmt[n-2] T_Cmt[n-1] T_Cmt[n]

T2[n-3]

T2[n-2]

T2[n-1]

T2[n]

 

n-2

n-1

n

Inc.

Per_ZCros[n-2]

2*Per_ZCrosFlt[n-1]

COMMUTATION IS PRESET

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ZERO CROSSING

 

 

 

 

 

 

 

 

 

 

 

 

 

COMMUTATED AT PRESET TIME NO

 

 

 

 

 

 

 

 

 

 

 

 

 

DETECTION SIGNAL

 

 

 

 

 

 

 

 

 

 

 

 

BACK-BMF FEEDBACK WAS RECEIVED

 

 

 

 

 

 

 

 

 

 

Per_ZCros[n]

 

CORRECTIVE CALCULATION 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T_Cmt*[n+1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ZERO CROSSING

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DETECTION SIGNAL

 

 

 

 

 

 

 

 

 

 

 

 

 

BACK-EMF FEEDBACK

Per_ZCros0[n] =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Per_ZCros[n-1]

 

 

Per_ZCros[n]

Per_HlfCmt[n]

RECEIVED AND EVALUATED

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Freescale Semiconductor,

T_ZCros[n-1]

 

T_ZCros[n]

 

 

Per_Toff[n]

 

T_Cmt**[n+1]

 

 

ZERO CROSSING

 

 

 

 

 

 

COMMUTATED WHEN BACK-EMF

 

 

 

 

 

 

 

 

 

 

 

 

ZERO CROSSING IS MISSED

 

 

 

 

 

 

DETECTION SIGNAL

 

 

 

 

CORRECTION CALCULATION 2.

 

 

 

 

 

 

 

 

Per_ZCros[n]

Per_HlfCmt[n]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 3-17. BLDC Commutation Time with Zero Crossing Sensing

The following calculations are made to calculate the commutation time (T2[n]) during the Running state:

Service of commutation — The commutation time (T2[n]) is predicted:

T2[n] = T_Cmt[n] + 2*Per_ZCrosFlt[n-1] If 2*Per_ZCrosFlt>Per_Cmt_Max

then result is limited at Per_Cmt_Max

Service of received back-EMF zero crossing — The

commutation time (T2*[n]) is evaluated from the captured back-EMF zero crossing time (T_ZCros[n]):

Per_ZCros[n] = T_ZCros[n] - T_ZCros[n-1] = T_ZCros[n] - T_ZCros0 Per_ZCrosFlt[n] = (1/2*Per_ZCros[n]+1/2*Per_ZCros0)

HlfCmt[n] = 1/2*Per_ZCrosFlt[n]- Advance_angle =

= 1/2*Per_ZCrosFlt[n]- C_CMT_ADVANCE*Per_ZCrosFlt[n]=

 

Coef_HlfCmt*Per_ZCrosFlt[n]

 

DRM028 — Rev 0

 

Designer Reference Manual

 

 

 

 

 

 

MOTOROLA

BLDC Motor Control

43

 

For More Information On This Product,

 

 

Go to: www.freescale.com

 

Page 43
Image 43
Motorola M68HC08 manual Bldc Commutation Time with Zero Crossing Sensing, Service of received back-EMF zero crossing