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.
My answer is a bit different. The reason a motor can drive something is that the two magnets on each pole are slightly "to one side" so rotation with torque results. It you force the two magnets to be in the opposite relationship, the driven leading the driver, the magnetic field is pushed in a way that ramps the voltage up as the two poles come nearer to being centered over one another. 
Sort of like a spark coil. 

Because the device is synchronous, that condition is never reached. The two are held in relative position by the magnetic opposition of the two like poles. 

Power fed into the stator tries to bring the armature up to speed. At synchronous speed, no work can be done. Spinning the armature faster causes the stator to try to slow the armature back to synchronous speed. It does that be producing power and shoving it into the grid which is running at a lower voltage. The grid is a large sink. It takes work to maintain this condition so it is a 'generator'. 

You can inject DC into the stator and generate power which is dumped as DC into a resistor. This is how AC motors can be stopped quickly. A radial arm saw motor is the most accessible implementation of this. It you disconnect the resistor it slows down like a normal motor instead of very quickly. After turning off the motor it coasts then the resistor cuts in with dramatic effect. It generates power which is used to oppose it's own rotation.