• TI Thinks Resolved

DRV8320: DRV8320H Motor Hums but does not spin.

Part Number: DRV8320

Hi,

I'm having problems with DRV8320H.   Motor hums but does not spin. 

I am running with following settings..

* Supply Voltage 12.5V@24A.

* 1x PWM with MODE pin floating.

* PWM /  I/O controlling from Arduino.

* IDRIVE and VDS are pulled up to DVDD with 18K resistor.

* Motor resistance between each phase is 0.3 Ohm.

* Motor configured as Delta Winding. 

Thanks,

  • Hello Raj,

    Couple of questions:

    1. Is a fault being generated?

    2. Is this your own board or TI EVM?

    3. Do you have a load? Please, spin motor without load first.

    4. Does VM = VDRAIN = 12.5 V?

    5. Have you verified the schematic and the connections to each FET are valid? No open nodes GHx, GLx, SHx.

    6. Have you verified connections from FETs to motor are valid?

     

    Hector Hernandez
    Motor Applications Team

  • In reply to Hector Hernandez Luque:

    Hector,

    1. Is a fault being generated?

    No...

    2. Is this your own board or TI EVM?

    My own board. 

    3. Do you have a load? Please, spin motor without load first.

    No Load at all.

    4. Does VM = VDRAIN = 12.5 V?

    When running it's 12.20V.

    5. Have you verified the schematic and the connections to each FET are valid? No open nodes GHx, GLx, SHx.

    Yes, everything checked.

    6. Have you verified connections from FETs to motor are valid?

    Yes....

    What is the drive time in between each states in 1x PWM mode? 

    I am using 4000ns drive time and 100ns dead time.

    FYI: 

    * Motor is working with delta and star configuration with other non-Ti Ebay controllers .

    * SLA, SLB, and SLC are connected to ground.

    * Mosfet specs...

    Logic Level Gate Drive (+/-20v max)•  75A, 30V •  On-Resistance, rDS(ON) = 0.0075Ω

    Turn-On Time tON 120 ns

    Turn-On Delay Time td(ON) - 16 - ns

    Rise Time tr - 65 - ns

    Turn-Off Delay Time td(OFF) - 90 - ns

    Fall Time tf - 55 - ns

    Turn-Off Time tOFF - - 218 ns

    Thanks...

  • In reply to Raj44:

    Hi Raj,

    Are you using hall sensors?

     

    Hector Hernandez
    Motor Applications Team

  • In reply to Hector Hernandez Luque:

    Hector,

    No hall sensors...


    Thanks...
  • In reply to Raj44:

    Hi Raj,

    Can you verify if your commutation is correct, according to Table 4 of the datasheet?

    Also, what PWM frequency are you using to commutate?

    I think there might be a commutation step being skipped.

     

    Hector Hernandez
    Motor Applications Team

  • In reply to Hector Hernandez Luque:

    Hector,


    Please see attached simple Arduino codes for commutation.
    The Align function works and it rotates shaft of the motor some degrees.
    /*
    ///////////////////////////////////////////////////////////////////////////////////////
    Pin 8 = Enable
    Pin 9 = PWM INHA
    Pin 10 = INLA STATE
    Pin 11 = INHB STATE
    Pin 12 = INLB STATE
    Pin 13 = INHC DIR

    INLC nBRAKE = tied to DVDD

    STATE INLA INHB INLB
    Stop = 0 0 0
    ALIGN= 1 1 1
    1= 1 1 0
    2= 1 0 0
    3= 1 0 1
    4= 0 0 1
    5= 0 1 1
    6= 0 1 0
    */
    //////////////////////////////////////////////////////////////////////////////////

    int enable=8;
    int PWM=9;
    int INLA=10;
    int INHB=11;
    int INLB=12;
    int DIR=13;

    int delai=5;
    int SPEED=50;

    void setup() {
    //PWM Frequency 3921 Hz
    TCCR1B = TCCR1B & B11111000 | B00000010; //3921hz
    pinMode(enable,OUTPUT); // pin 8
    pinMode(PWM,OUTPUT); //pin 9
    pinMode(INLA,OUTPUT); //pin 10
    pinMode(INHB,OUTPUT); //pin 11
    pinMode(INLB,OUTPUT); //pin 12
    pinMode(DIR,OUTPUT); //pin 13

    digitalWrite(enable,HIGH);
    delayMicroseconds(1);

    analogWrite(9, SPEED);
    delayMicroseconds(1);

    digitalWrite(DIR,LOW);
    delayMicroseconds(1);

    //STOP
    digitalWrite(INLA,LOW);
    digitalWrite(INHB,LOW);
    digitalWrite(INLB,LOW);
    delay(delai);

    //ALIGN
    digitalWrite(INLA,HIGH);
    digitalWrite(INHB,HIGH);
    digitalWrite(INLB,HIGH);
    delay(5000);
    }

    void loop() {
    //Direction = 0
    //STATE 1 B>C
    digitalWrite(INLA,HIGH);
    digitalWrite(INHB,HIGH);
    digitalWrite(INLB,LOW);
    delayMicroseconds(delai);

    //STATE 2 A>C
    digitalWrite(INLA,HIGH);
    digitalWrite(INHB,LOW);
    digitalWrite(INLB,LOW);
    delayMicroseconds(delai);

    //STATE 3 A>B
    digitalWrite(INLA,HIGH);
    digitalWrite(INHB,LOW);
    digitalWrite(INLB,HIGH);
    delayMicroseconds(delai);

    //STATE 4 C>B
    digitalWrite(INLA,LOW);
    digitalWrite(INHB,LOW);
    digitalWrite(INLB,HIGH);
    delayMicroseconds(delai);

    //STATE 5 C>A
    digitalWrite(INLA,LOW);
    digitalWrite(INHB,HIGH);
    digitalWrite(INLB,HIGH);
    delayMicroseconds(delai);


    //STATE 6 B>A
    digitalWrite(INLA,LOW);
    digitalWrite(INHB,HIGH);
    digitalWrite(INLB,LOW);
    delayMicroseconds(delai);
    }





    Thanks...
  • In reply to Raj44:

    Hi Raj,

    1. Have you measured DVDD to make sure it is 3.3V?

    2. Your delai and SPEED parameters are how much regarding time?

    3. Your PWM is 3.921 kHz, correct?

     

    Hector Hernandez
    Motor Applications Team

  • In reply to Hector Hernandez Luque:

    Hector,

    1. Have you measured DVDD to make sure it is 3.3V?

    Yes....it's 3.196v


    2. Your delai and SPEED parameters are how much regarding time?

    Microseconds...


    3. Your PWM is 3.921 kHz, correct?

    Yes...

    I could not find the Launchpad codes for the evaluation board.... Is it possible to get to see how it drives?    Then I can implement on my own board with Arduino...    

    I need to know exact timing I need to apply in between the commutation states.

    Thanks...

  • In reply to Raj44:

    Hi Raj,

    The thought I have relates to your commutation speed. It appears you communicate without getting positional feedback from halls, voltage zero crossing, or current measurement on the feedback. If the only parameter that separates you from proceeding to the next commutation is a delay, it might be too fast or too slow and the motor magnets do not have enough time to energize and commutation the phase change or take a long time between each phase change.

    Launchpad code can be found here:

    www.ti.com/.../slvc683

    Install the firmware executable, and during installation you can see in what directory location the firmware installs in so you can view the source code.

     

    Hector Hernandez
    Motor Applications Team

  • In reply to Hector Hernandez Luque:

    Hector,

    Does  eval board codes support parallel control?   I am trying to achieve with figure18 synchronous 1x PWM mode.

    Thanks...