Short version:
I want to operate a transistor (of any type, but presumably MOSFET/BJT) in its "partial" on state to regulate current through various LEDs, but I'm not sure what transistor type to use, nor how to pick one of said type.
I've got two white LEDs in series, plus an RGB LED, so 4 channels total.

The specs/requirements are:

  • Supply voltage of 12 V for white LEDs, 3.3-5 V (trimmable) for RGB
  • Max current of 4.8 A for white, 1 A per color for RGB; typical perhaps 1.5 A white / 0.3 A RGB
  • Currents smoothly adjustable down to exactly zero, without a step anywhere (e.g. 0 A when off, 0.2 - 5 A when on)
  • LED forward voltages of 11.2~11.8 V (typical) and 2.2~3.9 for the various colors, over the entire current ranges
  • Control from 3.3 volt MCU/DAC; <10 mA current capability
  • Low-side transistor placement
  • DC operation, current will be unchanging for hours at a time
  • Relatively low cost (a couple of USD per transistor or less)
  • DPAK/D2PAK or similar hand-solderable packages with some power dissipation capability (the PCB is 0.8 mm/2 oz, with filled thermal vias, and heatsinked)

Long version:

I've designed a linear LED driver, with at least a decent understanding of its pros and cons (mainly the con of power dissipation). The main advantages I'm after is entirely flicker-free operation and relative ease of design. I'm doing this for four channels, so going with something more complex such as a constant current buck converter isn't really feasible; that's also likely above my skill level.

I used a low-side MOSFET to regulate the current; the MOSFET gate is driven by a DAC, and said DAC is controlled by a microcontroller using a PID loop. There's a current shunt on the high side so that the MCU can regulate the MOSFET to get the desired current.

Since I want to control this from a 3.3 V MCU, I picked out a MOSFET with a low threshold voltage and low RDS(on) (in case I run out of supply voltage at high currents, and want the entire supply voltage across the load).

This all seemed fine to me, until yesterday, when I learned about thermal instability in power MOSFETs. Apparently, my choice of a low RDS(on) MOSFET is a very bad choice when operating in linear mode, as modern "trench" MOSFETs are designed for fast switching only, minimizing time spent not fully on or off, and can fail catastrophically during extended linear-mode operation -- especially at lower gate voltages (such as in my case of <3.3 V at all times).

I'm not sure how much this applies to me, since VDS < 12 V and IDS < 5 A at all times, and they will never be very high simultaneously. I expect less than 3.5 W of power dissipation worst-case.

After a bit of looking at MOSFETs optimized for linear operation, I could only find ones designed for extreme levels of operation, such as 500-1000 volts at power dissipations of hundreds of watts... and prices of $50 and upwards per MOSFET.

Next, I read up a bit on BJTs, but found other drawbacks, most notably the high Vce(sat) voltages that could cause a lot of waste heat during "fully on" operation. I'd also need either a Darlington transistor or some other combination (perhaps a MOSFET driving the BJT base?) to be able to regulate 0-5 A with a <10 mA output DAC.

How should I approach this? Should I go with a plain MOSFET, since the drain-source current and voltages will never be high simultaneously, or something else?

Edit for comments:

LED datasheets:
White LEDs, Cree XHP70.2, 2x in the 6 V-configuration in series
RGB LEDs, Cree XM-L Color

I will add a schematic soon; adding the entire project's schematic is overkill for the question, so I'll need to draw one up.

As mentioned, the MCU runs a PID controller to adjust the DAC output; the prototype (on a single 3 mm LED) works fine at ~300 Hz, and settles in perhaps 50-100 ms, which is more than good enough.

  • \$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. \$\endgroup\$ – clabacchio Feb 23 '18 at 15:57

This isn't an answer yet, but it was too long to put it in the comments, so here we go.

If you want a linear current sink, use Bimpelrekkie's schematic. This needs tuning, it can be a BJT or a FET, but you get the idea.

Your DAC outputs a voltage that the opamp mirrors on the current sense resistor Rs, which creates a constant current sink.

Since your issue is smooth current control over a very wide range of currents, and especially at the low end, the problem you will run into is:

  • You want a low value sense resistor, as the voltage on it results in wasted heat.
  • However, the opamp's and DAC's offset voltage (total Vo) are not zero.

With your 12V supply and 11.8V LED, this leaves only 0.2V for the transistor and sense resistor.

With 100mV on the sense resistor, at your current of 4.8A, Rs will be 20 mOhms.

Therefore, 10µV offset in the DAC/AOP chain will result in 500µA current.

I'm sure your LEDs will produce visible light at this current. If the offset is positive, even when setting the DAC at zero, you won't be able to turn the LEDs off.

Also if your supply is 12V +/- 5% then the -5% end of the range is 11.4V so the LEDs won't reach full brightness.

Additionally your RGB LEDs have low Vf, so if you drive them from 12V with a linear (non-switching) current source there will be lots of dissipation (efficiency will be 3.8/12 = 31%, so 69% of the power will be wasted as heat in Rs and the transistor).

So, this needs rethinking & planning, more info about the LEDs, how to arrange them in series/parallel to get the best Vf which gives enough headroom for the transistor+Rs without too much waste.

Also you need to decide between a linear and a switching solution.

  • 1
    \$\begingroup\$ +1 Looks like an answer to me... though perhaps not what he was asking, it certainly gives the OP a lot more to think about. \$\endgroup\$ – Trevor_G Feb 23 '18 at 12:17
  • \$\begingroup\$ The RGB LEDs are driven by a lower-voltage supply as mentioned. I'll trim it down such that it provides just enough voltage to run the highest-Vf LED at max brightness, presumably about 3.5-4.0 volts, causing a max drop of about 1.2 V (for the red LED), so about 1.2 W at 1 A. \$\endgroup\$ – exscape Feb 23 '18 at 13:06
  • 1
    \$\begingroup\$ @exscape We (then meaning me and Siemens-OSRAM) used separate voltage rails for each color of the RGB LEDs. Current source control with low overhead was used to set the 100% current value for each. Then PWM was used to adjust from there. See: 16x16 RGB LED modules. \$\endgroup\$ – jonk Feb 23 '18 at 18:30

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.