TLC5940 burning out

Thread Starter


Joined Jun 4, 2011
Hi there,

You'll probably only be able to help if you know about TLC5940s.

I'm making a 24x15 RGB LED matrix using daisy chaned 74hc595 shift registers that turn on and off MOSFET transistors to power the common anode, and then the R, G and B cathodes go across into 3 TLC5940s daisy chained.

It's all controlled by an Arduino. I've currently got 4x15 working, but the 1st of the 3 TLCs keeps burning out. I've lost 3 now.

I read on the TLC5940 Arduino site that the current limiting resistors might cause overheating, so I'm considering removing them, except that it will be hard to replace LEDs and I am not excited about the prospect of LEDs burning out.

I have the TLCs setting the sinks on with 100 out of 4092 brightness, which I think is done with PWM, and then I am cycling through the columns, so when I measure a single RGB LED's draw on the transistor, I am only getting 0.25mA! Which is nothing.

But I suppose it is getting 20mA for 3% of the time. I am just afraid that if I remove the current limiting resistors, they will be getting more than 20mA for 3% of the time, which could burn them out.

Does anyone know if the 2.2k 'current limiting' resistors are the reason my TLC is burning out after 45 minutes?



Joined Feb 6, 2012
A schematic would help us spot problems.

BTW, I'm playing with this chip with an 8x16 array (8x8 red-green) with a single TLC5940 and neither the current-limiting resistor or the chip are getting warm at all.
Have used the tlc59401 which is similar to the tlc5940. The '59401 doesn't have the eeprom, so you have to load pixel correction data each time, no biggie.

