I try to design a cost-effective but still "reasonably engineered" way of driving a single white LED with a micocontroller with the following "specs":

  • For the single white LED no extra boost converter should be necessary (as a side note: I found that most simple led boost converters only work from >=2LEDs in series, so even If I used such as boost converter I would need to use two LEDs even if i only need one)
  • The supply voltge is nominal 3.3V, but could be set higher to about 3.6V
  • The single white LED should be run on a rather small but fixed current, let´s say somewhere between 3 - 5mA (across different PCB charges)
  • The white LED is available in binned forward voltage groups and one group limits VF to be in between 2.8 and 3.2 volts (the unbinned range is up to 3.6V where I see no way of achieving what I want without a dedicated boost converter)
  • Due to various reasons I'd prefer not to drive/sink the LED current directly from the uC pin, since even if 5mA are small, the driving results in some "ground offset" on the uC pin which could disturb another pin).

This seems pretty simple but is challenging for me because after some number crunching I seem to miss something.

I assume the most simple form of driving a LED with constant current, i.e. a series resistance, the LED and a low-threshold MOSFET as low-side switch. As an example, I assume using the https://www.mouser.com/datasheet/2/302/NX3008NBKW-842194.pdf

To achieve a specific, constant led current (I assume 4mA as target) I think I need to use the MOSET operating in saturation(current not dependent on VDS but settable via VGS and I assume the VGS set by the uC is constant).

I assume the uC can drive the gate of the MOSFET with 3.0V. To operate in saturation I need to keep VDS > (VGS - Vth). If I understand correctly, in this case, I actually want the minimum Vgs,th to be actually rather high, so that the saturation condition is fulfilled and the VDS voltage (voltage drop across the MOSFET) is still low.

According to datasheet I see a Vth,max = 1.1V, and Vth,min of about 0.6V, so let´s take 0.5V. Would mean that VDS must be greater than VGS-Vth = 3.0-0.5 = 2.5V. And there starts the crisis. Even with a forward voltage binned between 2.8 and 3.2V that would mean I need a minimum VDD of 2.5+3.2V = 5.7V, not even accounted for a series resistor to the LED?

There must be obviously something wrong in my thinking. I am pretty sure of having seen single blue LEDs (which are to my knowledge the same as white LEDs in terms of forward voltage) driven with the described topology. Is my assumption wrong that I need the MOSFET in saturation for setting a constant current? Driving a single LED with a few mA can not be that complicated, can it? ;-)

  • \$\begingroup\$ If your BoM can handle it, constant programmable current LED drivers are available that work with as little as 40mV headroom. If that's an approach you are interested in, I could write it up. \$\endgroup\$ Jan 12, 2020 at 9:31
  • \$\begingroup\$ @AnindoGhosh: I have used a LED driver (boost converter) before, but unfortunately, the one I used was only able to drive 2-4 LEDs (as I wrote above) and not a single LED. Not sure what causes the minimum of 2 LEDs. So yes, would be interested in your suggestion. In thought about the MOSFET solution because many driver ICs are "special" parts that become unavailable in a quite unpredictable way. So I search for a solution that is likely to be available also in some years from now on =) \$\endgroup\$
    – Junius
    Jan 12, 2020 at 10:21
  • \$\begingroup\$ @AnindoGhosh: I also identified this part: assets.nexperia.com/documents/data-sheet/NCR320U_NCR321U.pdf seems to have a headroom of about 1.4V. Even using this part I would need at least 1.4V+3.2V = 4.6V. maybe it is just not achievable what I am searching for? I somehow have doubts... :D \$\endgroup\$
    – Junius
    Jan 12, 2020 at 10:32
  • \$\begingroup\$ It would help (you and us) if you told us what you are actually trying to achieve. Unless there is a really good reason for using an LED with the spec you give a better one will be available. I amaware of white LEDs with superb efficiency at the currents you mention with Vf of 2.9V typical and a spread of about 0.05V for 95%+ of the production and not much more for the whole batch. The ones i have in mind are 4 pin through hole but the maker (Nichia) will have many others in SMD that suit. (I've used 100,000 + of the above LEDs. Maybe 170 l/W at 5 mA. \$\endgroup\$
    – Russell McMahon
    Jan 12, 2020 at 11:24
  • 1
    \$\begingroup\$ @AnindoGhosh: Nice catch! \$\endgroup\$
    – Junius
    Jan 13, 2020 at 20:53

1 Answer 1


Why not use a charge pump?

enter image description here

V1 is a square wave source, for example the output of a PWM, can be buffered by a logic gate.

"X1" is a dual diode, make sure the two Vf in series reduce output voltage enouhgh so the LED is off when it needs to.

This is a somewhat constant current driver. If R2 and C2 are large enough to smooth the LED current well, then it will have a constant voltage output at VCC minus the two diode Vf. In this case R2 sets the current across LED Vf dispersion.

However if we remove C2 and set R2 so that C1 is discharged at each cycle then each cycle pumps an amount of charge equal to C1 times (Vcc minus one diode drop). Charge times frequency is current, so it makes a constant current drive. It's a bit more efficient than the one above, but the LED will blink at PWM frequency.

enter image description here

  • \$\begingroup\$ Could you please confirm that my understanding is right? Assume V1 = 3V. When referring the second variant it works like this: When V1 is 0 volts, C1 charges from 3.3V through V1 to about 3.3V minus diode voltage drop. when V1 turns on, the LED sees the voltage of ( (3.3 - Vd) + 3V) - Vd. Is that right? I haven´t crunched the numbers yet but I assume efficiency is very bad? ;-) \$\endgroup\$
    – Junius
    Jan 12, 2020 at 22:47
  • \$\begingroup\$ Yes this is correct. Efficiency should be about 50%, which shouldn't matter because you didn't mention efficiency in the question. \$\endgroup\$
    – bobflux
    Jan 13, 2020 at 0:37
  • 1
    \$\begingroup\$ I accept your answer because it provides an easy solution to the problem. Even if it does not answer how to solve the problem using a FET, if even possible with the given headroom.. \$\endgroup\$
    – Junius
    Jan 13, 2020 at 20:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.