I need to limit a signal to the following range: [-0.25V, 0.25V]. This signal is comming from a shunt resistor in series with a load with variable impedance on a 220V power grid.

The project contemplates loads up to 1A peak, but I can't guarantee this restriction will be obeyed all the time. But I need to guarantee the resulting voltage don't exceed the specified range.

To give a small guarantee, I'm using a shunt whose equivalent resistence is approximately 0.235 ohms, which generates a voltage slightly below the limit when 1A is consumed.

I cannot use normal diodes because its forward voltage is too high. I've tried to use two low forward voltage Schottky diodes (BAT46), but didn't worked in my simulations.

How can I do this? I need a solution that uses simple components, because where I live they don't have a big component variety and to buy those components on the internet it takes more than one month to arrive. I already have this BAT46 I mentioned.

First edit

Here is my current schematic:

circuit schematic


  • R_IC is the IC's input pin impedance, according to its datasheet.
  • R_LOAD is the already mencioned variable load. In most circumstances, it will consume less than 1A peak, in another words, its "average" impedance will always be above 311 ohms. But I'm trying to avoid the range of the input pin to be exceeded in possible peaks (when the load is connected, for example).

Since I've asked the question last night, I kept searching for alternatives. I found a clipping circuit voltage in a Malvino and Bates' book. The difference compared to my original circuit is the presence of R_C resistor. The book says that its value should be somewhere around 1% of the load value (which in this case is R_IC).

I must say that the simulation result improved considerably with the presence of the R_C. And I think I understand its purpose: it is to "consume" the potential difference that exceeds the threshold that the diodes will establish. But still the established limit is not being respected.


I'm open to suggestions on how to ensure that the limit is obeyed with less "tolerance." But as I said, I need solutions that use simple components (diodes, transistors, op amps, etc).

Second edit

Now I'm offering a little bounty (in accordance to my low reputation).

I looked for other solutions and I managed to assemble the following circuit:


Now I'm using "normal" diodes (forward voltage about 0.6V). The first stage of opamps are to don't mess with equivalent resistance (I think this is officialy known as "impedance transformation"). The second opamp is to invert the bias.

This way I can "remove" voltage from the diodes and put them in short with less voltage.

As you can see, this apparently works (input on the left, output on the right):


But when the input is below the threshold, the output is slightly lower than the input:


This isn't a real problem, but if I can avoid it, it would be better.

Now... the questions:

  • First of all, will this work?
  • I've used this simulator because it is very simple. But I didn't choose a opamp. The only opamp that I know is the 741. What opamps can you recommend to me?
  • About the diodes... 1N400x serves this purpose?
  • How can I make negative supply for all opamps?
  • How can I better calibrate the components values to get even closer to the threshold?
  • 3
    \$\begingroup\$ Can you show the schematic of what you simulated? Schottky diodes should work in this situation, assuming you are not too fussy about exactly what voltage the clipping happens. \$\endgroup\$ – The Photon Oct 24 '12 at 21:50
  • \$\begingroup\$ I've worked out a way to create an active precision clamp using a pair of precision rectifier circuits, as long as the bandwidth required isn't too great. It requires three opamps ... if you think it might be applicable, I'll write it up as an answer. \$\endgroup\$ – Dave Tweed Oct 24 '12 at 23:17
  • \$\begingroup\$ Going by the requirement your question implies, an alternate approach might be to dispense with the shunt resistor altogether, and use a coil coupling to sense current non-invasively. Current sense coils are available with various transfer functions, or you could just wind your own. Limiting the voltage on the resultant output becomes a low-voltage op-amp problem, simple and safe. \$\endgroup\$ – Anindo Ghosh Oct 25 '12 at 3:52
  • \$\begingroup\$ I can't speak to availability in your country, but Microsemi UPS115U has guaranteed max forward voltage of 220 mV at 1 A, and is "widely available" in the US (meaning, it's available at Digikey). Your BAT46 is likely to cause problems since it's only rated for 350 mA repetitive peak current or 150 mA continuous. \$\endgroup\$ – The Photon Oct 25 '12 at 4:40
  • \$\begingroup\$ @ThePhonon: I've edited my question. And about the UPS115U... I can't use it because it would take weeks to arrive in Recife/Brazil. \$\endgroup\$ – borges Oct 25 '12 at 15:03

Here's the active clamp circuit I came up with. I entered it into Circuitlab so that I could simulate it and verify its performance.

