I'm back with yet another mystery.

Summary question:

  1. Why would an input to a voltage clamped circuit de-stabilize and or elevate that voltage clamp's upper rail?
  2. How do you properly clamp voltage using a lightly loaded LDO supply?

How I got here: I'm in the middle of developing a sensor for use in the field. I'm trying to make this thing robust, so I've added diode clamps to all the inputs with access to the outside world. The diode clamps look like this (input is on the left side, and is fed into an xbee IO port):

Circuit clamp and protection resistors to keep inputs under current and within voltage rails.

The system runs off of a solar source etc so I've got a switching regulator (LMR1403), cascaded onto an LDO (MCP1802) to run everything.

While performing my due-diligence and testing the voltage clamps, I noticed something odd:

  • yellow = clamped line
  • blue = function generator input
  • green = regulated 3.3v:

Voltage spikes when v_input exceeds v_rail

The test input that I sent into the circuit was "raising" the power rail, thereby causing the voltage clamp to fail (since the diode only holds the input to the rail). The test input was fed with a function generator, 1khz, varying amplitudes, but obviously amplitudes greater than 3.3v.

I simulated the circuit in LT Spice until I could recreate the problem. I used a similar LDO from LT instead of from MCP. I assumed (perhaps in arrogance?, but oh well) that most of the low-power LDO designs were fundamentally (hopefully) the same. Below is my simulation.
enter image description here

It seems that I've correlated at least 2 possible issues:

  1. Insufficient resistive load.
  2. Insufficient capacitance on the output rail.

If I mess with either of those in simulation (make them too small, or rather "too big" for the load) I can cause very similar situations to occur. I checked with my circuit, and added more resistive load (circuit runs 30mA), and a MUCH larger output bank capacitor (I only had a 47uF ceramic on hand to swap out with the 1uF that was there) and both "solve" the problem at small input amplitudes, but both still fail for large inputs (20V p-p waves). The wave is properly rectified for the ground loop, but fails to be contained within the regulated 3.3v.

In an attempt to triple check everything, I patched in a bench supply to the 3.3v rail and it behaved in a similar manner.

So my question is basically this.

  1. How do you protect against lightly loaded circuits? Like, say, a sleeping microcontroller that is only drawing uA.
  2. Am I missing something fundamental in my voltage clamp design? (I hope so).
  3. Should I not be using an ldo for this case? I am starting to question whether I should just readjust my switching regulator to feed the circuit 3.3, but was worried that it would not be stable enough for XBEE operations.

Many thanks. I am forever learning new things. Matt


Design Rev #2. I've thrown in a TVS diode for extreme spikes, then increased the value of R22 to limit the current intake through the circuit (thereby reducing the voltage raise). Here's what I've got now:

Updated diode clamp design

I'll adjust C1 accordingly for how fast a rise time I need on the signal. Thanks.

  • 7
    \$\begingroup\$ Linear regulators can't sink supply current. \$\endgroup\$ May 26, 2016 at 2:38
  • \$\begingroup\$ 6 words and you've demolished my design. Thank you. I'll look into retuning the switching supply to get the 3.3v I guess. Is there any other way around it? How does anyone do any voltage protection with a linear regulator then? \$\endgroup\$
    – bathMarm0t
    May 26, 2016 at 2:40
  • \$\begingroup\$ They add a TVS across the supply lines. \$\endgroup\$ May 26, 2016 at 2:42
  • 3
    \$\begingroup\$ Most linear regulators can't sink current. Some can. \$\endgroup\$ May 26, 2016 at 3:50
  • 4
    \$\begingroup\$ Try increasing R22 to 1k. If the peak input current is restricted to less than the load current, the regulator can compensate for the limiter current spike simply by reducing its output current. You may still have problems with input transients which are faster than the regulator bandwidth, but that's a separate question. \$\endgroup\$ May 26, 2016 at 3:52

2 Answers 2


Any circuit that connects to field wiring of a significant length will be subject to induced voltages and transients. As you know you must protect your input circuitry from these, and the simple RC filter you have shown can be quite effective. For transient overvoltage the aim of the RC filter is to drop most of the transient voltage across R22, so R22 should be made as large possible without degrading the signal. How large depends on the impedance of the signal source and the input impedance (or input leakage) of the circuit you marked as XBEE_IN_O. I usually aim to get R22 between 10k and 47k. Depending on the signal, you may need to reduce the value of C1 so that your RC filter has the same time constant. If you increase the value of R22 this way then you do not need R24, or it can be 0 Ohms.

Another advantage of increasing the value of R22 is that if the diodes clamps have to conduct then the current dumped onto the VCC or GND lines is greatly reduced, so you should see not the VCC line being raised by overvoltage on the signal line.

Another trick you can use with diode clamps, which is useful when the current drain from VCC is very small, is to add a load to the output of the LDO so the current due to overvoltage has a path to ground. A 1k to 2k resistor on the output of the LDO will usually do. However, this is a waste of power that you may not be able to tolerate.

Although a diode clamp can work quite well, you should realize that it presents a path for noise from you field wiring to your VCC supply and GND, which you should aim to keep as clean and noise free as possible. A better solution is to use the RC filter on the input to your circuity, but instead of diode clamps use a TVS on the input at IN0.

  • \$\begingroup\$ Yup I used a higher value of R22 and it's working better. I'm having a hard time finding TVS diodes that are in the voltage range that I want to work with (digikey has ~24). I think I'm settling on this guy: nxp.com/documents/data_sheet/PUSB3FR6.pdf \$\endgroup\$
    – bathMarm0t
    Jun 5, 2016 at 22:06
  • \$\begingroup\$ Okay I actually am going to use a normal tvs with a 9v cuttoff (much more reasonably found), and then design the circuit to be able to cope with 6v over-charge through the rest via a beefier inline resistor value. .1ma seems like a reasonable amount of leakage. Will test it through the scope and report back in. \$\endgroup\$
    – bathMarm0t
    Jun 5, 2016 at 23:39

Alternative design concept:


simulate this circuit – Schematic created using CircuitLab

You may be able to eliminate R2 if the minimum draw from other circuitry is similar (a few hundred uA).

Or find a regulator that sinks current. Eg. LT1118

  • 1
    \$\begingroup\$ So I'm trying to get current draw wayyyyy down. This thing sleeps for most of it's life, and the sleep current is ~7uA total (quiescent from the regulator included). This is a cool solution, but sinks a bit more than I want (lt spice says 250uA). The linear regulator also works, but has a quiescent of 600uA which is once again quite high. I think I'm just going to ramp up the input resistor to limit how high the spikes will affect the rest of the circuitry (via current) and call it a day. My signals are extremely slow and are simply relay closures, so it shouldn't be an issue. \$\endgroup\$
    – bathMarm0t
    Jun 5, 2016 at 21:57

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.