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.

DRV8873: Motor Driver Stops working as voltage increases

Part Number: DRV8873
Other Parts Discussed in Thread: DRV8872

          Our company created our own evaluation board for the DRV8873HPWPT after frying the one made by TI: we damaged the usb communication portion of the board, so we made our own board to eliminate any external circuit from influencing our results in evaluating the motor driver. 

The original circuit for our board was based on the recommendations from the data sheet with these few key details:

  • Mode was connected directly to ground
  • The bulk capacitance was initially selected as 220 uF; our product has a top power consumption of 96 watts (16V supply and 6 Amp stall current from motor) so we aimed for 2.3 uF per watt
  • nFault was left floating (there was no micro to monitor the fault)
  • Disable was tied to ground
  • The slew rate was initially connected directly to ground
  • the IPropI resistor values were initially set at 680 ohms; based on a max current draw of 8 amps. 
  • nOL and nItrip each had a toggle that would switch between DVDD and Ground
  • PH, EN, and nSleep had toggles that would switch between an external 5V and ground
  • The heatsink underneath the motor driver was connected the a large ground plane on the opposite side of the PCB (2 layer), with the vias placed and sized as recommended in the data sheet. 

While evaluating the motor driver we followed the following procedure:

  1. When we connected this evaluation board to our motor we noticed that if we left the nItrip function disabled, the motor would operate at 10.5V, but would not operate at 12, 14, or 16V. 
  2. From this point we elected to leave nItrip enabled. 
  3. With this enabled, it allowed the motor to operate at 10.5V and 12 V reliably, but at 14V and 16V the motor would make a clicking sound before not operating, and cycling the nSleep pin would allow it to click again (16V) or work intermittently (14V)
  4. At this point we suspected that we were somehow exceeding the OCP limit despite our oscilloscope not showing any current transients above 9 A. 
  5. To attempt to solve this issue we tried changing the IpropI resistors to 820 ohms to limit the current to 6.7 A, but this yielded no change in behavior
  6. next we replaced the bulk capacitor with a 330 uF capacitor (3.4 uF per watt), but saw no change in behavior
  7. We also slowed the slew rate to a 22k ohm path to ground, but also saw no change in behavior. 

At this point we are wondering, are we right to assume this is an OCP fault? and if that it is the case why wouldn't the IpropI resistors prevent the current from hitting 10 amps. We also considered that it could be a thermal shutdown, but the data sheet states that in that event it would attempt to operate again after a time out period. 

I appreciate your help in advance, 

