Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: OitaFish on March 25, 2012, 09:00:15 AM

Title: Brushless DC Motor Control
Post by: OitaFish on March 25, 2012, 09:00:15 AM
I tried searching here but didn't find anything on brushless motor control design.  I have a DC brushless motor that I am trying to make a controller for but I am a novice at this type of controller.  I am trying to use an ATMEGA16 controller for this.  It seems like it should work OK.

I am attaching my schematic.  Any advice or inputs on this would be appreciated.  I am especially interested to hear from anyone who has done this before.  I put the circuit together using a breadboard but 4 of the transistors heated up enough to melt the breadboard and the other 2 didn't heat up at all.  The motor jerked about but didn't go around.  Obviously there is something wrong with my circuit (as wired -- not necessarily the schematic) and I have become tired of the wires popping out of the breadboard so I am currently soldering things together.  I have about half of it done at the moment and have been testing each piece as I put it in. 

There are 6 transistors to control and I am using 2 quad half-H drivers to drive them.  I originally was using each H driver to drive 3 transistors but I discovered that 1/2 of one of the H-Bridges isn't working -- the outputs are always 0V -- so that might be my main problem.  I am now planning to drive 4 of the transistors with one H-Driver and 2 with the other.  This is what the schematic currently shows.

As I go along, if there is interest, I will explain the circuit and software in detail.  The basic idea with this type of motor is that there are 3 windings connected together internally.  Each winding has one wire coming out of the motor (you can see this in my schematic).  By sequentially changing the polarity of each terminal, you basically walk the magnetic field around in a circle and the rotor follows it.

Once you get the motor rotating, you then have to balance the torque and RPM.  The speed at which you change the polarity determines the RPM.  Ideally, you want the least torque possible to maintain the rpm.  Increasing and decreasing torques is done through pulse width modulation of the transistors driving the motor.

Questions, comments, and advice are all welcome. 

(http://i75.photobucket.com/albums/i290/yukon988/cntrl_schem.jpg)


Title: Re: Brushless DC Motor Control
Post by: joe61 on March 25, 2012, 10:37:39 AM
I haven't done anything with brushless motors so can't help directly. However Atmel has some application notes on driving them which might help. Try these links

BLDC controller chip: http://www.atmel.com/devices/ata6833.aspx?tab=documents (http://www.atmel.com/devices/ata6833.aspx?tab=documents)

http://www.atmel.com/applications/homeappliances/motor_control/default.aspx?tab=documents (http://www.atmel.com/applications/homeappliances/motor_control/default.aspx?tab=documents)

Joe
Title: Re: Brushless DC Motor Control
Post by: Soeren on March 25, 2012, 05:44:39 PM
Hi,

I tried searching here but didn't find anything on brushless motor control design.  I have a DC brushless motor that I am trying to make a controller for but I am a novice at this type of controller.  I am trying to use an ATMEGA16 controller for this.  It seems like it should work OK.
For inspiration, you might wanna take a look at datasheets for a couple of dedicated brushless driver chips, like µPC1246 or LS7362. And Microchip has got both chips for the purpose and app notes with good info for using a microcontroller for the purpose - I think you'll find the Microchip AN857 (http://ww1.microchip.com/downloads/en/appnotes/00857a.pdf) a very good read.
Title: Re: Brushless DC Motor Control
Post by: OitaFish on March 26, 2012, 07:57:24 AM
Thanks for the links guys.  There are good tidbits in each of them.  My motor does not have hall sensors so I will be attempting to read the BEMF voltage from the motor with the Atmega's ADC to determine when to commutate.  That Microchip apps note goes into that in detail and I think they have a good suggestion on how to measure it -- checking it at 25% and 75% of the way through the cycle instead of just the 50% point.  I think it should be more stable that way.

Anyway, I've got to get the motor to spin before I have to worry too much about that part.

Title: Re: Brushless DC Motor Control
Post by: OitaFish on March 31, 2012, 12:56:47 AM
Looks like I'm going to have to order some new parts.  I've got one completely fried H-Bridge (connected enable pin to 14V instead of ground) and 2 fried PMOS transistors.