TI E2E Community
LED Drivers/LCD Bias
LED Drivers/LCD Bias Forum
Problem with TLC59108 LED Driver: can't seem to control LEDs at all, maybe causing damage
We are bringing up a new design that uses a TLC59108, trying to bring up one string at a time. The first string started out ON before we had turned on the oscillator or enabled any of the channels. Then we moved to another string with the same results. The third string doesn't come on at all. After trying to bring up the 3rd string, we now get an indication in the ERROR STATUS register that the 2nd LED string is valid (0x02), but note we are not trying to control that string.
Lots of things *are* working. We seem to be able to read and write I2C registers at will. Voltages and grounds seem to be correct. BEFORE we try to work with a string, we measure the resistance between the bottom of the LED string and ground, and we get open (MOhms). AFTER we try to work with a string, we get 1 KOhm of resistance, like we are damaging something.
In our code, we are doing the following:
* Write 0x01 -> Register 0 (Config 1) to enable the oscillator
* Write 0xFF-> Registers 0x0C and 0x0D (LEDOUT0 and LEDOUT1)
* Write 0x10 (or something small) -> Register 2 or 3 or...9 - individual brightness control
We read back all registers (0x00-0x13) and all are as expected, either with default values or the values we just wrote.
Any suggestions for how to debug this?
I'd like to make sure I understand a few things. If I'm mistaken, please clarify.
You are using a single TLC59108. It is not a TLC59108F (open drain version) as evidenced by register 0x13.
When you refer to each string, it is one string per output pin. How many LEDs per string? What is the forward voltage per LED? What voltage are you using to drive the LEDs?
Your output measurement (MOhms or 1KOhm) does sound like something may be damaged. I would first check the LED Voltage to verify it is below the specification of 17V and VCC from 3.0V to 5.5V.
The ERROR register will set a bit if it detects a failure. The failure can be an OPEN or Thermal shutdown. But, for an OPEN, the channel must be ON.
Any part of the schematic you are comfortable sharing may help with suggestions.
There are 4 LEDs per string with a Vf of 3V per LED typical, but can range up to 3.8V max at 100mA drive. The input voltage is 14V for now, but can be adjusted. The current setting resistor is 475 Ohms, so I think I am shooting for 40mA until I get the circuit working, then I can tweak. I have a voltage regulator that steps the input voltage down to 3.3V for the 59108 logic and the microcontroller.
We use the microcontroller to drive the I2C and configure the 59108, which I infer from the datasheet is defaulted off until programmed into an operational mode. I have the reset input pulled down until the microcontroller comes up and releases the 59108 for configuring and operation.
We actually ran into issues upon our very first powering up the board. Without the reset even being released, the LEDs came on and we were then able to measure the ~1K to ground on the pin where it measured many MOhms beforehand. There was nothing we could do to change the operational state of the LED string despite being able to write and read the registers properly.
As Julia stated we have only one string populated for now. After the first output went low impedance on us, I jumpered the one string over to another output and dropped the voltage to 11V. Perhaps all the output section had been blown after the first occurence, but now at 11V the LEDs were dark and again nothing we did changed that.
So far, nothing I think I have in the setup would indicate I have violated any specifications so I am not sure why the outputs blew on first powerup.
I am happy to send along a schematic. I think I uploaded it, but am not sure. If not, perhaps I can email it.
The LEDs should definitely NOT turn on until the TLC59108 receives the correct commands. One of the outputs measures MOhm before the LED string is attached and powered but 1K after power is applied? Are there any negative undershoots during the power up process?
There was not a schematic associated with the forum post. You can try to re-post it, or contact your local PIC to get the schematic send directly to me.
There. That's better.
As for the undershoots, I will have to set up and look to see but I seriously doubt it. I will measure and get right back to you.
I looked at the 11V in, 3.3V regulator output, top and bottom of the LED string, and top of Rext. All are monotonic upward at application of power.
I started fresh with a new board with a new 59108. In place of the LEDs, I put 1.5K ohm resistors so that the current is limited and the output should easily be able to get into saturation and not blow up.
Upon powerup, the bottom end of the resistor now stays at the 11V input rail, implying no current is flowing and the device has all channels off. This despite our efforts to change the ON status of the outputs (to PWM, Group, perm on, etc).
On this new board, when we set registers, the only thing that we seem to be able to effect is the voltage across Rext. When we change the Iref register, the voltage changes accordingly.
The ERROR register always has 0x00 in it. When we change the value of the Vrext, does that change the target current level by which the string is declared open? If a string is declared open and the current returns, will the string error be automatically cleared?
John found the problem…I was using some i2c sample code from HI TECH, and the stop bit wasn’t implemented correctly, and I guess the register writes to the TLC59108 weren’t taking effect, so that’s why we were never turning the LEDs on. Funny that the IREF updates were happening. But anyways, glad we’re past this problem and onto new ones.
We are able to update the registers now and have the changes take effect.
So.........I populated a board with LEDs instead of the resistors and promptly ended up with a board that the outputs are now all low impedance and the chip draws about 300mA. Is there a power up sequence I have to follow? My 3.3V comes up as the 11V comes up. There is very little difference in time between the two while both are rising.
Could you reproduce the problem on another board or with another IC as well? If yes, please use a working unit and measure the voltage on the IC pins VCC and OUTx while the voltages start up. Please measure the voltages with respect to the GND pin of the TLC59108.
The part will be damaged when the voltage on any pin falls out of the maximum rating. I really do not have an explanation why the part seem to be damaged when LEDs are used compared to resistors.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.