2
\$\begingroup\$

Solenoid Driver Schematic

I need advice on designing an overcurrent protection circuit for a pinball solenoid driver.

I am building new driver boards for several of my games from the late 70s to mid 80s. All use the same board. The attached schematic shows eight driver circuits of the 19 total with one solenoid for reference. The schematic is similar to the original, but IRF540 MOSFETs have replaced the TIP102s. Edited: I meant to select IRL540.

The protection is needed, because in the event of a fault the fuse rarely blows quickly enough.

Here’s what happens (to my knowledge): The snubber diode on the coil can fail, which results in the original TIP102 transistor shorting closed. This engages the solenoid continuously, which can destroy the coil and damage the board, long before blowing the fuse.

I’ve reviewed several protection options, but I’m not up to date on the latest technology. I prefer to keep it simple and avoid custom programing. I think the easiest solution would be disengaging the 43 V supply instead of the individual drivers.

Any suggestions to steer me in the right direction would be greatly appreciated!

Note: I’m also considering replacing the 74HCT240 line driver ICs with an optically coupled isolator, but the current part has rarely been a problem.

\$\endgroup\$
7
  • \$\begingroup\$ If a shorted transistor can over-heat a solenoid, it follows that solenoids are "pulsed" on for a short time, then turned off. How long is the pulse? How many solenoids can be pulsed at the same time? (all 19?). \$\endgroup\$
    – glen_geek
    Commented Aug 25, 2022 at 22:30
  • \$\begingroup\$ Firstly, the irf540 is not really suitable for logic level drive and a 10k gate resistor is waaaay too high. Choose a mosfet that is ‘logic level’. For short detection there are a number of ways. A polyfuse per solenoid might work - would need some experimentation to choose the right one. Comparator and logic to compare the output level with the input level for each driver and disable the supply if an error is detected for longer than X milliseconds. Or a current sensor on the supply to detect if a given current is active for too long. \$\endgroup\$
    – Kartman
    Commented Aug 25, 2022 at 22:58
  • \$\begingroup\$ Another thing, with mosfets ensure the wiring/tracks to the source are low impedance (ie: fat) otherwise your mosfets may oscillate. Transistors aren’t as susceptible to this. If you can tell us more about your load - volts, current, if you want thru hole or smt etc then we can suggest mosfets that might be more suitable. \$\endgroup\$
    – Kartman
    Commented Aug 25, 2022 at 23:05
  • \$\begingroup\$ Since there is a demultiplexer, only one output can be active at any time. The fault you describe is not an overcurrent, just a too long on time. So your safety circuit should trip if two outputs draw current or one draws current while none is activated at all. I will suggest a circuit if a have an idea. \$\endgroup\$
    – Jens
    Commented Aug 25, 2022 at 23:19
  • \$\begingroup\$ What is the coil inductance and resistance of those solenoids? You can measure the resistance with a multimeter, and the inductance with an LCR meter if you got one. At least knowing the resistance would help. \$\endgroup\$ Commented Aug 25, 2022 at 23:23

3 Answers 3

3
\$\begingroup\$

IRF540 is the wrong MOSFET since it's not specified for 5V gate drive. You can get cheap MOSFETs with much lower RdsON that will work fine with 5V gate drive.

Since a fried diode will end the game anyway, I guess it's alright to cut the power. So you don't need to monitor the current on all MOSFETs individually.

Since you use a 4-to-16 decoder, at most one solenoid will be active, so you could just put a current shunt or Hall sensor in the ground connection, to monitor the current of whatever solenoid is on.

Then you can use two comparators:

  • One with a high threshold, which is not normally reached with "normal" current, to detect if the MOSFET turns on and the diode in the solenoid is shorted.

  • To catch a melted MOSFET being on continuously, or a software bug keeping the solenoids on all the time, another comparator with a lower threshold, which detects a normal amount of current for the solenoid. This should go to a retriggerable monostable which is reset every time the current drops to zero. If the current does not drop to zero for long enough, the monostable will expire and signal an error.

