2

I have a simple LED driver circuit like this:

schematic

simulate this circuit – Schematic created using CircuitLab

The op-amp is OPA354 250-MHz, Rail-to-Rail I/O, CMOS Operational Amplifier supplied from a single +5V rail. The LED is a 100mA, 1.4V forward voltage type. The input is a 0.5V pulse from a signal generator.

What I see is that everything works more or less as expected, the LED current during a pulse is around 50mA, except that at the beginning of each pulse there is a distinct oscillation with a period of ~10ns (around 5-10 cycles are visible). Somewhat more disturbingly, there is a bit of random noise on top of each pulse, maybe 50mV peak to peak, that comes and goes.

The LED has a decently large capacitance of some tens of pF. I've read a lot about stabilizing op amps driving capacitive loads, but these would have the capacitive load where R1 is, not inside the feedback loop.

How do I stabilize the op-amp and prevent this kind of noise/oscillations?

Misunderstood
  • 7,287
  • 1
  • 11
  • 24
Alex I
  • 3,341
  • 2
  • 36
  • 59
  • 2
    Why would you want to drive a LED like this? What are you trying to achieve? – PkP Jul 22 '18 at 19:13
  • 3
    You need a proper feedback on your OP Amp. As it is you have _half_ of feedback loop and with variable resistance at that. And doubling as a load. Weirdest thing I've ever seen. – Maple Jul 22 '18 at 19:14
  • 2
    Why not use the circuit in fig 30 of the DS? Do you have details of the LED? – Andy aka Jul 22 '18 at 19:25
  • @Andyaka figure 30 of _what_ datasheet? The goal / effect of this circuit appears to be to have input/10 amps driven through the LED? – vicatcu Jul 22 '18 at 19:32
  • 2
    @vicatcu if you look at the question there is only one part currently mentioned and clearly I'm not talking about the LED. The goal is to drive 50 mA and not 10 amps. – Andy aka Jul 22 '18 at 19:39
  • How does the circuit behave if you just make a simple voltage follower? (the op-amp IS unity-gain stable) – filo Jul 22 '18 at 19:45
  • 1
    @PkP I want a controlled current and as fast as possible on/off. This circuit does turn the LED on and off in < 10ns, so it does that part at least. – Alex I Jul 22 '18 at 21:21
  • @Maple It's what I came up with quickly on a breadboard. If you have a better idea for a LED pulser with controllable current, let me know :) – Alex I Jul 22 '18 at 21:22
  • @Andyaka Wow, that looks really useful, I didn't notice that. I'm not completely sure how it works. Could you tell me what the advantages of that are vs the approach I used? For example, does it manage to avoid saturation when the LED is off? – Alex I Jul 22 '18 at 21:30
  • @AlexI You already have two perfectly good answers and a reference to datasheet from people much more knowledgeable than I am. My ideas are moot at this point :) – Maple Jul 22 '18 at 21:38
  • @Andyaka I'd like to report that fig 30 of the DS is faulty. It does not monitor differential current rather has 9% Hysteresis and stays on all the time. The Vin+ has hysteresis and can never regulate in linear mode or even operate at all. My schematic however WILL work. The 1st faulty example in a DS I found at Univ in 1973 for an RCA staircase generator.... Furthermore Fig 31 also is no good. – Tony Stewart EE75 Jul 22 '18 at 23:58
  • @TonyEErocketscientist Interesting... could you tell me why it's faulty? I was just about to breadboard it :) – Alex I Jul 23 '18 at 01:14
  • A balanced Diff Amp has the Vin+ R divider to ground ref not the output where it has hysteresis and insufficient LED swing. Also it is the CUrrent sense R that is being compared to input voltage not the Laser Diode drop. But dont trust me , try to understand the difference between my design and their's which is faulty. But if you prefer to save time, trust me. – Tony Stewart EE75 Jul 23 '18 at 04:19
  • Be aware that breadboarding can introduce a lot of stray capacitance, so what works on a breadboard might not work in a PCB and vice-versa. – jalalipop Jul 23 '18 at 16:51

2 Answers2

2

The standard approach in your case is to modify the circuit slightly:

schematic

simulate this circuit – Schematic created using CircuitLab

Unfortunately, I can't give you component values. They depend on the op amp AND R1. As a start, try 1 to 5k and 100 pF, but be prepared to experiment. Getting a circuit simulator such as a SPICE version (TINA, LTSpice, etc) will let you play around, too.

