DRV8316REVM: Assistance Needed with DRV8316R and LaunchPadF280025C for BLDC Motor Control

Part Number: DRV8316REVM
Other Parts Discussed in Thread: DRV8316

Tool/software:

Dear TI Expert,

I am currently using the DRV8316R motor driver in combination with the LaunchPadF280025C to run a BLDC motor my main intention is to run a BLDC motor in low speed around 0.15 RPM.

The same motor operates successfully at slow speed with the Arduino Mega, LaunchPadF280025C, and ST driver (L6234). However, when I attempt to run it using the DRV8316R, I encounter the following issues:

  • The motor initially starts spinning but then freezes and jerks ("chucks").
  • All the driver registers reset to their default values.
  • The LaunchPadF280025C continues to output PWM signals on all phases, but the DRV8316R driver produces no output.

Additionally, I’ve observed the following behaviors:

  • When I disable the current limit, the motor occasionally runs at an extremely high speed and triggers faults. If I adjust the delay to slow it down, the motor freezes again without any fault, and the registers reset to their default values.
  • In some cases, the motor triggers an overcurrent fault without spinning. Disabling the overcurrent fault causes the motor to freeze once more, with all the registers resetting to their default values.

I would greatly appreciate any guidance or suggestions on troubleshooting this behavior.

important to mention:

I unlock the register's

DRV8316R_writeRegister(mySPIA_BASE, 0x03,drv8316regs.CTRL1| 0x03);

I'm using 3 PWM mode:

DRV8316R_writeRegister(mySPIA_BASE, 0x04, drv8316regs.CTRL2| 0x04);

i set the INLx to HIgh as shown in the table


All the register go back to default value:

Fault:

run very fast with fault's:

Video:


I set the DRVOFF pin to low 

My older posts:
A, B


Thank you in advance for your assistance!

  • Hey Shahar,

    I am assuming that there might have been a brief supply dip during an OC event which would have reset the SPI.

    Can you measure the following signals. OUT A, OUT B, OUT C, Phase A current and VM- on one plot? I want to see the commutation. Maybe try to trigger on nFault.

    What all faults are the driver reporting? 

    Best,
    Akshay

  • Hi, thanks for the quick response!

    I’m currently observing a fault condition in the IC_Status_Register, which indicates that a fault has been detected. Additionally, in the Status_Register_1, I’m seeing one of the following fault codes:

    1h = Overcurrent detected on the high-side switch of OUTA/B/C.

    In addition, when the motor run ,the driver consumes the maximum current that the power supply can deliver.

    OUT A, OUT B, OUT C:



    Voltage:


    Many thanks!

  • Thanks Shahar,

    Could you capture the other signals as well ? And please trigger on nFault so we can see the before and after and also the phase current when this happens Will review them and provide feedback.

    What are the signals on the voltage waveforms?

    Best,
    Akshay

  • Hi,

    I have connected the NFAULT signal, DRV8316 phase to monitor the DRV8316, and the NFAULT fall as expected. However, there is no Fault in the register's and there is no output from the DRV8316 phase.

    The PWM signal from the Launchpad is being generated and sent correctly.

    Could you please help me identify the issue or suggest troubleshooting steps?

    Thank you!

  • Hey Shahar,

    Can we get the waveforms in one scope shot to analyze?

    also is SPI not working or is spi getting reset?

    Best,
    Akshay

  • Hey,

    The SPI is reset after the motor activation. 

    voltage waveforms:




    we notice the DRVOFF go up and down

    Thanks!

  • Hey Shahar,

    In the last waveform what are the yellow and blue signal? I am assuming the green is the DRVOFF.

    Earlier you mentioned getting overcurrent fault being reported then you mentioned SPI is getting cleared and no fault is reported. Did something change between the two tests? or does this behavior fluctuate?

    Also if the DRVOFF signal is not toggling due to MCU command then I am suspecting that there is a ground bounce resulting in this pin going high and then low. 

    Are you using the DRV8316EVM or have your own board? If this is your own board can I see the schematic?

    Best,

    Akshay

  • Hi Akshay,

    In the last waveform what are the yellow and blue signal? I am assuming the green is the DRVOFF.

    Indeed

    Earlier you mentioned getting overcurrent fault being reported then you mentioned SPI is getting cleared and no fault is reported. Did something change between the two tests? or does this behavior fluctuate?

    The behavior fluctuates. Most of the time, the SPI clears the fault.

    Are you using the DRV8316EVM or have your own board? If this is your own board can I see the schematic?

    We are using the DRV8316EVM, not a custom board.

    Also if the DRVOFF signal is not toggling due to MCU command then I am suspecting that there is a ground bounce resulting in this pin going high and then low. 

    We initially suspected ground bounce as a potential cause for the toggling of the DRVOFF pin. However, even after isolating the DRVOFF pin from the board, the motor continues to freeze.

    Thanks

  • Hey Cohen,

    Are you setting a current limit in HW or software? and had you gotten a chance to measure phase current? 

    Did you run into any issues when using our EVM software?

    Are you using 6x mode or 3x mode?

    Best,

    Akshay

  • Hi Akshay,

    Thank you for reaching out.

    The current limit is set in hardware at 2.5A. Unfortunately, we currently don’t have the option to measure phase current. Regarding your EVM software, we’ve encountered limitations as it does not support low RPM operation, which is critical for our application.

    As mentioned earlier, we are using 3x mode for our setup.

    Please let me know if you have any recommendations or if there’s additional support available for low RPM scenarios.

    Thanks!

  • Hey Shahar,

    Based on the current sense output, what current is the motor consuming?

    Best,

    Akshay

  • The maximum current I set was 2.7A, and it is fully consumed.

  • Hey Shahar,

    Are you running FOC code?

    Also had you tested using the DRV8316EVM with our GUI? Did that work as expected?

    If the code you used worked with a different driver/board (L6234) but has sissues with our driver I wonder if the feedback of back emf/current sense is different between the two boards leading to MCU code acting different. For ex. If the back emf feedback resistor values or current feedback going to MCU  is indicating that more current is needed from the supply incorrectly, this could lead to motor spinning very fast and high current leading to supply tanking (and spi reset as a result). So I would try to figure out what is different between the working solution and current solution from a HW and SW perspective.

    Best,
    Akshay

  • Thank you!

    We're returning to try again the Universal Motor Lab.

  • Hey Shahar,

    Understood, let us me know once you check the above comments.

    Best,

    Akshay