Then the output of these should go to something like a RS flop that latches the error and deasserts the output enable on your decoder, and also disables the power supply, if it has an enable input. You could also use a high side MOSFET switch.

If the power supply has a lot of capacitance, and the diode shorts, a huge current will flow, so you don't have a lot of time to turn off the MOSFETs by deasserting the decoder's output enable. The gate resistors will probably have to be tuned. A fast comparator can be useful here. The comparator can be a simple BJT if voltage on the shunt in case of a short circuit exceeds 0.6V.

\$\endgroup\$
0
\$\begingroup\$

You'd probably want an electronic fuse that requires power-off to be reset. The circuit below uses an SCR formed by Q1 and Q2 to do just that. C1-R2 set the time constant - the lower the time constant, the faster the fuse reacts to overcurrent. R3 sets the current limit: the lower the value, the higher the allowed current.

schematic

simulate this circuit – Schematic created using CircuitLab

Below is a plot of the mosfet drain current for two values of R3: 0.3 ohm and 1 ohm. With 1 ohm, the effective coil resistance R6 draws high enough current to trip the fuse.

The latching action of the fuse is evident.

The drain current waveform for R3 values of 0.3 ohm and 1 ohm

As the other answer indicated, you'd want a different MOSFET type - one that can saturate from 5V gate voltage.

If the solenoids are turned on one at a time, the fuse circuit can be shared across all channels as follows:

schematic

simulate this circuit

The drain current waveforms for 0.2ohm and 1ohm sense resistors

\$\endgroup\$
2
  • \$\begingroup\$ I think the requirement is not so much for a current limit but to protect the solenoids being activated for too long - eg: the mosfet failing. \$\endgroup\$
    – Kartman
    Commented Aug 26, 2022 at 1:57
  • \$\begingroup\$ @Kartman That may be, but the title is “overcurrent protection”. I hope if the OP meant “overheating protection”, they’d have mentioned that. Overheating protection can be done by sensing the solenoid resistance and actually detects the current being too low for a given voltage :) As the solenoid heats up, the current drops, but not fast enough not to release magic smoke. I also have no clue how the diodes on these things are failing left right and center. They must be wrong parts. I’ve not had a silicon rectifier diode fail in a long, long time. Zeners? Sure! Flyback diodes? Nope. \$\endgroup\$ Commented Aug 27, 2022 at 17:01
0
\$\begingroup\$

It looks to me the problem is actually not about current limiting but more about avoiding unwanted very long on time. The event of a driver failing short circuit will never take more current than a normal operation, it will just last "forerever".

So I'd rather tackle the issue on a different way:

  1. Avoid driver failure
  2. Detect failure and go failsafe.

As far as 1 i concerned I'd rather say:

  • Duplicate freewheeling diodes on the driver board, this will catch coil-mounted diode failure.
  • Use an avalanche rated MOSFET which can withstand stored magnetic energy.
  • Fit a TVS diode in parallel to the MOSFET so to enter avalanche at a lower voltage than MOSFET itself breakdown.
  • In general wildly overrate MOSFET maximum current.

schematic

simulate this circuit – Schematic created using CircuitLab

All this is going to reduce driver short circuit failure to virtually zero. I'd still take care of possible digital driver error, not in the sense of a failure, but for a stuck ON command instead. Let's say some comunication noise or program crash or error or simply some stuck or misadjusted limit switch somewhere else in the pinball machine. This could be cured with a timeout circuit on the driver, the simplest being just a series capacitor somewhere in commnad chain.

schematic

simulate this circuit

Finally, failing all the above an "error detection" circuit could be implemented checkin match between command given and corrsponding driver DRAIN voltage. The simplest could just be an EX-OR gate comparing gate and drain and, eventually after some delay, issuing a main power shut down.

schematic

simulate this circuit

N.B. all circuits posted are basic conceptual drawings, to be refined before being built.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.