burned TLC5940 using arduino regulated 5V from 12V power supply

Hi,
I'm building an ambilight project where I use PC software to communicate to the Arduino, which controls TLC5940 chips to drive my led strips.
As my PC is not near my TV, I am using bluetooth for the serial communication. Also, I cannot power the arduino and TLC5940 from USB. Therefore, I used the 12V/5A, needed for the LED strips, also to go to my VIN on the arduino. Using the on-board regulator, I then go with 5V to my bluetooth dongle and the TLC5940 chips. That's when after some time my TLC5940 chips burns, resulting in a short between VDD and GND and other pins. I was only driving 5V RGB discrete LEDS in this test, not even strips, so it should not be related to too high power consumption in the TLC5940. Also, when running the same setup, but then USB powered, instead of 12V regulated down to 5V, my setup is working. Anybody knows what could be wrong? What does the arduino voltage regulator do exactly? I need some caps to prevent voltage spikes? If I use the 3.3V output, would that be better? I also have another 9V power supply to drive the arduino. Would this solve my problem, or will I run into similar issues as coming from the 12V supply?
Any help is appreciated!

Steven

This is less likely a supply issue and more likely how much current you're allowing the TLC5940 to sink from the LEDs. What resistor did you use for R_IREF (which sets the max current)?

390 Ohm, allowing 100mA. In one configuration I used 3 standalone RGB leds (5V) succesfully with this Iref when powered from USB. When powered from 12V via 5V regulator I got failure. I read that USB is limited to 500mA total, so this might have saved me. Therefore, I was planning to use 3x390 Ohm in series to limit the current to 33mA/output in combination with 3.3V from Arduino (allowing by default 60mA max in outputs)
From my power calculations, I will have Imax 33mA, NLed=15, Vout=10.7 (when supplying 12V through 50ohm resistor), given power=0.0331510.7=5.3W, which is twice the allowed rating, but my leds will be not fully turned on on all the channels at the same time, so I hope this should work??

My next experiment (when I receive my new TLC5940) will be one LED strip, 3.3V to the TLC and 33mA allowed current = 1.06W. This should be safe I hope...

I don't think you understand how the TLC5940 works.

The TLC5940 is a constant-current sink. Whatever current is set by the resistor used on the pin IREF, will be the maximum current that flows through the LEDs on its outputs. The chip varies the brightness of the LEDs by limiting the current. Using a 390ohm resistor you set that limit to 100mA.

Now, since it is a constant current device, this means each output of the chip is dropping whatever voltage is left from the LED's drop. If using a 5V supply and a LED that drops 3V, that means the output of the TLC5940 is dropping 2V. You have 100mA flowing through that output, which means each output is dissipating 200mW.

It isn't clear to me where voltage is being supplied for the LEDs, but it sounds like you are apply the Arduino's 5V and then your external supply's 12V.

When you are using a 12V supply with the same LEDs then the LED drops 3V leaving 9V to drop across the outputs of the TLC5940. This means each output is dissipating 900mW.

(Note the datasheet has a more complicated formula to calculate dissipation, but it boils down to V*I).

The issue you are having has nothing to do with the Arduino or its regulator. You're literally burning up the TLC5940s.

Thanks for the info. It is getting clearer now.

I have two cases:

  1. test setup: 12V source to the arduino, giving 5V for the TLC and 5V discrete LEDS. With 100mA current, I burned the TLC when using 3 LEDs, so 9 output channels. The power is then 9100m2V=1.8W (I forgot in my calculations to subtract the LED voltage drop). This should be still safe for the TLC, but it failed nevertheless.
  2. setup with LED strips, only one connected instead of required 5. Same 390 Ohm resistor, so 100mA allowed. Led strips are driven from 12V, so with 3V drop, 900mW as you calculated.

It will limit the current to 33mA and try to reduce the led voltage, either by inserting 50ohm series resistance (drop from 12V to 10.7V before LEDs), or by using a 9V power supply.
In this case: 0.033mA15channels6V(estimate)=2.97W...

another thing which is strange:

I measured the current consumption from my 12V into one channel of the LED strip: 60mA. This current is limited since it the strips has built in resistors. So this means that when 60mA is flowing, all 12 V are dropped over the strip.
If I then attach such channel to the TLC5940, the current will be reduced a bit due to the impedance of the output channels, but almost 0V will be there...
So shouldn't my TLC be still alive if it was due to power dissipation at the outputs??
very strange to me...