User Manual
motor Commutation
Calculate Next Commutation
after Zero Crossing Get
Calculate Next Commutation
after Zero Crossing Missed
No Zero Crossing
Zero Crossing Get
Calculate Next Commutation
after No Zero Crossing
Zero Crossing Missed
commutation time
Preset Next Commutation
settings and timing
get during last
commutation period
Zero Crossing
Detected/Missed during last
commutation period
Running - Begin
(T_Next) expired
Corrective Calculation 2.
Corrective Calculation 1.
during Per_Toff
Software Design
3-Phase BLDC Motor Control with Sensorless Back-EMF, ADC, Zero Crossing, Rev. 3
44 Freescale Semiconductor
Preliminary
Figure 7-9. Substates - Running
This state is almost entirely serviced by the BLDC Zero Crossing algorithms which are documented in Motor
Control.pdf, Chapter 5, BLDC Motor Commutation with Zero Crossing Sensing). First, the bldczcHndlr
is called with actual time from the Cmt Timer Counter to control requests and commutation control registers.
Other BLDC Zero Crossing algorithms are called, according to the request flags. The state services are located
in the main loop and in the Cmt (commutation) Timer Interrupt.
7.3.4.2 Commutation Control - Starting State
The Starting state is as the Running state, see Figure 7-9.
7.3.4.3 Commutation Control - Set Running
This state serves the transition from the Starting (Back-EMF Acquisition) state to Running state by the BLDC
Zero Crossing algorithms (Section
11.1) according to the following actions:
• T_Actual = Cmt Timer Counter
• Setting new commutation parameters and initialized commutation with bldczcHndlrInit algorithm
• Initialization of computation with the bldczcComputInit algorithm