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.

DRV8832: Need to detect stall condition

Part Number: DRV8832
Other Parts Discussed in Thread: DRV8835, DRV8837, DRV8838, DRV8850, DRV8872-Q1, DRV8837C, DRV8872, DRV8833C, DRV8833, DRV8848, DRV8312

Hello,

i am new to motor control circuit and i am looking for a low voltage motor driver for a power constraint battery operated application. I looked at the selector guide at slyb165i.pdf but i am not sure how to pick one as per the requirements below. Some pointers here will help me a lot

Here are the requirements.

- Control either a DC brushed motor (rated 4-5V) or a Servo motor SG90 (rated 5v) Only one at a time on the output connector

- Require precision shaft position control

- It will be powered by two CR2032 batteries

- There is a SoC that is capable of PWM or PH/EN control 

- When motor not in use still the battery would be connected and hence shouldnt draw any power (ideally)

- When motor shaft position stalls due to physical lock conditions, the controller should generate an interrupt to SoC/CPU (3.3v level). 

DRV8832 seems to come near my requirement but without motor shaft lock position

Pl suggest if Servo or DC motor can be controlled from the same DRV device/circuit (either one present at a time)

How to detect motor stall from SoC/CPU

How to keep shaft position in desired angle at varying battery levels?

Thank you in advance

  • Hello Sundar,

    Here are some of my thoughts on your requirements.

    • The SG90 servo is already a self-contained system. From a quick Google search, it appears to have a brushed DC motor and its own motor driver circuitry already inside it. You may have difficulty implementing a solution that can drive a plain DC motor AND the servo from the same connector.
      • One way to do this is to use a large connector with separate pins for the servo and for the DC motor.
      • There may be a way to power the servo from the output of a motor driver, but this isn't a typical use case for our driver ICs.
    • Our brushed-DC motor drivers do not have a stall detection feature integrated, but you can implement it with external circuitry.
      • This application note shows a simple way to do it with the DRV8711-Q1.
      • Many times stall detection can also be done with current sensing.
      • Many of our devices protect against over-current conditions that occur during stall conditions. The device reports this with a fault signal, if that works for you. However, our devices integrate many protection features, so the fault may not necessarily indicate a stall condition.
      • However, if you require precision shaft control, then that means you will need some kind of shaft position sensor (possibly a rotory encoder). If you have this, then you can very easily see if the motor has stalled because the position will stop changing.
    • I don't understand the question about keeping shaft position angle for varying battery levels, but using some kind of feedback control method with the position sensor should help to do this

    For motor driver products, you'll want to look at our Brushed DC Drivers with FETs. I assume you only need 1 full H-bridge. If you want to sense the current in the motor, I recommend the DRV8850. However, if power consumption during sleep is a bigger concern, I recommend the DRV8837 or DRV8838. I do not recommend the DRV8835 because I think its speed regulation feature will interfere with any closed-loop control algorithm you may want to implement.

  • Hi James,

    Thank you for the pointers

    --> I see only DRV8872DDA in the catalog how much is DRV8872-Q1 different ?

    --> Also the stall or over current protection seems to work only at OCP >1.2A in DRV8873C, what if i want to configure it to a particular value based on my motor spec.  My motor will be very tiny with stall currents in 600-800 mA range

    --> Is this stall detection App note applicable only for DRV8872-Q1 or can i use it with DRV8837C  as this doesnt have external RSENSE  and a fixed ?

    --> I didnt very well understand this line on 25 us tOFF  in that App note. Can you elaborate.

    The MCU can then measure the time interval between the first falling edge to the next rising edge and compare it to the tOFF time of the device. If this time interval is less than tOFF equal to 25 µs (with about 10% tolerance), it can be concluded that the motor has stalled. At this point, the MCU must shut off or change the rotational direction of the motor.

  • Hit submit accidentally...

    --> In point two, i meant DRV8837C (not DRV8873C)

    --> Is there a way to implement stall detection along with DRV8837C device with externally settable OCP threshold? if not pl suggest alternate

    Thank you
  • Sundar,

    1. DRV8872 is our catalog device, and DRV8872-Q1 is qualified for automotive applications. Their function and parameters are identical.

    2. The OCP on the DRV8873C is fixed at 1.2 A, as you saw. I spoke to a colleague today about OCP, and I want to correct my statement about using OCP for stall in the previous post. The main purpose of OCP is to protect the IC when the outputs accidentally short to VM or GND. It should not be used to detect stall conditions. There are a few reasons for this: 1) due to part-to-part variation of motors and ICs, a particular OCP setting may not “detect” the stall condition for some systems, and 2) The motor currents at startup come close to the stall currents, so the motor may not start spinning correctly.

       If you want to detect a particular current in the motor using the DRV8837C, you could potentially add a resistor in series with the motor, and add a comparator or current-sense circuitry to measure the current in that resistor.

       The DRV8850 is the best choice if you want to sense current.

       The DRV8848, DRV8833, and DRV8833C offer current regulation. These devices will limit the current during start up and stall conditions. Also you can use the stall-detection method described in the application note in the previous post with these devices.

    3. The DRV8837C cannot implement the stall-detection app note because it does not regulate the motor current with chopping.

    4. The 25 us tOFF time refers to the off time when the current is being regulated. The current regulation method in the DRV8872, DRV8833, and DRV8848 is implemented with “current chopping.” This is similar to PWM, but the off-time (tOFF) is a fixed value for the DRV8872. The datasheet explains current chopping in detail.

  • Hi James,

    Can you suggest a current-sense circuit for stall detect to be used with DRV8837C ? Will Op-amp ckt in page 26 (Figure 16) of the DRV8312 datasheet work for me?

    Also if i have to add a series sense resistor I think it cant place it in series with motor as the direction of current & voltage will change depending on which direction the motor spins. Can i add it in series sense resistor in high side (VM) or low side (GND) of DRV8837C pins ?

    Rgds

  • Sundar,

    I think the circuit in the DRV8312 datasheet will not be the best solution for the reason you mentioned. Check out TI's integrated current sense amplifier portfolio or post to our Amplifiers forum for a good recommendation. Some of our current sense amplifiers may be able to handle the change in polarity, but I'm not sure.

    Is there a reason you don't want to use the DRV88850? That's our only device in your voltage range that is designed for this kind of current sense application.