Be prepared to see quite different turn-on and turn-off behaviors. At turn-on the op amp has to come out of a very unpleasant condition, as opposed to its operation during turn-off.

WhatRoughBeast
  • 59,978
  • 2
  • 37
  • 97
  • Why not drive the LED from a bipolar differential pair. At your slow speeds, the 2n3904 will do fine. Use a 3rd transistor in the current source (the longtail). – analogsystemsrf Jul 22 '18 at 22:21
2

Short Answer: Reduce R1 from 10 to 1 Ohm and add 10:1 divider on input or as req'd.

Your Op Amp Output High or Ioh current limits being close to your operating limit of 100mA imposes severe voltage drop internally on Vds

Also for stability it may be difficult to calculate as it "saturates" the output losing negative feedback and thus linear gain drops to zero. However the impedance of the LED is dynamic so it never reaches 100mA and the ouput can oscillate in and out of "full rail" mode ( although technically only called saturation in BJT's ) from full linear gain to zero gain. A very unstable condition.

The Iout min > 100mA due to RdsOn = 35 Ω @ 5V, so 100mA will result in a Vds drop of 3.5V!! or Vout=1.5V Meanwhile the current rises to 100mA only if there is no drop on the current sense R1 which is an additional 10*0.1A= 1V so this adds up to 5.9V Vdd required to make it work.!!

So the initial solution is try 1 Ohm then analyze worst case tolerances for temp., LED and supply voltage.

schematic

simulate this circuit – Schematic created using CircuitLab

OPA354

The stability at lower currents is dictated by the Coss of the MOSFETs and C of the LED which results in a mismatched impedance especially when there is inadequate headroom for Vds internally.

Speculation

It may require increasing the Vdd to 5.5 to meet the stability at maximum current.

There is no gaurantee this will work at all temperatures, but it is close.

This chip however may dissipate 360mW which must be dissipated and may require a board copper heat heatink of case heatsink. Rθja=~90'C/W

optimal improvements

schematic

simulate this circuit

Layout to all input and output pins must be done carefully to minimize load capacitance ( from a ground plane ) and perhaps using guard tracks to isolate feedback capacitance. If there is more positive feedback capacitance than negative feedback by virtue of track or jumper geometry (even by 1 pF) it will induce spurious ringing. Therefore this solution was intended to keep all capacitance to an absolute minimum for fastest risetime yet balanced to eliminate spurious ringing. The 1pF would have to be selected based on layout.

Feedback R value if too small will result is wild relaxation oscillations and too large reduces rise time, so impedance matching is critical for 30 to 50MHz BW at high current and there is more work to be done here.

Tony Stewart EE75
  • 1
  • 3
  • 54
  • 182
  • More important in this design is what are the acceptance critieria? for mA, ripple and noise max. – Tony Stewart EE75 Jul 22 '18 at 21:02
  • Thanks! The acceptance criteria, hmm: I want fast on/off (10-20ns), low ripple (as low as practical after the initial on transient) and a precise (but not necessarily proportional) LED current as a function of input voltage. – Alex I Jul 22 '18 at 21:14
  • Btw I know this op amp won't be able to drive 100mA, I'm only going for 50mA in this breadboard circuit. I'd pick another fast op amp for driving the LED at its rated current. – Alex I Jul 22 '18 at 21:15
  • Note I added some extra fine details. This Op Amp can work. http://tinyurl.com/yc58vl24 Reduce R1 to 5 Ohms and scale input accordingly. – Tony Stewart EE75 Jul 22 '18 at 21:43
  • Try changing Rf & C pF and see the effects http://tinyurl.com/ybp97dnr From my experience fast rising current steps must be done with CML or current mode drivers. – Tony Stewart EE75 Jul 22 '18 at 23:31
  • Large feedback R4 values will also interact with the op amp input capacitance and cause oscillation, which is why I suggested a certain amount of experimentation is in order. – WhatRoughBeast Jul 23 '18 at 00:15
  • positive feedback without a series R can cause oscillations. Large R4 may affect stability, but to a less degree. Rev 2 http://tinyurl.com/ybmtzfh3 uses a 0.5 Ohm shunt R – Tony Stewart EE75 Jul 23 '18 at 00:42