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.

BLDC motor control basics using DRV8312/8313 and an MSP430/Arduino

Other Parts Discussed in Thread: DRV8312, DRV8313, DRV8313EVM, MSP430G2553, DRV11873, DRV8332, BOOSTXL-DRV8301, LAUNCHXL-F28027F

Hi, I am just getting my hands into brushless DC motor control. I have the Exceed RC legend Motor 2402-2350KV motor (Links provided below). I need to learn how to control it. Can you help me get started? 

I have samples of the DRV8312, DRV8313, and the DRV 8301 ICs. I also have Arduino nano, Due, and an MSP430 Launch Pad. I also have a variable 3V to 24 V power source. Using the above mentioned devices that I already have how do I proceed? please let me know if I need to procure any other electronics? I intend to make my own board using the above mentioned components.

Links to devices:

Motor: http://www.xheli.com/86mc213-2402-2350kv.html

Driver ICS: http://www.ti.com/product/drv8313 ,  http://www.ti.com/product/drv8312,  http://www.ti.com/product/drv8301?DCMP=analog_signalchain_mr&HQS=drv8301-pr

MSP430 Launchpad: http://www.ti.com/tool/msp-exp430g2

Arduino: http://arduino.cc/en/Main/ArduinoBoardNano

  • Sashwat Mahapatra said:

    Hi, I am just getting my hands into brushless DC motor control. I have the Exceed RC legend Motor 2402-2350KV motor (Links provided below). I need to learn how to control it. Can you help me get started? 

    I have samples of the DRV8312, DRV8313, and the DRV 8301 ICs. I also have Arduino nano, Due, and an MSP430 Launch Pad. I also have a variable 3V to 24 V power source. Using the above mentioned devices that I already have how do I proceed? please let me know if I need to procure any other electronics? I intend to make my own board using the above mentioned components.

    Links to devices:

    Motor: http://www.xheli.com/86mc213-2402-2350kv.html

    Driver ICS: http://www.ti.com/product/drv8313 ,  http://www.ti.com/product/drv8312,  http://www.ti.com/product/drv8301?DCMP=analog_signalchain_mr&HQS=drv8301-pr

    MSP430 Launchpad: http://www.ti.com/tool/msp-exp430g2

    Arduino: http://arduino.cc/en/Main/ArduinoBoardNano

  • Sashwat

    Please ignore my previous post; by mistake I replied your message again. Below are required details:

    Building Motor control solution using separate driver and MCU is quite involved task therefore to simplify the task, we do provide EVM (evaluation modules) with integrated MCUs and motor control software libraries as out-of box motor control solution. All the three devices mentioned by you have EVMs available in TI website.

    If your end requirement is to develop control solution using MSP430 than you can consider DRV8313 EVM (http://www.ti.com/tool/drv8313evm) because it comes with MSP430G2553 device.

    For complete list of available EVMs, please refer to TI’s motor control solution brochure at http://www.ti.com/lit/sl/slyb165f/slyb165f.pdf

    Best Regards

     Milan

  • Hey Milan,

    Thanks for helping me out. My end goal is to develop a control solution (develop a board with just a motor control IC and peripheral electronics) that I could plug into any micro controller board and command. Once finished I should be able to command it with and Arduino as well as an MSP430. So I am looking to develop a borad with one of the previously mentioned IC on it. I need not be as sophisticated as the TI EVMs. For now I have to just make it work. 

    Can you help me out here? where do I start? Can I just connect the DRV8313 IC to an arduino or MSP430 and try and write software to control it?

    Thanks Sashwat

  • Sashwat,

    All of the code and hardware files for the DRV8313 are at the link below:

    http://www.ti.com/tool/drv8313evm

    You can use this as a starting point. 

  • The driver ICs that you have may be a necessary part of a solution that you are looking to create but nowhere near as powerful as you need for your 2350KV motor. You'll have to build your own out of discrete MOSFETs. That's one issue, another one of course is that the H-bridge ICs provide commutation but the MCU will be responsible for creating the sequence of that commutation, and it's hard to combine that with anything else useful that you may want to make that MCU do. I played with BLDC and Arduinos quite a bit, some BLDC/Arduino info is posted here , and you can see on some of the videos that even a task as simple as reporting the RPM back to the PC  via the USB connection makes the motor twitch - the MCU is constantly busy servicing the motor, not much cycle time left for anything else. So, if you are just looking to start, check out that link for some basics but be ready to dedicate an entire MCU to the task since it's a pretty complicated one for a small 8-bit MCU.

  • Agreed with above, the motor control may be much more complicated than you expect.

    These little hobby motors are somewhat over / incorrecftly designed, with ridiculously low inductance for voltage stability, which means they have very high short circuit currents which make simple control techniques ineffective.

    Many of the hobby ESC companies have come up with some unique sensorless control techniques focused primarily on robustness of commutation.  Some essentially just vary the voltage bus, based on a current comparator for current trip/control and a Bemf zero cross type of commutation.  This type of control actually works pretty well for applications that only need to run at a few high speeds.

    Advanced techniques like Field Oriented Control bring some major benefits, but until now has been extremely challenging to implement. Our InstaSPIN-FOC solution (enabled by some software in ROM on select Piccolo devices) is the first to be able to do this for these types of motors: offering high frequency PWM (to offset the short circuit current), current control, angle compensation, and overall more effiecency (less current used = more battery time).  This solution can NOT be run on an Arduino. :)

    you'll see an announcement on a nice hobby friendly kit that support this shortly....

     

  • If you are looking to control disk-drive spindle motors or small sensorless BLDC motors, then you should try the DRV11873 from Texas Instruments.

    I ran a few tests using the evaluation module and I was pretty happy with the results and how easy was to use it (e.g. it allows you to spin the motor in both directions).

    http://youtu.be/BehC_sgthc8

    Notice that the DRV11873 is limited to BLDC motors with a common lead and upto 1.5A so if you need more power, then the drv8332 is a better alternative.

  • DRV11x is very cool, and very simple to use.  The problem is that these hobby motors that need to produce some torque will demand more current than the DRV11x can supply.

    BOOSTXL-DRV8301 is the best inverter platform for these hobby motors. 6-24V, up to 10A continous.  That meets the demands of many of the hobby motors, though note that some can pull 20-40A full loaded and many of them have very high short circuit currents which can demand a very high current at switching - especially at start-up - if not controlled correctly.

    Currently the control solution that is offered for this inverter is InstaSPIN-FOC on the LAUNCHXL-F28027F.  This is a very high end control solution, and I'll warn you, the software is not like using Arduino!  You will get deep into the software to make a final product.  The good news is that the framework of the softare projects are all built out for you, so you can quickly spin your motor within the limitations of the inverter and power supply.

     

  • Hey Chris,

    Do you know if TI will ever develop a similar board like BOOSTXL-DRV8301 as shield for the Arduino instead of just for the LAUNCHXL platform?

    Thanks for the information about the BOOSTXL-DRV8301 though.  I might order one just to see if I can control our our reaction wheels test system using the Arduino or the IOIO board.

  • Al,

    I've sent this over to the BOOSTXL-DRV8301 guys. Generally we try to build kits like this up to support complementary TI products, so this one was chosen to work with the TI LaunchPad ecosystem.  However, I undertsand supporting the Arduino system if they can, it's a good idea.

    Cool looking contraption!  Are the motors geared inside those cubes?  What's the typcial speed command range to the motor shaft you are giving?

     

  • Chris,

    Those are Faulhaber brushless DC motors. They have a maximum rotation rate of 60,000 rpm.  However, we only need a maximum of 50,000 RPM since that will be sufficient to generate a rotation rates of +/- 15 degrees/s around the X and Y-axes, and +/- 34 degrees/s around the Z-axis.

    Thanks again!

  • What speeds do you run them, just 50 kRPM, or variable speeds?

    As long as you aren't trying to run them very slow (for these high speed motors you don't get enough Bemf generated until a few hundred Hz for our FAST algorithm to work well in InstaSPIN-FOC) you can do this with our control solution quite easily.

     

  • Variable speeds in both directions (FR).

    Thanks for the heads up about the FAST algorithm.

  • The BOOSTXL-DRV8301 has all the pins you need brought out to the headers, so you can wire it into your Arduino.

    What kind of control technique are you using?

    If you get stuck, grab a LAUNCH-F28027F for $17 each and it will do what you need.

  • Thanks Chris.  That is exactly what I thought I could do (i.e. "wire it into the Arduino").

    We use PID to control them and SPI to communicate with all 3 motors.

  • Do these motors already have a controller integrated?

    If you are controlling them yourselves what sort of commutation/modulation scheme are you using?  Using hall sensors, encoders, or software for rotor position estimation?

  • No, they don't have a controller integrated.

    They use hall sensors.