I want to light 1 red LED among 3 (or no LED at all; never 2 or 3 simultaneously), using 3 output ports of a micro-controller (PIC18LFxxx or so). The catch is that I'm operating from a low and variable voltage supply Vcc_IN of 2.2V to 3.1V, and want to avoid too much variation in the LED current (I'm content with like 2mA, give or take 25%). This simple solution won't cut it:
simulate this circuit – Schematic created using CircuitLab
Instead of R1, it looks like I need an ultra-low dropout 2mA current source. Also my application requires a low current consumption, especially when Vcc_IN is minimum (2.2V), for then I have barely enough current available for 2mA in the LED. What reliable, easily sourced, cheap, simple solution is there?
Clarification: A key issue is the very low voltage margin between the red LED's forward voltage @2mA (say about 1.7V) and the minimum Vcc_IN voltage (2.2V); these mere 0.5V must be enough for the dropout voltage in the Mx transistor (say about 0.2V) and the current source. Notice that if I adjusted resistor R1 experimentally to get an appropriate current at the low range of the supply voltage, the LED current would increase dramatically with power supply voltage.
I thought I had found a solution using one of the output of a MAX1916 (and reversing the polarity of the CPU output ports). The current regulator section of that IC (featuring a MosFET current mirror with x230 gain) would be quite nice for my use, unfortunately it seems that I do not have enough voltage to force the IC in ON mode.