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-Q1: Driving solenoids

Part Number: DRV8873-Q1
Other Parts Discussed in Thread: DRV8873H-Q1EVM, DRV8873, DRV8262

Tool/software:

I'm trying to find information on using DRV8873-Q1 to drive a solenoid.

I ordered an DRV8873H-Q1EVM and am especially interested in using this board to clamp a solenoid. I'm also curious if I can use this board to pulse the solenoid on and off at a frequency less than 100 Hz.

All helpful information is appreciated, and I believe I have read all the documentation TI supplies about solenoids, but likely missed helpful articles.

In the meantime, I will install the DRV8873H-Q1EVM UI program on my computer and see if that helps me figure out how to clamp a solenoid using this program.

Also, how long can DRV8873H-Q1EVM hold a current that is greater than 10 amps, if that is possible. I see its peak amp rating is 10 amps, but is that an intermittent peak? How long of a pulse?

I am new to solenoids and solenoid control, so please be understanding. 

Thanks!

Josh

  • Hey Josh,

    I ordered an DRV8873H-Q1EVM and am especially interested in using this board to clamp a solenoid.

    Yes, it should be able to if the solenoid is within the device's current capabilities.  

    I'm also curious if I can use this board to pulse the solenoid on and off at a frequency less than 100 Hz.

    Sure, that's no issue! Just apply that PWM signal to the EN/IN1 or PH/IN2 pin as you wish, see the datasheet 7.3.1.1 Control Modes section.  

    Also, how long can DRV8873H-Q1EVM hold a current that is greater than 10 amps, if that is possible. I see its peak amp rating is 10 amps, but is that an intermittent peak? How long of a pulse?

    10A is peak, typically only for a few milliseconds.  On this device 10A is the overcurrent protection trip level, so at some point at or above 10A the device will shut itself off to protect itself.  It will also overheat quickly near this current. 

    Check out the DRV8262 datasheet for an example of how this current rating changes for a given time for a load - DRV8262 has a peak current (OCP) of 8A (in dual-bridge mode), but the device can only do 2A continuously (DC) in dual-bridge mode.  It can do 4.5A for 1 second, or 3.4S for 10 seconds, or 2A continuously.  This device has a slightly lower R_DS(ON) and slightly better RθJA than the DRV8873, so I would expect DRV8873 to do slightly worse than this.  

    Here's our best resource on motor drivers with solenoids: Using DRV to Drive Solenoids (Rev. A) (ti.com) 

    Typically solenoids need a large amount of current for initially moving, but then don't need much current to hold in place.  This is called "Peak and Hold" control - it needs a peak current for a few hundred milliamps, then a hold current of 1/2 or 1/3 as much continuously.  So in that case DRV8873 might work for you if the hold current needed is <2A and the peak current < 10A.  

    Best,

    Jacob

  • Thanks, Jacob!

    Where does it tell you how to clamp a solenoid? I saw something about clamping after the unit protects itself by shutting off the load, but I don't think that is the same thing.

    I also discovered that if I add a heatsink to the board, I can "evaluate" higher currents, so I bought a heatsink and a thermal pad.

    Best regards,

    Josh

  • Hey Josh,

    I'm not sure what you mean by how to clamp a solenoid.  I was assuming that just meant that your solenoid has a claw or similar attached to it that "clamps" down onto something.  Maybe referring to clamping the current to a set level as to not give the solenoid more than x amps?  Our device does have various protection circuits, one of which is OCP (Overcurrent Protection) where the device will shut off if the current in a FET exceeds the OCP limit.  

    This device has four built-in ITRIP levels for current regulation - you could use these to adjust your drive current.

    That said, DRV8262 might work better for you since it has a VREF pin that is used to set the current regulation level.  Simply put in a voltage 0V - 3.3V on VREF pin and the ITRIP current will be set based on that.  If you're using a microcontroller with a built in DAC you could change this on the fly.  You can order the DRV8262VEVM which has the DDV package for max current capability and has a heatsink attached to it.  

    Best,

    Jacob

  • Hi Jacob,

    Thanks for being patient with me. Clamping is described in section 3.2.1 Freewheeling and Clamping of Basics of Driving Solenoid Loads. Here is the text from that section. " Clamping very quickly decays solenoid current by creating a large voltage spike opposite in polarity to solenoid current, voltage larger than with opposing MOSFET recirculation, as in fast decay"

    Does this help?

    Thanks!

    Josh

  • Ahh okay I see! 

    That's the difference between "Brake" (OUT1 HIGH and OUT2 HIGH) vs Coast (Hi-Z) current paths, vs setting the drive current in the opposite direction.  You'll have to experiment with them to see which suits your application best.  I believe having both outputs Hi-Z will stop the load the slowest and have no VM pumping (VM voltage increasing that you don't want), and high-side recirculation (brake) will stop it quicker, with driving the opposite direction will stop it the fastest.  

    Best,

    Jacob

  • Hi Jacob,

    I received the DRV8873H eval board yesterday evening and successfully installed the GUI and driver, but I am having difficulty figuring out how to enable driving the solenoid in the opposite direction after shutoff to quickly kill the flyback current.

    Do I need to add a solenoid "widget" to the program or do some custom programming?

    All advice is greatly appreciated.

    Best regards,

    Josh

  • Hey Joshua,

    Glad you got it connected! Yeah unfortunately for quick changes you'll need to do some custom programming.  The easiest way is to use your own external microcontroller and use jumper wires to jump in.  Just remove the 0Ω resistor for a given pin, then use a standard female jumper wire onto the header to jump that signal in.  If you want you can use the GUI for initial configuration of the device then your microcontroller to control the IN1/IN2 signals.  

    Our EVM firmware is also available on the product page, but admittedly it isn't designed well for modification.  

    Best,

    Jacob

  • Hi Jacob,

    On the truth tables in TI's documentation, I assume a 0 means it should be at low or 0 voltage and 1 means it should be at a high voltage, but what does an X mean?

    Thanks!

    Josh

  • Hey Josh, 

    Correct - 0 is LOW, 1 is HIGH.  X on the input side should mean "Don't care", as in it can be either low or high. 

    Then the output might say "Z" or "Hi-Z", this means High-Impedance mode 

    Best,

    Jacob

  • I have a raspberry pi to drive this, but I just realized that I have to remove a resistor to use the pins as input. Do I remove the resistor on each pin I need to control with the raspberry pi? 

  • Yes, exactly.  Make sure you connect a GND wire between the Pi and the EVM as well so that they have a shared GND reference. 

  • So, since I need to use the 3.3v, IN1, IN2, and nSleep pin, I have to remove the 0 ohm resistor on each of those pins? Just checking so I don't mess up this evaluation board.

    Thanks!

    Josh

  • Yes, should be R4, R30, R32, and R38.  Then a jumper from GND (top pin on J1) to GND on the Pi.  

    Though if you're going to use the GUI with the EVM still I would leave the 3.3V resistor (R4) on there and not use 3.3V from the Pi at all.  Just use IN1/IN2/nSLEEP/GND.  

    If you have to add a resistor back you can just use a solder-bridge (big blob of solder) instead of the 0Ω resistor if you want - same function.  

  • I don't plan on using the GUI, so I'll remove the 3.3v resistor. Any tips on using the board without the GUI? Should I use the GUI? If so, why?

    Thanks for answering all my silly questions!

    Josh

  • Okay sounds good.  GUI will let you easily adjust all the settings of the pins.  You'll need to compare to the datasheet and make sure you set up the MODE, SLEW, and SR (slew rate) pins to the correct settings for your device.  I'm not sure what state they'll be in if the MCU is off - I would suspect Hi-Z if they don't have a pull up/down resistor on the net, but I recommend verifying with a multimeter. 

    Or you can also control those with the Pi (or just connect them directly to 3.3V or GND rail).