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.

TLC59108: setting GRPPWM register to "0" illuminates all LEDs to full brightness

Genius 12865 points
Part Number: TLC59108

Hello Team,

according data sheet:
General brightness for the eight outputs is controlled through 256 linear steps from 00h (0% duty cycle = LED output off) to FFh (99.6% duty cycle = maximum brightness).

Other settings
DMBLNK = 0
LDR0 to LDR5 = 0b11

It works with values from 01h to FFh as expected. But setting this register to 0 lets all LEDs shining...

It this a known bug? Is the data sheet wrong? Any idea how to fix this, please?

Thanks and Best Regards,

Hans

  • Hi, Hans,

    We don't see this before.

    Based on the configuration, 00h should be able to turn off all LEDs.

    Can you use individual brightness control through PWMx to check if 00h works correct?

    You can also take a look of the I2C signal when sending 00h to make sure the data is correct.

    Any feedback, please let me know.

    Thanks.
    Regards,
    Kenneth
  • Anonymous
    0 Anonymous in reply to Kenneth Du

    Hi Kenneth, Hans,

    setting individual brightness is working as expected. It is just about global brightness control.

    I just tried it once again with the following I2C configuration data sent to the LTC59108:
    0x80 // auto-increment, start with MODE1
    0x01 // MODE1
    0x00 // MODE2
    0xff // PWM0
    0xff
    0xff
    0xff
    0xff
    0xff
    0xff
    0xff // PWM7
    0x00 // GRPPWM
    0x00 // GRPFREQ
    0xff // LEDOUT0
    0xff // LEDOUT1

    Because global brightness (GRPPWM) is set to zero I would expect the LEDs to be off. But they are all shining brightly.

    If I change GRPPWM to 0xff in the configuration, the LEDs are shining brightly (as expected).

    If I change GRPPWM to 0x01 in the configuration, the LEDs are not shining (as expected, only thing I noticed is that they are flashing shortly).

  • Hi, Franz,

    How many devices are you using together?

    What does 0x80 mean? Do you try using ALLCALLADR 0x48?

    Thanks.
    Regards,
    Kenneth
  • Anonymous
    0 Anonymous in reply to Kenneth Du
    Hi Kenneth,

    I am using only one TLC59108 device in my setup.

    0x80 is the content for the control register (Auto increment flag = b1, Auto increment options = b00, register address = b00000).
    0x01 is the content for the MODE1 register (OSC flag = b0, all other flags default values).
    ...

    Of course, before sending the configuration bytes (given in the previous post) the I2C slave address for writing is sent (i.e. slave address, control register, MODE1, MODE2, ..., LEDOUT1). I am never programming the registers after LEDOUT1.

    Hope this helps to understand/reproduce the problem...

    Thanks, Franz
  • Hi, Franz,

    Sorry for the late reply.

    Do you solve the problem?

    Please help to click "Resolve" if the problem is solved. If not please reply directly in this thread.

    Thanks.
    Regards,
    Kenneth
  • Anonymous
    0 Anonymous in reply to Kenneth Du
    Hi Kenneth,

    no, the issue hasn't been resolved.

    At the moment I am not using the GRPPWM register to adjust the global brightness. As a workaround, I set the GRPPWM to 0xff and adjust the brightness only with the individual brightness registers. This is okay for me.

    Thanks,
    Franz