Question: I'm designing a BLDC driver (sensorless) using the the KL04 microcontroller. I am implementing a zero cross detection for commutation of the states. The flow I am implementing is:

1. duty cycly = 30%.
2. the bldc looks for '0' crossing and finds it.
3. commutations done at that time interval after that. its then an endless loop.

The above steps are fine and I am detecting '0' crossing properly. I am using a BLDC with no load. Please note that I am hardcoding the software to make the PWM duty-cycle to be 30%.

Now I just attach a small load, a blade/rotor for the motor. What happens next is confusing.

The software detects the '0' crossing and then crashes. The oscilloscope wave is shown below

!['0' cross detection and then crashing](https://i.stack.imgur.com/8F4vx.jpg)

It shows a correct '0' crossing. this happens at a small yellow spike. but then after sometime it crashes. Even the pwm is not shown in that channel.

Without the load/blades my motor takes about 1 amp and with the rotor it takes about 1.2 amps. Hence, we know a load is there.

Can any one explain where I am making some errors please?

Answer: 
When normally running from an AC supply, an induction motor runs at synchronous speed minus slip speed. The slip speed is determined by the amount of mechanical load attached. More load and the slip increases to allow the current induced in the rotor to rise and enable more power to be provided to the load.

If you were able to spin the motor and spin it at exactly synchronous speed the current taken by the stator would be zero (apart from the ever-present magnetization current). The voltage induced in the rotor would also be zero.

So we have the scenario that (ignoring magnetization currents), the stator current is zero at synch speed and rises (almost linearly) to some "full value" at maximum mechanical load.

Why should it be a surprise that spinning the motor at faster than synchronous speed (mentioning "sync-speed" absolutely implies it is connected to an AC supply of course) it becomes a generator?

Answering a bit more, the reactive "power" in the rotor does not contribute to output power when driven as a generator. Output power (into say a 3ph supply) is input mechanical power minus generator losses. The magetization currents in rotor and stator are just a means to an end.
If you think of an induction motor as a transformer you will notice that the primary coils are in the stator and the secondary coils are in the rotor.

The secondary coils are shorted out so that current can flow within those coils by the induced current when an AC current is applied to the primary coils in the stator. This current in the secondary coils produces a magnetic field. Because of the inductance of the secondary coil, this magnetic field resists change.

When you apply a force slowing down the rotor, due to this resistance of the magnetic field to change, the magnetic field will lag behind and therefor the magnetic field in the stator will pull the magnetic field in the rotor producing a force against the force trying to slow down the rotor.

If you attempt to speed up the rotor, the exact opposite will occur. The magnetic field will then lead the magnetic field in the stator. this will induce a current in the stator which is in the direction that the current in the stator already is going. The harder you push the rotor, the more this current will be. This current results in the generation of an alternating current.