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.

DRV8872: minimum current limit

Part Number: DRV8872

Hi,

i've setup a board with DRV8872 that should check for current overload for values of some mA. Trying to calculate the Risen value I've got abotut 500ohm R. Using it I don't get any movement neither nFAULT rise.

Is there a limitation on Risen o Isen? Is DRV8872 capable of check such small currents? If not, which DRV could be user?

Thanks

  • Hi Luca,

    Can you provide the following information?

    What is the supply voltage?

    What is the PWM frequency and amplitude?

    When are you measuring nFAULT? Is it a logic 1 before you try to drive the motor?

    What is the mA magnitude range you are trying to drive?

    Right now, with 500 Ohm Risen, you have a trip current of Vtrip / Risen = 0.35 V / 500 Ohm = 0.0007 A, which means the driver will slow decay the current at that magnitude, which is less than the mA you are mentioning.
  • Hi Ector,

    sure i can.

    Motor voltage is 12v.

    PWM f is 100hz.

    Always 1. It never goes to 0 (fault indicatio level).

    The motor is: https://www.faulhaber.com/fileadmin/Import/Media/EN_1016_SR_FMM.pdf. I've measured the current when i stop the axis and it's about 1,1ma. It's 0,1ma while running. I need to get rid of stop condition.

    Thanks

    Luca

  • Hi Luca,

    Do you get any motor movement or does it stop moving (0.1mA running, 1.1mA stop)?

    I think the issue stems from the Risen value selected:

    Right now, with 500 Ohm Risen, you have a trip current of Vtrip / Risen = 0.35 V / 500 Ohm = 0.0007A. The driver will limit your drive current to about 0.7mA, which is less than your 0.1mA driving current, to slow decay it.

    Have you tried to decrease the Risen value to increase your trip current?

  • Hi Ector,

    yes we have tried some condition.

    With Risn >= 8ohm do motor doesn't move and i've no nFault 0 level. I've pulled up the nfault pin directly from MCU.

    If I use a value <= 4 ohm , motor runs smothly, but i'm not about to get stuck movement  info by nfault.

    Luca

  • Hi Luca,

    Can you clarify the part of this sentence after the word smoothly?

    "If I use a value <= 4 ohm , motor runs smothly, but i'm not about to get stuck movement info by nfault."

    Are you measuring your current from the power supply or from a current probe to the motor cable? The bulk capacitors can provide current to drive the motor, so the best way to measure load current is on the motor cable.

    If Risen = 4 ohm, your Itrip is 0.35 V / 4 Ohm = 87.5 mA, which is a very large overhead for your Itrip value, given you are spinning motor at 0.1 mA if measured from motor cable. The less the Risen value, the closer your Itrip is to the motor current, which will lead the motor current to slow decay when the motor current reaches Itrip.
  • Hi Luca,

    I want to understand what you are trying to do, functionally, and if our driver in your application circuit can do it.

    Can you let me know if you are trying to watch Stall Current of this motor in your design? Or are you trying to achieve another function?
  • Hi Hector,
    i'm sorry, i've mistyped in first answer. The right one is: i'm not able to get stuck monitor status by nfault.
    Answering your second question: i need to get the moment when the motor stops due to end of range in objects the motor is moving.

    With Risen=4ohm the motor (and objects) moves. If I use 8ohm Risen it doesn't move.
    The really strange behaviour is that i'm not getting nFault error condition (low level).

    Luca

  • Hi Luca,

    See inline answers:

    i'm sorry, i'v mistyped in first answer. The right one is: i'm not able to get stuck monitor status by nfault.

    -> What does stuck monitor mean?

    ->The DRV8872 has three nFault conditions: UVLO, OCP, and TSD. The overcurrent protection, OCP will only trigger once the current has passed the typical OCP threshold, which is 4.5 A. In your application, I see you do not reach that current. If the stuck monitor you speak of is an OCP event, then you will not reach it.

    -> In case you have confusion: OCP current is not the same at TRIP current. OCP is fixed at a current magnitude. WHen your motor current passes the OCP current, the power stage turns off and nFAULT trips. When your motor current passes the TRIP current, the driver regulates the current (slow decay) by not interpreting the PWM and nFAULT does not trip.

    Answering you second question: i need to get the moment when the monitor stops due to end of range in objects the motor is moving.

    -> If you are trying to monitor when the motor stops moving its load(s), nFAULT will not do that for you. We can recommend a circuit that allows you, via firmware and hardware, to monitor the voltage on the OUTx pins. See the following TI Design and its Test Data Document's Figure 16:

    www.ti.com/.../TIDA-00145

    www.ti.com/.../tidu301a.pdf

    With Risen=4ohm the motor (and objects) moves. If I use 8ohm Risen it doesn't move.
    The really strange beahaviour is that i'm not getting nFault error condition (low level).

    -> If Risen = 4 ohm, your Itrip is 0.35 V / 4 Ohm = 87.5 mA. The larger the resistance, the smaller the current magnitude, which can lead to your circuit tripping the current at a value that prevents the motor from spinning.
  • Hi Hector,
    you are right, I've thought OCP was related to Isen. So that's it.
    I'll test the stall circuit as in TIDA.

    Thank you very much.
    Luca