Conclusion

This application note describes a method of driving a BLDC motor using bipolar switching, starting from generating the waveforms and routing them to the required pins.

There is no need for external comparators or other logic circuits, the only exception being a few passive components to condition the input signal going to the microcontroller.

The AVR core running at 24 MHz, providing up to 24 MIPS, is a very powerful choice in designing a system that integrates multiple requirements alongside the Core Independent Peripherals (AC, ADC, TCA, TCB, CCL, USART) used to drive the motor as a complete control system.

Bipolar drive ensures clean BEMF which helps an accurate detection of the zero-cross point, without the need for synchronization with the PWM output signal.

For better performance, the built-in moving average filter adds an extra measure of protection in case of an external disturbance and ensures a smooth run throughout the RPM range of the motor.