Whenever the input tries to swing beyond either clamping threshold, which are determined by the ±Vclamp sources in conjunction with the resistors, the corresponding precision rectifier produces a signal that offsets the overvoltage, holding the output constant at the clamping threshold. With the resistor values shown, the value of ±Vclamp needs to be 2/3 of the desired clamping level.

Note that if the thresholds are not symmetrical, the output will have a DC offset.

Note that the output is inverted relative to the input. This is required because the inverting input of OA3 needs to be a "virtual ground" for the mixing to work correctly. An inverting buffer can be added at the output if needed.

Note that R1, R2, R3 and R4 need to be the same value. Also, R5, R6, R7 and R8 need to be the same value, but not necessarily the same value as the first group. However, keep in mind that R5 and R6 affect the relationship between ±Vclamp and the actual clamping threshold. The 2/3 relationship only holds if all 8 resistors have the same value.

CircuitLab Schematic mvvek8

The following graph shows three input sinewaves of 200, 300 and 400 mV (blue, brown, gray, respectively) and the corresponding inverted output waves that are clamped to ±250 mV (red, blue and purple, respectively). I also show the waveforms for V1 and V2 for the 400 mV case (the two funky waveforms running across the middle).

plot of simulation

| improve this answer | |
  • \$\begingroup\$ Yes, when I read this doing some sort of precision rectifier thing with opamps came to mind. Looks like you got this all sorted out :) \$\endgroup\$ – Mariano Alvira Oct 31 '12 at 21:21
  • \$\begingroup\$ This is brilliant! I want to use this as a method of providing guitar distortion. The guitar input is ~200mv 20-20,000Hz I was wondering if we could somehow averge the max output voltage of this circuit over time, and feed into vclamp a third of that average. Persumably that would provide a certain amount of clipping to any signal rather than just clamp at vclamp? Is this feasible? Would you simulate that for me because I'm too tight to pay circuit lab? I would pay you in bounty :) \$\endgroup\$ – Richard Jun 17 '16 at 12:10

For monitoring current in an AC power line, a non-invasive sensor such as SCT-013-000 (datasheet linked) might address your requirement:

  • No shunt resistor needed hence no heating up on overcurrent;
  • Sensor output is isolated from power line hence no risk of electrocution;
  • Output voltage is 0-50 mV for up to 10 Amperes, so well within specified range;
  • Such induction devices typically saturate a bit beyond the designed current limit, hence arbitrary voltage output at the sensor is prevented.

In order to amplify the sensed voltage to the 250 mV range if required, a basic op-amp circuit will work fine, no line isolation needed.

There are similar sensors with lower AC current sensing (0-5 amp or 0-1 amp), and with preamplified and even digital outputs, to refine the specification more finely. They aren't as inexpensive as this device, though: You can find this one for $30, maybe even less.

Is there some other specification that requires the use of the shunt resistor approach? If so, please update your question accordingly for further inputs.

| improve this answer | |
  • \$\begingroup\$ Thank you for your answer. But unfortunately I can't use a sensor of this type because I can not find it easy to buy, then that would make an international purchase, which would take weeks to deliver. But I really liked this sensor and I think I will buy it for future versions of this project. I've edited my question. \$\endgroup\$ – borges Oct 25 '12 at 15:02

I'm late to the party, but here's an alternative circuit to the one proposed by Dave. I felt like it was worth posting it since it's way simpler, even though the clipping is not as hard or as stable with temperature.


All the component values are commercial. If you can't manage to find a TLC2272 op-amp, try with a TL081 (but take care because it's not rail-to-rail).

The voltage divider at the output can be omitted if you'd like to have a bonus 1.8x gain on the signal you need to acquire. The output is negated with respect to the input: you could put another op-amp after the divider to invert the signal, but IMHO the inversion is easier to do in software and you save a component.

If you need to change the maximum output voltage \$V_{clamp}\$, you can calculate \$R_2\$ with the rule of thumb

$$R_2 = \frac{0.45}{V_{clamp}} R_1 = \frac{0.45}{V_{clamp}} 1000$$

If you want to minimize distortion at \$V_{lin}\$ and clamp slightly higher than that (at about \$1.7\, V_{lin}\$), you can use

$$R_2 = \frac{0.26}{V_{lin}} R_1 = \frac{0.26}{V_{lin}} 1000$$

In both cases, \$R_3 = \frac{R_4}{R_1}R_2-R_4\$. With \$R_4=R_1\$, it becomes \$R_3=R_2-R_4=R_2-1000\$.

Here's a time domain simulation from the CircuitLab project. A frequency simulation shows good behavior up to 50 kHz.

Time domain plot

| improve this answer | |

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.