Please do!Mind if I crash into this thread?
Cool.The company I work for happens to manufacturer snubber networks for several major relay manufacturers. We do it for them as we can handle bare die and produce a simple string of parts with special wire on the ends. "Special" here means solid cupron bus wire which can both be soldered and welded.
Yep - that's exactly what the simulations I posted in reply #3 show. The 1st image compares using just a diode with a diode & resistor in series across the coil. The voltage scales on the left show the higher voltage on the lower plot, and the current scales on the right show more rapid decay of current with the resistor.I've personally designed relay timers that mount inside the relay housing and they all use this same snubbing scheme.
These snubbers consist of a 1,000 volt diode in series with a 36V zener. It's not a fast diode either so think of it as a 1N4007. We once spent some time trying to figure out why there is a zener in there and a associate of mine nailed it: it gives a fairly large voltage for the coil to "discharge" into. (I use "discharge" here as I don't know a better word to say when the energy stored in the coil is being released.)
The 2nd and 3rd images are using Zeners (progressively higher in voltage) in series with diodes instead of resistors; the plots illustrate how much more quickly the current stops flowing with a higher voltage Zener.
Well, Spice is only as good as the data it's given, and the models are based on varying levels of accuracy. It's really easy to leave out some critical component(s), and then real-world results are very different from the model. As I mentioned earlier, I've had to simply make guesses at some of the parameters I fed to it; so I could be off by quite a bit.I've never been much of a spice user, I typically use excel as my spice as it allows me to write equations for predictions and play with values.
Yep - well, the inductor model I used has fields for inductance as well as resistance and parasitic capacitance; so it has provisions for that. Since our OP said 500mA @ 12v, I gave the inductor a resistance of 24 Ohms. I assumed an inductance of 0.2H; that would be with the solenoid core centered in the winding. That's simply a guess, of course; the inductance could be a fair bit higher or lower. I used a parasitic capacitance of 100pF ; that was basically a random shot in the dark - I really have nothing to base that on, but it was better than using zero. If the capacitance were considerably higher, it would increase the rise time of the spike.The coil of a relay may be modeled as an inductor and resistor in series. You can measure the resistance with most ohmmeters but the inductance takes a little more work (more later).
Consider this little circuit that I would recommend using:
We have a MOSFET driven directly off an Arduino's output pin. There are some very good MOSFETs that are called "logic level" as they reach very good performance with just 5V on the gate, allowing such a direct drive scheme. D1 and D2 are the subber I am suggesting. The GREEN current is when the FET is on, and the RED current is during the turn off of the FET when the inductor current must be dumped.
That's just about the circuit I had in the lower schematics of the 2nd and 3rd simulation; just the diode and Zener were swapped - I was using a TIP121 Darlington instead to approximate the ULN2xxx drivers that were being discussed.
Actually, increasing the initial voltage will cause the current to build up proportionately faster; but current limiting would need to be used to prevent the winding from burning up.As the coil is truly an inductor with inductance L, the current thru it builds up as an exponential governed by R and L. As these are fixed inside the relay itself you are stuck with whatever the relay has. If you want a faster turn on you need to pick another relay.
We've been talking about that as well. I was able to get ~7kv out of the modeled inductor, but that's with an instantaneous turn-off (ideal switch), and probably too little parasitic capacitance in the inductor itself.As for the turn off, remember we have an inductor with a current flowing thru it, and the current thru an inductor cannot change instantaneously, it must flow from one value to another. That's why you get an inductive kick: the voltage has no constraint, so if you interrupt the current path very fast the voltage will grow to the point where that same current can flow somewhere. Typically it breaks down the transistor and destroys it. I have seen over 1,000 volts on an unsnubbed relay.
Yep, that's basically what was shown in the simulations.The voltage across and the current thru an inductor is generally given by:
V = L ΔI / Δt where ΔI and Δt are the change in current and change in time.
Now when V is fixed there is a nice linear relationship (meaning we can ignore all the calculus and use this simple equation) and we get a time to discharge the inductor as:
Δt = L I / V where I = ΔI = current flowing just before we open the switch
Obviously, the larger the V the faster we discharge the inductor.
A resistor may be substituted for the zener but will not be as fast as the voltage will decrease as the inductor current also decreases so it takes 5 L/R time constants.
I agree with all of that, too. Have to also keep in mind tolerances for the solenoid windings, resistors, etc. - so the de-rating keeps our OP out of trouble (meaning smoking parts). The snub could occur more quickly if the diode/resistor or Zener/diode went to ground instead of +12v (because you wouldn't have to subtract the supply voltage to the Zener rating or resistor calculation), but there would be an efficiency hit.The MOSFET drain will see a rise in voltage as it turns off, as the Zener and diode voltages add to the supply voltage. Here we get about a 36V + 1V rise over the 12V supply for a 49V spike on the MOSFET. I like to derate things at least 50%, so I would pick a 100V MOSFET for this. Also, as the typical current is 500mA I would pick a device capable of at least 1A.
I really like those IRLD's being in a 4-pin DIP, but the cost is going to be a big hit on this project. Our OP wants ~210 solenoids being controlled by his uC, that would cost him ~$260 just for the MOSFETs alone!The IRLD110PBF is one such device, you may want to search out others. I found it using DigiKeys search engine for MOSFET, then single, then Logic Level gate, then 100V, then 1A, then finally Thru Hole.
Mouser carries the IRLD120 (100v, 1.3A) for less:
http://www.mouser.com/ProductDetail...LD120PBF/?qs=sGAEpiMZZMvMXbh32ZmHAO5BiyVBSKlA
but that would still be ~$207 for 250 of 'em.
If he went with the ULN2065B from Avnet Express, that would be $76.45+shipping for 55 of them (enough for 220 solenoids, but more spares would be a good idea), and the parts count would decrease significantly (no base/gate resistor, one driver IC per 4 solenoids). The ULN2065B has built-in diodes which may or may not be fast enough; the performance of the ULN2803A's or ULN2003A's that he already has could give an indication on how fast they are, or if they could work.
If those were used, a single Zener from the COM terminal to +12v might take care of it, if the Zener were rated for enough power and fast enough. Since multiple channels dump through the COM terminal, a simple resistor probably won't work well, as you'd have to plan for multiple solenoids (up to 4) turning off simultaneously.
I'm trying to find some kind of a reasonable trade-off where he gets the performance needed, with decent reliability, without increasing parts count too much, at a cost that's still within reason.
That's all good - the rise time is also something of interest, as that will help determine what the parasitic capacitance is.Now given all that here's a simple way to measure the inductance of the coil if you wish: Given such a circuit as above, measure the width and height of the voltage spike (voltage is the portion above the 12V) at the FET drain. Then you can solve for L by:
L = V Δt / ΔI
You would need L if you wish to use a resistor only as a snubber. You pick the R by first choosing the maximum spike you can stand. If we stay with the 37V we already have:
R = E / I = 37V / 500mA = 74 Ohms.
The time constant for an inductive circuit is L/R and needs 5 times to decay, so the turn off time is then:
5 * L / R where L is the inductance found just above.
Last edited: