I'm looking at several design choices for driving a LED and/or laser diode in a very stable, low noise way.
The specs are as follows:
current: 1-100mA, adjustable (the adjustment can be either digital, analog or via a trim pot); current accuracy: a few percent of the set point over time, temperature etc.
voltage: different LEDs I may need to drive are between 1.4V and 3V forward
noise/ripple at the LED: as low as possible (10uV rms is a good target ** this is one of the tough parts of the spec)
turn on/off time: 0.1 ms or less
Use a LED driver chip. Pros: they are meant to drive LEDs :) Cons: most of them don't have anywhere near 100:1 adjustment range (eg LED1642GW, can be adjusted in software which is nice but the range is only 3mA to 40mA). They also don't have any noise spec. Many have a lot more than 1% current variation over temperature (sometimes deliberate, the current drops at higher temperatures). Also, multi-LED drivers tend to have a single resistor set the current for all channels, they are not independently controlled.
Use an adjustable LDO configured as a current source (and use enable pin to turn on/off). Pros: the noise is specified and can be very good. Cons: the current sense resistor is also the current adjusting resistor, it needs to be a low resistance (let's say 1 kohm adjustable down to 10 ohm) and has fairly high worst-case power dissipation (0.1W) for a potentiometer. The enable pin turn on and turn off can be quite slow (sometimes adjustable turn on speed which is nice, but kHz operation is somewhat rare I think)
- Use an op amp, either directly or with a pass transistor: I breadboarded this. Pros: complete control over the behavior; adjustable over a wide range of current, including setting the current using input voltage. Cons: it seems pretty noisy and prone to oscillate; noise from the input can couple into the output; I haven't figured out how to make a version of this which is reasonably fast to turn on/off and also very low noise. If using just a positive supply, turning the LED off completely is not very straightforward.
Which of these sounds like the best design option for this spec?
(Btw: I will need to make a 100-channel version of this, with the current and on/off state of all channels controllable independently; this could be simply 100 copies of the same circuit. Using some of the 16- or 24-channel LED driver ICs could be nice, but only if the current for each channel is independently controllable)