A previous circuit used a ULN2003 Darlington pair as a single-ended (N-side) solid-state switch with a maximum current capacity of about 500mA.


However, it has no over-current protection, so I'm researching either a replacement or a surrounding circuit to do so. Protection would ideally apply to the channels individually, but a simple solution for the entire circuit would also do. I've found these options:

  1. Add a PPTC self-resetting fuse on the output of each of the channels. Cheap, simple, but I'm not thrilled with the prospect of waiting >2s for it to trip. The switch can easily be destroyed in that time - especially since the ULN200x datasheet does not specify a max time for the peak current, only a duty cycle, and the duty cycle in this application will be 100%.
  2. Add a 1R res to the output channels, and then either an ADC or a comparator with further shut-off circuitry. More complex and expensive, but faster and more precise.
  3. Rely on the Vcesat parameter of the ULN2003. If Vce exceeds about 1.4 V, infer that the current exceeds 500mA and then add the same circuitry as #2.
  4. Replace with a switch that has current protection built-in. Haven't been able to find something nearly as affordable as the ULN200x.

I'm leaning toward #3. Something like:


simulate this circuit – Schematic created using CircuitLab


  • Is the above circuit safe, stable, and an appropriate way to implement current protection?
  • Among my other listed alternatives (or not), is there a better way? I usually lean toward simplicity.
  • \$\begingroup\$ If you are willing to dedicate one LM339 per output of the ULN2003, are you willing to go discrete? How many outputs of the ULN2003 are you actually using? You also forgot to note in your Q that the SO package is \$120\:\tfrac{^\circ \textrm{C}}{\textrm{W}}\$! I guess what bothers me about the question is the cavalier attitude regarding dissipation shown by tossing \$500\:\textrm{mA}\$ with such ease.. especially where a Darlington is involved. With all you show there, I'd just go discrete and be done with it. \$\endgroup\$ – jonk Nov 15 '16 at 0:08
  • \$\begingroup\$ @jonk I'm willing to go discrete if the circuit is not terribly complex. I'm using all outputs of the ULN2003. I'm not sure what you mean by 'tossing' 500mA, nor do I treat it in a cavalier manner - it's a serious circuit condition that will likely lead to damage, which is why I'm considering protection in the first place. \$\endgroup\$ – Reinderien Nov 15 '16 at 4:02
  • \$\begingroup\$ I was considering offering some thoughts about a discrete option. More control over balancing trade offs, less cost, better availability, etc. \$\endgroup\$ – jonk Nov 15 '16 at 4:05
  • \$\begingroup\$ @jonk nice - please do. \$\endgroup\$ – Reinderien Nov 15 '16 at 4:21

That's not an impossibly bad circuit, but it has a few problems.

1) Most obviously, the LM339 needs a pullup resistor on its output.

2) A ULN2003 has a turn-on delay of as much as 1 usec. During this time the comparator will be seeing a high input and will be generating a fault indicator. If the delay capacitor is not large enough, this will prevent the load from ever turning on.

3) Once a fault is detected, clearing it will not cause the circuit to allow operation. It will be necessary to set Sw in low for the recovery time of your output delay RC, and only then apply it to drive the load.

4) This is OK as a gross fault detector, but be aware that the ULN2003 output voltage Vce(sat) is not well-defined. At 350 mA, typical is 1.2, but max is 1.7, and there is no minimum defined. As long as your desired loads are much less than your nominal trip point you'll be OK, but if you want to drive anywhere near the ULN limits you'll run the risk of getting a ULN2003 with a weak output which trips under normal load.

5) Unless you use a 74HC132 for your input gate, the operation may not be clean. As the capacitor voltage changes near the trip point, the gate will not get a sharp transition, and there is the possiblity that (for instance) the loop may oscillate. This will depend on all sorts of peripheral effects, including decoupling. It may not be a problem in this case, but whenever you're doing this sort of limiting hysteresis is your friend.


Depending on what kinds of faults you are expecting s simple current limit might do. I Don't have a model for UNL2003 but you'll get the idea. Would this work for you?

Simple current limit

If you need to fold back the current everything will get more complicated.

The pulse source is only here as a simple way to test two currents. One below the limit, one above.

  • \$\begingroup\$ I assume Q1 is the ULN2003. What is the role of U1A here? \$\endgroup\$ – Reinderien Nov 14 '16 at 22:49
  • \$\begingroup\$ Yes Q1 should be the ULN2003. If one of the faults you are trying to protect for is a short to VCC this may not be the best. The power dissipated would be 2.5W. \$\endgroup\$ – owg60 Nov 15 '16 at 0:09
  • \$\begingroup\$ Power dissipated from what component? And I'm still curious - what does U1A do? \$\endgroup\$ – Reinderien Nov 15 '16 at 4:03
  • \$\begingroup\$ This current limit will keep the maximum current below 0.5A. If there was a short from Vcc=5V to the collector, the UNL2003 would dissipate 5V*0.5A=2.5W. U1A is just a signal source I coppied from your schematic. It not part of the current limit. \$\endgroup\$ – owg60 Nov 15 '16 at 11:12

The trick to using a PTC is to choose one with a thermal mass much less than the device being protected including heatsink.

Thus an SMD PTC will suffice for protection for this purpose. Some radial parts reach a temperature of around 85'C worst case for most devices when short circuited and operated within specified limits. This means the PPTC will reach 85'C before the part will. Some SMD parts trip up from 50'C to 120'C depending on optional Curie Point (C.P.)of the part. See ref below.

The exception might be if a very large short circuit current from a high voltage load and the pulse current*time exceeds SOA ratings. enter image description here enter image description here enter image description here


- Rev 2 Answer

  • with new design input... protection from abrupt short to Vcc or Gnd.
  • Uses High Enable output from logic. Adjust Vout or fixed (opt.)


Or simply use a fully protected Low side Smart Switch like **VNN3NV04P-E**

This is a good example of how a design can evolve drastically from poorly defined inputs for fault conditions.

  • \$\begingroup\$ Bad news. I tried using some relatively fast (8ms) PPTC fuses, 507-1755-1-ND, but they weren't nearly fast enough against a short to 24V. Their simplicity is great but I think I'm going to need an "active" solution instead of a thermal solution. \$\endgroup\$ – Reinderien Feb 20 '17 at 20:41
  • \$\begingroup\$ where did you specify short circuit proof. I though it was just for power protection, not Isc proof. OCP and SCP are two different fault conditions. OCP being adequate thermal response, SCP needing junction speed response. Collector short to V+ can be tamed with an active current limiter like LM317 to drive load in constant current. with 2.5V drop. or use better design \$\endgroup\$ – Tony Stewart EE75 Feb 20 '17 at 21:15
  • \$\begingroup\$ It's no problem - I probably wasn't specific enough; but anyway - how would the LM317 be connected, in this case? In-line with the load? \$\endgroup\$ – Reinderien Feb 20 '17 at 22:22
  • \$\begingroup\$ Your suggestion to use a fully protected switch is a great one - I looked in the same area as that VNN* part, and I found this: Diodes Inc ZXMS series. They're still affordable enough, and should be much more durable for what I need. Thanks very much. \$\endgroup\$ – Reinderien Feb 20 '17 at 23:06
  • 1
    \$\begingroup\$ To Limit short circuits on driver to supply (vs gnd) for low side switching generally a high side current limiter so source like a 3 terminal regulator with a low side switch. The TPS7xxxx has a much lower dropout. \$\endgroup\$ – Tony Stewart EE75 Feb 20 '17 at 23:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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