This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Interfacing to BLDC with LM3S811 & DRV8332

Other Parts Discussed in Thread: LM3S811, DRV8332, DRV8301, BOOSTXL-DRV8301, DRV8313EVM, DRV8302, DRV8303, DRV8308, LAUNCHXL-F28027F, INSTASPIN-BLDC, DRV8313

Hi,

I'm building a quadcopter for a university project, and I'm using the LM3S811 as the flight controller. I want to use four DRV8332 three phase motor controllers to interface to the four brushless motors I have (AX 2308N 1100kv Brushless Micro Motors from www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=5429).

The 811 will generate PWM outputs that will be input to the 8332. The motors each draw up to a maximum of 10A at a maximum of 11V. Since the 8332 can source up to 13A of continuous peak current, is this application reasonable?

I am also designing the PCB myself, so I also need to choose a voltage regulator. I will most likely be using a LiPo battery pack that can provide at least 12V of input to the 8332 (failing that, I would need eight AA batteries). Does the regulator need to be able to output at least 40A (10A each for four motors), or am I thinking about this incorrectly?

Can someone recommend a regulator I can use? Also, is there a recommended heatsink for the 8332?

The 811 has six PWM outputs. How do I output to all four motors independently?

Thanks for any help! I would greatly appreciate any advice.

  • Hi Aradaif

    Here are some comments on your project.

    1. Please note that LM3S811 is NRND.

    2. Your controller needs at least 12 channel PWM for 4 independent BLDCs. I think you can refer to C2000 serials.

    3. DRV8332 will definitely need big heat sink in your application, but that may cause too much weight in aircraft application. So maybe DRV8301 + low Rdson FET from TI will be better choice.

    4. Motor driver unit is usually directly connected to the battery without under regulator. Also a current limit function is usually required to protect the battery. This current limit function can be achieved by DRVx or controllor, or from independent circuit.

    Thanks.

  • use BOOSTXL-DRV8301 design for the inverters.

    You won't be able to do the control of all 4 inverters with a single processor. We have a guy in TI who has worked on this, he ended up using an F28027F (basis for LAUNCXL-F28027F) for each inverter control, and then has another F28027 doing flight control, getting user commands, and sending speed/torque commands to each motor.

     

  • Thanks for the advice!

    Unfortunately, I am required to use either the LM3S811 or MSP430 for my project. Would it be possible to use this version of the 430: MSP430G2553IN20 to control the inverters, along with the DRV8301 and power FETs? I chose that particular 430 because it has 2 timers with 3 CC registers each, so 4 PWM outputs are possible. Is this correct?

    If I used the 811 as the flight controller, how would I control the motors? Would I send commands to the 430s?

    In regards to the power connection that Wilson suggested, if the batteries supplied power to the 8301 and the motors were only connected to the FETs, would this be enough current protection?

    Thanks again!

  • Do you have any commutation algorithm in mind that you plan on implementing for the motors? Are you using sensorless or sensored control. These are all questions you will need to answer. That MSP430 may not have enough peripherals or computing power depending on what you intend to do.

    A direct 3-phase motor drive will require 6 PWM inputs. How many are active at a time depends on the commutation algorithm. You can refer to the DRV8313EVM for an example of a 3-phase motor solution with an MSP.

    As has been mentioned driving 10A into 4 motors while maintaining a reasonable weight is not an easy task. Your best bet is definitely the DRV8301/DRV8302/DRV8303 with external FETs.

    Read through the DRV8301 datahseet for more information on current protection. Current protection is implemented by sensing the voltage drop across the external FETs.

  • Another option is to look at the DRV8308. This device has speed control logic built in and simply requires one PWM/CLK "timer" to determine the speed. This device only supports hall sensored solutions though.

  • I'm using sensorless motors, so I would have to use the ADC to determine speed.

    I was actually hoping to use open source code for the motor controller and focus more on the flight controller algorithms. From what I have read, the standard commutation sequence is to connect one phase to positive, one to negative, and the third left floating. Then, to determine speed, I can measure the Bemf on the floating phase using an ADC and adjust the signal accordingly. Is this the general concept?

    Thanks for the help!

  • Aradalf,

    I'm not sure you understand exactly what you are getting into with motor control of 3-ph motors...it's not exactly that easy. With you wanting to focus on flight controls (BTW - there is already a pretty good open source flight control offering through Arduino) I would recommend the following options:

    1. use brushed motors. These are very simple to drive to a given torque, which is all you need to do with most single/quad copters

    2. if you use BLDC, there are products that will do sensorless BLDC commutation in the driver. Nick mentioned the TI device that does this with HALL sensors, but there are others that are sensorless. TI also has some of these, but they are typically lower voltage/current than you will need (meant for FAN applications). 

    here is a blog where someone uses one from Toshiba

    http://scolton.blogspot.com/p/flying-things.html#4pcb

    3. If you go the direction of wanting to have an MCU controlled inverter there are several options, the simplest being the MSP430 + DRV8313 running  a version of InstaSPIN-BLDC.  This may work for you or allow you to adapt to a higher power driver.  There is also InstaSPIN-FOC running on LAUNCHXL-F28027F and BOOSTXL-DRV8301.  This can bring better dynamic performance and better efficiency, but it's more complicated. It also will struggle with very, very, very low flux machines (it does well on motors like the EFLITE 420, but these teeny tiny little hextronix hobby motors just have such minute motor parameters that it's a challenge).  For your school project I don't recommend this route.

     

     

     

  • This page is a good place to start understanding some of the different methods of 3-phase sensorless control. It is targetted for C2000 devices but can help you understand the basics. You also google 3-phase sensorless control and find a variety of papers.

    Here is a MSP430 based quadcopter with brushed motors.

    http://43oh.com/2010/11/msp430-based-quadcopter-ez430-rf2500/

  • It is already much more complicated than I first anticipated!

    For this project, since I have a budget and time constraints, I'll just use brushed motors/servos per your recommendation. I'll reserve the brushless motor control for a personal project in the near future.

    Thanks again for all the help!

  • you're welcome....glad I saved you before you got too far! 

     

    cool 430 quad.  notice the use of gyros and acclerometers...that is what you need for true flight control stability like can be achieved with the DJI Pantom series (world's coolest quads, although the Festo bird is still the coolest flying "thing" I've ever seen)