Arturo Saenz

  • Hi Arturo,

    Thank you for the detailed post.

    I will investigate this issue so please give me one business day to get back to you. Thank you.

  • Hi Arturo,

    Apologies for the late reply.

    Do you a schematic you can share?

    When we connected this evaluation board to our motor we noticed that if we left the nItrip function disabled, the motor would operate at 10.5V, but would not operate at 12, 14, or 16V. 

    Is the motor not spinning at all when operating above 10.5V? Have you checked that you have the current limit on you power supply set higher than the peak current your motor will draw?

    With this enabled, it allowed the motor to operate at 10.5V and 12 V reliably, but at 14V and 16V the motor would make a clicking sound before not operating, and cycling the nSleep pin would allow it to click again (16V) or work intermittently (14V)

    Can you provide waveforms showing VOUT1 and VOUT2 and IOUT if possible. If this i a fault occuring, I can deduce from the waveforms the type of fault that may be occuring.

    At this point we suspected that we were somehow exceeding the OCP limit despite our oscilloscope not showing any current transients above 9 A.

    Please provide the waveforms I requested above. Typically OCP will latched on the DRV8876H. so the device will require a reset to resume operation.

    next we replaced the bulk capacitor with a 330 uF capacitor (3.4 uF per watt), but saw no change in behavior

    Did you observe any large voltage ripples or sudden spikes/drops in the power supply? If not, then increasing the capacitance may not help fix this issue.

    We also slowed the slew rate to a 22k ohm path to ground, but also saw no change in behavior

    slowing down the slew rate will help minimize any voltage/current undershoot/overshoot spikes. Did you capture any waveforms showing the output voltage or current with slower or longer slew rates?

    Sorry for the multiple questions. I just want to make sure I have all the information I need to help you find the root cause of the problem and how to fix it.

  • Pablo, 

         I apologize for the delayed response, we had some other pressing projects take priority over this trouble shooting. I will work on collecting the data you are requesting tomorrow. Thanks for your time and help. 

  • Arturo,

    That's alright. Looking forward to the data.

  • Good morning Pablo, 

         To answer your questions in order:

    1.) Here is the schematic of our custom daughter board.

    2.) The power supply current limit was set to 12 A. 

    3.) We have two different motors, motor 1 has a stall current of 5.69 A @ 12V, motor 2 has a stall current of 7.70A @ 12V. For some reason the motor with the higher stall current (which originally began this troubleshooting) was working intermittently whereas before it wouldn't operate at all. 

    At 16V here are the screenshots for both.

    Motor 1, EN: 5V, PH: 0V (Successful operation)

    Orange trace is Iout

    Blue trace is Vout1

    Purple trace is Vout2

    initial current spike transient was 7.36 A, steady stall current measured 6.63 A

    Vout1 went from 16.4V on the high side, and 200-800 mV on the low side

    Vout2 went from 16.2V to 15V

    Motor 1, EN: 5V, PH: 5V (Successful operation)

    There was a positive current transient that was out of the measuring range, steady stall current measured -6.82 A

    Vout1 went from 16.6V to 15.0V

    Vout2 went from 16.4V to -400 mV

    Motor 2, EN: 5V, PH: 0V (intermittent operation)

    3 of the current transients were outside the measuring range, but the current draw was 6.45A

    Vout2 went from 16.4V to 15.2V

    current prior to shutoff measured 6.27A

    Vout1 went from 16.6V to 200 mV

    Vout2 went from 16.2V to 15.2V

    Motor 2, EN: 5V, PH: 5V (successful)

    There was a negative transient that was outside of measuring range, the current prior to shutoff measured 6.81 A

    Vout1 went from 16.4V to 15.2V

    Vout2 went from 16.2V to -200 mV

    4.) We did not observe any drops in voltage on the power supply specifically. 

    5.) We did not take any waveforms with the slew rate shorted straight to ground but we can if necessary. 

  • Let me know if you have any follow up questions regarding the data I provided, or if additional data is needed. 

    Would it also be possible to schedule a conference call for this matter? I appreciate your support.

  • Hi Arturo,

    Apologies. I have been busy with other tasks and haven't had the chance to look into the information you sent. I will give you an update later today.

  • Hi Arturo,

    apologies for not providing an update on Friday. Was occupied with other task priorities.

    I have a few more questions:

    1. after the fault occurred, did the driver completely shutoff. Did you have to reset power to re-enable the device. By default, the non-SPI variant of the DRV8873 will latch the fault during an OCP event. It is not visible on the waveform but you might see a current spike if you zoom in near the area where the outputs were disabled.
    2. If the driver is retrying after some time, it is most likely due to thermal shutdown.

    Since the nFAULT pin is open, it is hard to tell when the fault occurs of is any fault is actually occurring. So we'll have to determine by analyzing the waveforms. The waveforms you sent don't give us much information aside from the the fact that the driver is disabled when the motor stalls. Can you provide more waveforms. One zoomed in where the outputs are disabled and one zoomed out to 100ms or so.

  • Good morning Pablo, 

         The fault would latch, I would have to cycle the nSleep pin to be able to try again. I will work on getting you a few more waveforms. 

  • Arturo,

    Since it latches, this narrows it down to an OCP fault. However, I would like to see the zoomed in waveforms to confirm.

  • Pablo, 

    I evaluated the motor that causes the issue more frequently and observed the following: 

    up to 13V, the motor driver will be able to operate simply by toggling the phase and enable pins (not resetting the sleep pin), if the enable pin is stopped prior to the motor stalling. 

    At 14V and above the motor driver needs the nSleep pin to be reset after every operation, whether the operation occurred or not. 

    Despite the behavior observed just the other day, the actuator was not able to shift at 16V today. However, I was able to get a screen shot of the waveforms on a failed attempt at 15V. 

     Iout had a transient of -10.1 A, and then 6.81 a for roughly 10 ms

    Vout 1 and 2 had their rise when nSleep was given 5V, and dropped when Enable was given 5 volts

    This is what the Vout wave forms looked like after that 10.1 A current transient. 

    The transient suggests to me that we are absolutely hitting the OCP limit. But this is leading to more confusion on my part: do the Iprop resistors not limit the current? Earlier you had mentioned that the slew rate could help with transients, but will a slower slew rate also mean that the motor is slowed down? We are looking to maximize the torque and speed output of this motor, which was the reason for evaluating the 8873 as a potential upgrade compared to the 8872. 

    Again we are more than open for a conference call to see if we can clear some of our confusion. 

  • Hi Arturo,

     Iout had a transient of -10.1 A, and then 6.81 a for roughly 10 ms

    I'm a little confused on the waveform y-axis division scale for the current waveform. You mantion the transient is -10.1A but I see that the 0-A cursor is below the screen. How is the current negative?

    This is what the Vout wave forms looked like after that 10.1 A current transient. 

    It looks like there is a very fast transient right before current begins to be regulated at ~6Amps. If this were to be an OCP fault, the outputs would be disabled right after the large transient (if above the OCP threshold). But it does regulate the current for some time (~10ms) before both outputs are disabled. Something weird is definitely happening. Since the FAULT is getting latched, an OCP fault is most likely what's occurring here. However, not being able to see the nFAULT signal makes it harder to prove when the fault is actually being triggered. Is it possible on your board to place a pull-up resistor to DVDD on the nFAULT pin?

  • Good afternoon Pablo, 

         I understand the confusion we are using a bidirectional hall effect current sensor to measure the current, the baseline voltage is 1.65V and 44 mV is equivalent to 1 amp, so the bottom cursor was at 1.206V which was 444 mV less than 1.65V. in the other direction, the current reads positive i.e. higher than 1.65V. 

        I am able to add a pull up resistor to DVDD with the daughter board design as is, and i could solder a wire to the output to monitor it via the scope. I will hopefully have that info for you tomorrow. 

  • Arturo,

    Thank you for the explanation. It makes sense to me now.

    Please send me the scope shot showing nFAULT.

  • Good afternoon Pablo, 

    I placed a 10k pull up resistor on the nFault pin, but it is going to the external 5V supply rather than DVDD due to the board design. anyway here are the screenshots:

    This is the zoomed out shot

    This is just the current and the nFault pin. Current transient went to -9.1A, and the steady current for the 7.5 ms was about -6.91 A. The nFault signal went from 520 mV to 0V (Is 10k too large of a value for the pull up resistor?)

    This is a close up that shows what the Vout signals were doing in the same time frame. 

    I hope this is helpful. 

  • TMI Engineering management is requesting a meeting for tomorrow Friday Dec 3rd, we have an urgent customer meeting on monday Dec 6th, and we are no closer to having answers regarding this motor driver. Additionally we are observing in the DRV8872 that a Chinese competitor chip is outperforming the TI chip in terms of steady current operation in our products, and our end customer is pushing us to reconsider the use of TI's motor driver products. 

  • Arturo,

    I will send you a private email.

  • Good morning Pablo,

         The customer meeting has now passed, but TMI still feels that it would beneficial to have a conference call to discuss optimization of the DRV8873 and DRV8872. As mentioned in my last response, my email can be used to organize the meeting. 

    With Best regards, 

    Arturo Saenz

  • Hi Arturo,

    Let's have this discussion via private message instead of email. I will send you a message shortly.

  • Hi Arturo,

    Let's move this discussion over to private E2E message. I will close this thread for now but will reply to this post if there is anything that may benefit other E2E users.