I'm attempting to build a 1 Amp LASER driver that can be pulsed (at ~10kHz) and gives control over current with a voltage (from a DAC, for example). I'd like to scale it up to 10 Amp pulses eventually. I tried this common circuit below on a breadboard, but the feedback is unstable. Arrows indicate what should be (apprixmately) happening, which I confirmed on simulations.

I'm using a 500 mOhm 10 W resistor to simulate LAESR diode on resistance, and a 1 Ohm sense resistor.

enter image description here

Here is what happens at the opamp output: enter image description here

And here is what happens at the inverting node (voltage across sense resistor): enter image description here

I tried changing around the values but things only get worse. I thought the opamp was too wideband so I increased compensation cap C3. Feedback becomes stable when I make it 4.7uF (yes, 4.7uF), but pulsing Vctrl makes rise and fall times ~1s. Value of R3 doesn't seem to matter as long as it's there.

This is the opamp I'm using (MCP6022, not 602), and this is the FET I'm using (IRLI3705N). Is the opamp too wideband for this application? Its correcting too quickly and overshoots? Am I stuck at the "knee" on the FET's I-V curve so a little bit of gate voltage changes current exponentially? Is my Vcc not large enough? Is this even the right VCCS solution for a 10 A pulsed load?

  • \$\begingroup\$ It might not matter, but what kind of resistor are you using at R4? \$\endgroup\$ – The Photon Jul 15 '15 at 0:31
  • \$\begingroup\$ 3 parallel 3.3 Ohm resistors (1%, 1/4W, E96) --> 1.1 Ohm that heats up mildly \$\endgroup\$ – Shubham Jul 15 '15 at 0:34
  • \$\begingroup\$ Thanks to those who answered. But for anyone reading this in the future with the same issues: This was fixed by simply mounting this circuit on a perf/proto board. The parasitics on a the breadboard dominate even at currents as low as 100mA and cause instability. C4 was also removed. \$\endgroup\$ – Shubham Jul 15 '15 at 23:54
  • \$\begingroup\$ Please post the solution as an answer. It will keep the question from rising up to the front page due to the system not knowing it's solved. \$\endgroup\$ – The Photon Jul 16 '15 at 0:25

A couple of things can cause instability

1) With such low impedances you need to make sure you have a low inductance ground system. Implementing this in a plug-in breadboard will probably not work, the parasitics are too high.

2) Remove C4 - it is possibly causing phase shift in your feedback loop.

3) You have a 22pF cap (C3) from the output of the amplifier to the input, but you have it directly connected to the 1 ohm sense resistor. This will prevent it doing anything useful. I would add a 1k restore between the sense resistor and the inverting input of the opamp to isolate the stabilizing feedback path (C3) from the lower frequency signal from R4. You may need to try different values for C3. Have you simulated the circuit?


  • \$\begingroup\$ Thanks for the pointers, I'll try them out. Yes I did a time-domain simulation in CircuitLab and there was no oscillation. Hm, the breadboard might have a lot to do with it then. \$\endgroup\$ – Shubham Jul 15 '15 at 0:28
  • \$\begingroup\$ Removing C4 and adding a resistor between C3 and the opamp did not do much, so I tried lowering the current by increasing the sense resistor R4 to 11 ohm. This eliminated the oscillation completely, which tells me inductive parasitics are dominating at large current loads. \$\endgroup\$ – Shubham Jul 15 '15 at 19:16
  • \$\begingroup\$ But now when I pulse the control, the rise and fall times are still at ~1s. Adding a 1k pulldown at the gate does not help either. Is there anyway to reduce them 1000x? \$\endgroup\$ – Shubham Jul 15 '15 at 19:17
  • \$\begingroup\$ R1 and C2 will limit the response time from the control signal. They are not necessary for circuit operation. If the input could be disconnected R2 can be retained but drive the input directly into the opamp. \$\endgroup\$ – Kevin White Jul 15 '15 at 20:23
  • \$\begingroup\$ 1 second? Surely not! \$\endgroup\$ – Brian Drummond Jul 15 '15 at 22:50

A couple of points...

  1. Monitor the 5V supply, just in case you're inducing instability in it - or the 300ish kHz signal you're seeing is actually its switching frequency.
  2. Experiment with increasing R3 to at least 1 kilohm, thereby isolating the opamp output from a substantial load capacitance (Cgs of the MOSFET).

Now, even if increasing R3 cures the oscillation, it may not be the solution, because it decreases the bandwidth of the MOSFET drive (you can measure your pulse rise/fall times with and without the change, to determine if its effect is harmful). But there is a substantial body of literature on stabilising opamps driving capacitive loads, which should help you find a better solution.

  • \$\begingroup\$ So it turns out lowering current to ~100mA by increasing the sense resistor to 11ohm eliminates oscillation, which tells me inductive parasitics dominate at large current loads. \$\endgroup\$ – Shubham Jul 15 '15 at 19:18
  • \$\begingroup\$ But you are right, the rise and fall times are still very long. Adding a 1k pull down at the gate does not help either. Can you provide some references or general techniques on opamps driving capacitive loads? \$\endgroup\$ – Shubham Jul 15 '15 at 19:20
  • 1
    \$\begingroup\$ Nevermind, found something in the opamp datasheet, and lots on google. \$\endgroup\$ – Shubham Jul 15 '15 at 20:11
  • \$\begingroup\$ The input capacitance of that (hugely parallel) MOSFET is 3500pF, which is asking a lot to be switched at 10KHz from an op-amp output. I wonder if a simple BJT driver could isolate the op-amp output and increase gate drive capability. \$\endgroup\$ – rdtsc Jul 15 '15 at 22:16

Add a resistor between R4/M1 and the rest. 1K for starters, up to maybe 5 or 10K. Remove C4. You can increase C3 rather than the resistor value.

  • \$\begingroup\$ Especially remove C4. \$\endgroup\$ – WhatRoughBeast Jul 15 '15 at 5:34

I used a same circuit for driving a laser diode with up to 500 mA current. I have some recommendations as follows:

  • Use LM358 op amp
  • Remove C2 and C4
  • Use fast bipolar transistor for better stability such as D828

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.