I have constructed a voltage controlled current source for driving high power LEDs. In essence, it is a power N-channel FET in series with the LED whose gate is driven in reference to a 1 Ohm low-side sense resistor. I have included a BJT booster stage inside this feedback loop to enable high-frequency modulation of the gate voltage and therefore load current. I'm targeting ~100ns 1A turn on times. The circuit is shown here for reference:


simulate this circuit – Schematic created using CircuitLab

The feedback loop is stable and operating as desired. However, there seems to be a parasitic oscillation in the emitter follower formed by Q1 within the BJT booster stage. This results in an ~20 mA ripple riding on top of the LED current for DC reference signals. The oscillation is seen riding on the of the LED current but is not present in the reference voltage.

Scope trace showing reference voltage (yellow) and LED current pulse (blue, 1A/V) with the small oscillation riding on it: 1 Amp LED pulse

Same as last image with 1A offset and zoomed: Zoomed version with 1A offset

I believe this a local, parasitic oscillation rather than instabilities in the feedback loop because:

  1. If I break the feedback loop and apply DC voltages to the base input node (labeled "A" in the circuit diagram), the oscillation persists.
  2. Poking the base of Q2 (labelled "B" in the diagram) with a pair of metal forceps while my hand is also touching a ground point removes the oscillation for the first part of the pulse. The oscillation seems to go away at the start of the current pulse, but it quickly returns 10 usec or so into the pulse. I have pictures of this but I'm not allowed to show them because my rep is too low.
  3. Increasing the value of the compensation capacitor (C6) does not affect the frequency of the oscillation.

I've tried playing with the values of base stoppers (R1, R2) adding capacitance between various terminals of Q1 and Q2 and I have not found a solution that totally gets rid of this oscillation. Any advice would be much appreciated.

EDIT Fixed schematic to include power supply decoupling elements.

EDIT Fixed schematic to include MAX4564 analog switch series resistance.

  • \$\begingroup\$ The first thing I would do is remove C5. The second thing I would do is add base resistors (10-100 ohm) to Q3 and Q4. The third thing I would do is increase R7 and R8. What I am actually going to do however is sleep. Good luck! \$\endgroup\$ – Matthew Dec 15 '16 at 0:00
  • \$\begingroup\$ Thanks. I will try the base stoppers at Q3,4 but I'm skeptical due to the fact that poking node B in the circuit with hand-held metal forceps seems to have the largest effect. I put R7, R8 in the circuit to prevent thermal run away by reducing the gain of Q3,4 with increases output current. I didn't know they could also have an effect on the circuit stability. Can you expand on that part? \$\endgroup\$ – jonnew Dec 15 '16 at 3:55
  • \$\begingroup\$ Try better power rail decoupling. \$\endgroup\$ – Andy aka Dec 15 '16 at 12:11
  • 2
    \$\begingroup\$ DO NOT leave components out - this wastes people's time. \$\endgroup\$ – Andy aka Dec 15 '16 at 14:49
  • 1
    \$\begingroup\$ @jonnew My best guess would be: Rail to rail op-amp has output topology of common emitter and output stage looks like a current source with a control loop. You don't have direct DC feedback as in the datasheet, but instead you have something like 100k load. High impedance load on a current source tends to be unstable. \$\endgroup\$ – Matthew Dec 16 '16 at 18:11

You need a resistor between the sense resistor and the inverting input of the opamp.

Although have correctly put a feedback cap for the opamp the pole is determined by the feed resistor and the capacitor - you are feeding it with 1 ohm!

I would try a few kilohm series resistor.

  • \$\begingroup\$ I tried to do this with several values of series resistor. Each value actually made the situation worse. It certainly limited the loop bandwidth as we would expect, but the parasitic ~20 MHz oscillation was still present and actually spread to the "off" portion of the waveform. After a lot of consideration, I finally realized I made a mistake on my schematic. There is analog switch (MAX4564) in the feedback path that is introducing ~40 Ohms of series resistance before the inverting input of the amplifier. I neglected to include this resistance in my schematic, which I've now updated. \$\endgroup\$ – jonnew Dec 16 '16 at 0:56
  • \$\begingroup\$ I did find a way to solve the problem, but I don't understand it: I simply put a 1 kOhm resistor from the output of the op-amp (Node A) to ground. That solved the oscillation. You can still see a tiny bit of it (one cycle or so) right after the rising edge, but then it dies away in the next cycle. Any how this might be working? \$\endgroup\$ – jonnew Dec 16 '16 at 1:07

At high frequencies, the output impedance of the opamp OA2 goes up, and it is inductive. Beyond the transistor corner frequency fβ (which is approximately ft/β), the inductive impedance on the base of transistor Q1 is transformed by the transistor into a negative impedance on the emitter of Q1. The emitter of Q1 has a high impedance load. When the overall impedance at the Q1 emitter node goes negative, the circuit oscillates.

The fix works because the resistor is in parallel with the inductive output of the opamp. This makes the overall impedance at this node less inductive. It may also be changing the operating point of the opamp such that the output impedance goes down. If the fix still works when a capacitor is added in series with the load resistor, then the fix is not due to changing the opamp operating point. This capacitor may be useful by decreasing the DC load current on the opamp, and also potentially allowing a lower value to be used. The capacitor can be chosen to only present this load at high frequencies, where the output impedance is inductive.

  • \$\begingroup\$ Thank you, Tom. I would like to go about testing this answer. 1. If I place a cap after the 1k resistor and it still works (meaning resistor will only have an AC effect, we can be pretty sure the cause of the oscillation is due to the inductive output impedance of the OA at high frequencies. \$\endgroup\$ – jonnew Dec 21 '16 at 15:19
  • \$\begingroup\$ 2. If this does work, and I understand the last part of your answer "lower value" refers to the load resistor that is in parallel with the inductive output of the opamp. If I place a cap in series with this resistor then I can potentially drop the value of the resistor substantially without worrying about DC load in the opamp, right? \$\endgroup\$ – jonnew Dec 21 '16 at 15:20
  • \$\begingroup\$ Yes, the capacitor will help by allowing you to use a smaller resistor without drawing more DC current. There will still be the AC load current to deal with. Even with the capacitor, if the resistor is very small (for example 10 Ohms), it will decrease the gain of the opamp by shorting the output, which you probably don't want. \$\endgroup\$ – Tom Anderson Dec 22 '16 at 5:34

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.