For an upcoming project I’ll be needing a brushless dc motor controller so I had to choose between purchasing one (more than 4 actually) and adapt my system around those or design&build one that would best fit my system. Obviously I went with the second option for 2 reasons : I like making stuff & it’s cheaper to make than to buy. After I finish it , this project will be open-source and I hope people will contribute by making it better.
Brushless DC motors (BLDC motors, also known as electronically commutated motors) are electric motors powered by DC electricity that have electronic commutation systems. Usually the electronic commutation system is external and this is our case also. A BLDC motor is constructed with a permanent magnet rotor and wire wound stator; This type of construction offers many advantages including more efficiency and torque per weight, reduced noise, reliability, longer lifetime (no brush erosion), elimination of ionizing sparks from the commutator, more power, and overall reduction of electromagnetic interference (EMI).
There are 2 main methods for controlling a BLDC motor one is with the use of hall sensors for sensing the position of the rotor and the other one also called sensorless driving involves sensing the rotor position by measuring the back EMF (electromotive force) feedback from the motor instead of external sensors. I’m gonna focus my project on the sensorless method, the advantage being the ability to use any motor no matter if it has the sensors fitted or not.
I’m gonna post updates as I make progress on the project, but first here is the documentation that I’ve read so far:
- wikipedia on BLDC motors
- Microchip AN857 – Brushless DC Motor Control Made Easy
- Atmel AVR444 – Sensorless control of 3-phase brushless DC motors
- Atmel AVR443 – Sensor-based control of three phase brushless DC motor (although I’m going to use sensorless control its good to know the difference between the two methods)
- Atmel AVR194 – Brushless DC motor Control using ATmega32M1
These documents cover the basics and the actual control of BLDC motors so I suggest you start by reading these.