Had a multiplexed 8x24 (RGB) array going (i.e. 1 1/2 tlc59401's). With all white, full on, and 20ma current limit resistor, the packages would get nice and warm. No failures. These were tssop's on a DIP breakout board, without the thermal pad being soldered.

What part number are you using for the high side switches? You need a logic level part with very low gate capacitance. If those mosfet's aren't turned on all the way, that could be causing the heating? Double check the data sheet for situations where the chip could sink excess current.

Thread Starter


Joined Jun 4, 2011
Unfortunately my schematic drawing skills are poor...

Those things on the left are the TLC5940NTs and the circles are LEDs. There are 4 of these LED columns, each controlled by a transistor. The TC4427A MosFET datasheet is here.

Could you tell me what a low gate capacitance is? Or if you're willing to, to look at the datasheet? I'm not entirely sure what you're saying... how would the mosFET not be turned on all the way?

Regarding the TLC sinking excess current, I haven't read anything except the paragraph on the Arduino/TLC page about power dissipation, which made me think I should remove the current limiters, but I am not sending through high current, according to my measurements, so presumably it isn't having to limit current, so that isn't the problem?


The TC4427A is a Mosfet driver, so the data sheet is a little different from the norm. This device should be fine, as it is meant to be driven from a low voltage, low current output.

What are the Driver Input A, B voltage? Led supply voltage? Led specs?

I didn't have to OR my tlc outputs, but that should work. Losing the current limit resistor could only compound the problems, not solve it.

The column leds are multiplexed, with only one fet on at a time? I used a 74HC138 inverting demux chip to drive the row pfets. With that chip, you can only have one output on at a time.

You might disable the the problem IC Vcc pin and just try a 10 wide array to see if the problem goes away. If it does then you have a problem with a solder bridge, flux cleanup, wiring, or ? If not, then the overall design needs a fresh look.

I remember having my chip cascade wires crossed up at the start, the chips were getting hotter than heck. Luckily I caught it in time, and the IC's survived. That doesn't sound like the problem though?

panic mode

Joined Oct 10, 2011
first of all schematic you posted is not good. if you really had connections as shown, no LED would ever turn on because both anode and cathode of all LEDs are pulled low (anode by FET, cathode by chip).

looks like you are driving 5 RGB leds per tlc5940 and using 15 of 16 outputs. depending on package, max allowed power for chip is 2-4W, and this still has to be derated according to ambient temperature. At 85degC for example PDIP is only good for 1.2W, TSSOP with power pad (belly of the chip) not soldered, rating is only 1W etc.

if the 15 outputs are on at the same time, and you use PDIP versions, while sinking 20mA per output, you get max allowable voltage drop on outputs


if your LEDs have Vf of 2.5V at that current for example, your supply voltage must not exceed 2.5+4=6.5V (this would be fine if running on 5V).
but if you add for example 390 Ohm resistor to each output, you can use 12V supply (this value of resistors would drop about 8V in this case). then part of dissipated power will be on those resistors which reduces power dissipated by chip (and allows larger voltages).

even at 5V you can easily exceed power rating of the chip if you don't set correct current. using resistors dramatically reduces chance of destructive situation in case of program errors for example. Btw. there is thermal trip on the chip. are you using it?

Thread Starter


Joined Jun 4, 2011
Hi, thanks for responses... i'll hold off on removing the limiter resistor.

@panicmode: Well it's definitely working for about 45 mins. The shift register turns on the mosFET, which sends 5V+ from the FET side going into the anode and cathodes are sinking into the TLC.

I haven't tried the thermal trip output, but the datasheet says that goes on at 160 degrees... but it works fine and cool for some 30 minutes, no heat whatsoever, and then suddenly dies, and goes molten hot, so I don't think the output will help.

But also note that I am only running the equivalent of 1 RGB LED when this happens. So it's far from all 15 outputs being on at the same time.

@nickelflipper: What do you mean to OR the TLC outputs? OR them with what?

I have looked very carefully at the soldering, scraping between each joint, but I'll check again.

The RGB LED can take 25mA per channel. The mosFET's input is 5V from the Arduino, and the gate is turned ON by shift register output. So yeah, it loops this code:
TURN ON LED COLUMN 1 (using shift register)
SET LED 1, 3, 5 and 7 to blue (using TLC)
TURN OFF LED COLUMN 1 (using shift register)


I'm not sure what supply voltage the LEDs are getting - It should be 5V minus the transistor drop, so something like 4.1V I would guess. Is it important?

I remember hearing somewhere the TLC works out the necessary resistance for you, which is why I don't have resistors on the TLC outputs. Would that perhaps help?

Another thing I found was this forum post, but I couldn't work out what they're saying. Something about mosfet capacitance buildup from high switching rate. Might that be an issue?


Joined Jun 2, 2010
O.K. when I was looking at the schematic I thought three outputs were going to one led, forgot that those were rgb's per post #1.

I admit to taking a while to get the tlc59401 setup working. What is the gsclk frequency? If the gsclk was 1Mhz, then you wait a minimum 4.096ms before Blanking, and latching new data. Are there delays in the code before latching new data? or how is that handled?

Call me suspicious, but the TC4427 doesn't seem like the right part, now that I think about it. Why? the rdson is really high (approx. 15Ω) for a Vdd of 5V. If all the leds are lit up at full power, the package should be blazing hot!

When I put my array together I used a dual pfet irf7304 for the high side switches. Bound to be better, if you look hard enough. Finding good thru hole switching mosfets is a real pain (impossible?).

The mosfet's won't be seeing a high switching frequency, but you want the characteristics of a good switching mosfet (i.e. low Rdson, low gate threshold voltage (logic level), good power dissipation, and a low total gate charge Qg).

No need to put resistors on the tlc outputs.

Thread Starter


Joined Jun 4, 2011
Ok thanks, I don't understand Rds(on) or the effect of capacitance from mosfets, but I will try bypass the FETs and power the columns directly from the Arduino, and try eliminate the chance that it is the MosFETs, which as you say, sound suspicious.

It is indeed the one obscure part, since most cases of Arduino/74hc595/TLC/LED do not lead to burnouts. Will test this weekend, and report on Monday. Thanks

panic mode

Joined Oct 10, 2011
hello tryagain,

since your design has sudden death syndrome, there can be any number of factors.

and because we are not asked to offer possible new design but to help troubleshoot existing one, we need more info. in fact it is still very much unclear what your setup looks like.

can you please post proper schematic of an output stage including:
- detailed output circuit (including switching of supply voltage by fet)
- output voltage (including how you derive it)
- exact part numbers (FETs and LEDs too)
- exact values of any measurement (voltages or currents)
- calculations and criteria you used in selection and sizing of the components
- scanning scheme (timing and duty cycle)

any photos of your board/breadboard would be helpful.

Rds is internal resistance of output fet when it is on. high resistance means high losses (power dissipation) when output is high. this means higher power dissipation (more heat due P=I^2 * R).

Thread Starter


Joined Jun 4, 2011

So I removed the mosFETs and it works now, without getting warm at all...

Something interesting did happen though: I plugged in a lamp and when I turned it on, the chip started going hot, so I unplugged it, and then it was ok again. Same thing happened later. So basically, the USB port of my old computer seems to be passing on surges from the power adapter which toasts the TLC chip.

Anyway, it was possibly related to that...

or, it was the MosFET, as it is working now with just shift register -> LED -> TLC.

However, the 74hc595 shift register can only output some 30mA per channel, so it shouldn't be able to handle many LEDs at a time, so I will need to find a replacement for the MosFET...

OR, perhaps a replacement for the 74hc595 that can handle more output, though i suppose the transistor is the better design.

Would the irf7304 chip be a good choice? Is there anything better perhaps?
Glad you got it going. Never had such a problem with the power supply, does that mean a installing a line filter of some sort?

You have 45x20ma=900ma per column. I doubt very much if there is some DIP type of enhanced shift register, or line driver that would handle that.

I am sure the irf7304 would work for you, it did for me. The 8 pin SOIC package was a pain to work with on a proto board. My projects involve point to point wiring and rarely get to a pcb stage. A pcb sure would have been helpful. A through hole candidate could be the FDP6020P?
Oh yes, plenty of breakout boards on hand. I pick them up from dipmicro or stella collectibles and electronics, depending on what's needed. After wire wrapping the led array, mounting the adapter boards, etc. the tedium threshold had been reached on that project. You have to watch out for the TI power pad when mounting the tssop pkg, it will short across, so had to put a piece of mica underneath.