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.

DRV8301 3 PWM vs 6 PWM mode

Other Parts Discussed in Thread: DRV8301, MSP430F5638

I'm going to be wiring up a DRV8301 to an MSP430F5638 and I'm confused as to why I would choose a 6 PWM control mode over a 3 PWM.  The positioning on this device doesnt need to be super-accurate for this application, and I could sure use the 3 GPIOs for other things.

Can someone point me in the direction of documentation, white papers, etc. that might help fill me in?  I'm a motor control newbie so this is a learning experience for me.

All help appreciated!

Ed Averill

 

  • Hi Edward,

    3 PWM mode allows you to set the half-bridges either high or low. Deadtime is determined by the DRV8301.

    6 PWM mode allows you to set the half-bridges high, low and hi-Z. Deadtime is determined by the DRV8301 + what ever is inserted by the MCU.

    What are you intendting to drive? A 3-phase BLDC motor? If so, what kind of control method do you plan on using? Just let me know if you have any questions.

  • Hi, Nick, and thanks for your response!

    We're driving a 3-phase BLDC motor to run a gate.  It doen't need to be super accurate or super-responsive, it just needs to open wide and close enough to keep someone out.    The DRV8301 looks good because of a lot of it's current protection and sense features, plus it looks to meld well with the F5638.

    The main issue is that we're low on GPIOs (you wouldn't beleive the things we're having to monityor) so if we can get away with just burning 3 Port2 pins for PWM, it would be a big help.

    We're goiung to have Hall sensors, a seperate encoder on the motor shaft, and an external current sensor to watch the motor with.  UL has requirements on max speed, max pressure if blocked, and about 400 pages of other stuff so we're going overboard on watching the motor.

    While I have tons of embedded exerience with TI products (OMAPs all over the place, MSP430s here and there) motor control is new to me so I'm learning as I go.

    I've found a great resource on your site, MSP430 code for using PWMs to drive a motor, using a closed loop
    (PID) to adjust the motor, which has really helped me along.

    Again, thanks for the help!

    Ed Averill

     

  • Ed,

    Is this the MSP430 app note you are talking about? It is indeed a good reference.

    http://www.ti.com/lit/an/slaa503/slaa503.pdf

    Unfortunately, in this control method you require the ability to hi-Z the half bridges (AKA need 6 PWM mode). You will see this explained on page 4.

    There are 3 phases to energize in a BLDC motor. You have a half bridge connected to each phase. You can google BLDC Delta vs Wye confidguration to see how these phases are configured inside of the motor.

    Basically at any given time, current is flowing through one phase (A->B, B->C, C->A, etc.). So you need to have one half-bridge high, another low, and the third one Hi-Z.

  • That's the one, and.. ouch.. losing those 3 interrupt-capable pins would be a bit of an issue.

    I suppose there must be some way I can use the rotary encodersd and Hall sensors to accurately control the motor..  surely someone out there is running a DRV8301 in 3-PWM mode.  As long as I can move the motor, with the inpouts I have I should be able to concoct a UL-acceptable control scheme..

    Much thinking and talking with our EE is going to be required, I see.

    Again, I *really* appreciate the help! Yesterday I knew zero about motor control, today.. my head hurts (heh)!

    Ed Averill

     

  • No problem.

    People will use 3-PWM mode for driving independent loads off of each half-bridges.

    It can also be used for sinusoidal control of the BLDC motor, also known as field oriented control (FOC). You may want to look into this if you wish to save the GPIO. There should be numerous resources on the web. In this control scheme the hi-Z state is not required.

  • Did you solve it? Thanks!

  • Not yet - I was out sick yesterday, so only today am I diving into research.  I likely won't have anything meaningful to post until next week, after the Monday holiday here in the U.S.

    Ed Averill

     

  • After researching sinusoidal PWM control, we've decided to go with a 6 PWM soluution as we can use some of the previous contractors motor control code.  While the sinusoidal solution makes sense, it'd cost us in new development and debugging time.

    We're just going to stick a 24-pin GPIO expander on the board to give us enough I/O for this solution.

    Thanks for all the help!

    Ed Averill