1
\$\begingroup\$

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?

\$\endgroup\$
  • 2
    \$\begingroup\$ Why would you want to drive a LED like this? What are you trying to achieve? \$\endgroup\$ – PkP Jul 22 '18 at 19:13
  • 3
    \$\begingroup\$ 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. \$\endgroup\$ – Maple Jul 22 '18 at 19:14
  • 2
    \$\begingroup\$ Why not use the circuit in fig 30 of the DS? Do you have details of the LED? \$\endgroup\$ – Andy aka Jul 22 '18 at 19:25
  • 2
    \$\begingroup\$ @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. \$\endgroup\$ – Andy aka Jul 22 '18 at 19:39
  • 1
    \$\begingroup\$ @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. \$\endgroup\$ – Alex I Jul 22 '18 at 21:21
2
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ 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). \$\endgroup\$ – analogsystemsrf Jul 22 '18 at 22:21
2
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ More important in this design is what are the acceptance critieria? for mA, ripple and noise max. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jul 22 '18 at 21:02
  • \$\begingroup\$ 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. \$\endgroup\$ – Alex I Jul 22 '18 at 21:14
  • \$\begingroup\$ 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. \$\endgroup\$ – Alex I Jul 22 '18 at 21:15
  • \$\begingroup\$ Note I added some extra fine details. This Op Amp can work. tinyurl.com/yc58vl24 Reduce R1 to 5 Ohms and scale input accordingly. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jul 22 '18 at 21:43
  • \$\begingroup\$ Try changing Rf & C pF and see the effects tinyurl.com/ybp97dnr From my experience fast rising current steps must be done with CML or current mode drivers. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jul 22 '18 at 23:31

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.