# Consistent LED intensity from low and variable voltage supply

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.

Nov 22, 2013 at 23:37
• @Brad: thanks, but their lower power supply voltage (5V nominal) is significantly higher than my 3.1V maximum, so we are facing different challenges. Nov 22, 2013 at 23:54
• Fgrieu, just checking, you realize your circuit above, the three leds if on at the same time, will share that 2mA between the three of them, right? Nov 23, 2013 at 1:23
• @Passerby: I do. As stated, only one out of the three will be turned on at any time. Nov 23, 2013 at 7:59

You can use a boost regulator to get a constant and higher voltage (e.g. 3V3), put a resistor in series with each LED, and turn on/off each LED with a MOSFET on the low side.

• Op wants/needs 3 individually controllable leds. The ZXSC400 is single output. Nov 23, 2013 at 1:13
• @Passerby Thanks, I misread, I've edited the answer to reflect this. Nov 23, 2013 at 1:20
• I would need a 2.2V to 3.1V -> Vreg=3.xV boot or charge pump. Locally generating a stable voltage is a bit complex, but at least it works!. And as long as the unregulated Vcc_in is comfortably less than 4V (my case), I do not even need a discrete MOSFET on the low side (when the port is high, or high Z, its LED won't conduct). Nov 23, 2013 at 8:37

This answer https://electronics.stackexchange.com/a/27470/17178 gives three options. 1) A lm317 as a current limiter, 2) a discrete 2 transistor + 2 resistor setup, or 3) a LM234, a dedicated adjustable current source.

Note, the LM317's datasheet states that the minimum load is 10mA, you could do this with a parallel resistor, or skip it, if your testing shows it to be stable enough. Since you are simply using it for leds, it's not too important. But it has a relatively high dropout (1.25V).

Another option is a relatively simple boost converter. A chargepump, inductorless boost converter like the Texas Instruments TPS60240 15mA Boost Converter would work. 4 1uf capacitors are all it needs. Or a higher current tps61097-33 (two caps, one inductor). Boost the VCC to a regulated 3.3v, then you don't have to worry about the VCC changing.

• The LM317 eats 1.25V of dropout; that won't work. Nov 23, 2013 at 8:10
• The TPS60242DGKR (2.7V output) would be a solution, but double my input current at Vcc_in=2.2V: the expected efficiency is about 60% (figure 7), so 2mA in the LED now drains 2*2.7/2.2/0.6=4.1mA on the power supply, when an ideal linear current source would drains only about 2mA. Nov 23, 2013 at 10:16
• @fgrieu did you look at the lm234 datasheet? Nov 23, 2013 at 10:28
• The LM234 eats 1V of dropout. That's too much, I need like 0.3V. Nov 23, 2013 at 10:40