This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLC59116: Setting LED's to (group) flash doesn't work at all, or is delayed by several seconds

Part Number: TLC59116
Other Parts Discussed in Thread: TLC59108

Greetings - we have a TLC59116 connected to four Cree RGB LED's.  Everything seems to work fine when the chip is configured for non-flashing (group blinking off) operations.  But when switching from a non-blinking mode to a blinking mode (also changing colors at the same time by changing brightness values for the three RGB LED's), it can take the TLC59116 up to 9 seconds before the flash and color appears.  During this time, the LED's are all dark.  We can switch from one non-flashing color to another all day long, but when switching from non-flashing to flashing, the LED's go dark and it can take many seconds for them to start blinking.

It is also interesting to note that I can set a LED group to flashing and one color (say blue), and they will stay dark.  Then a few seconds later, I can set the same LED group to a different flashing color (say green), and the LED's will still stay dark for about nine seconds from the initial blue LED setting, but when they appear and start flashing, they will be green.  The registers are being updated correctly, the device just isn't illuminating the LED's

After each of the changes I do a full TLC59116 register dump and see that the PWM and LED state values are correct - just no blinkenlights!

Thoughts?

-Dave

Dave Tubbs
Director of Software Development
Portalis LC

  • Hi Dave,
    Thanks for contacting us.

    Would you mind to send me your code of I2C commication code with the LED current waveform?

    Could you put the I2C clk and data with the LED current in the same screen shot of the oscilloscope?

    Thanks!

    Summer
  • Summer,

    Our platform is a Zynq-7000 device (Dual Core ARM + FPGA) running Linux. It's an embedded Linux, so not quite as "large" as a desktop installation. We tried connecting our HP Logic Analyzer to the bus, but there's a lot of traffic going across I2C, and we couldn't get the scope to trigger on the specific write events. However...

    As I mentioned, all the data is being written correctly to the TLC59116, because after the writes we were able to read the entire TLC59116 register set back and verify each register had what we expected, so I doubt the problem lies with the I2C interface - both writes and reads are working.

    FYI - we also use a TLC59108 on another board that's part of the same system, and ran into similar issues. In that case, the I2C interface was being driven by a PIC microcontroller. But we had the same results - flashing took a long time to start after being set.

    It appears that both these devices have some kind of delay after writing values for group flashing - perhaps an internal counter is wrapping and taking much longer than expected, or shifting from mode 2 (no blinking) to mode 3 (group blinking) has some internal logic that is introducing these delays.

    We solved the TLC59108 issue by abandoning the hardware flash and implemented it in software (not our first choice). I'm hoping that we can determine what is causing this issue, and maybe find a solution that works for both devices.

    -Dave
  • Hi Dave,

    May I know the detail of solve the issue by abandoning the hardware and implemented it in software since it will help to find the issue?

    Thanks!

    Summer
  • Summer,

    Since the TLC59116 seems to work fine with solid (non-flashing) LED setting changes, we went ahead and implemented the flashing operations in software for both the TLC59108 and TLC59116 devices.  We create a software loop or thread that sets the LED to 'ON', delays an amount of time, sets the LED to 'OFF', delays an amount of time and then repeats.

    On our Zynq-7000 device, we implemented this is a thread and we can now set each of the four individual tri-color LEDs on our boards to any color, and each LED can have it's own flash rate and duty cycle.

    -Dave

  • Hi Dave,

    It is great that you fixed the problem. Any other support needed please let me know, thanks!

    Summer