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.

Dimming of TLC5925

Other Parts Discussed in Thread: TLC5925, TLC5946, TLC5940, TLC59108

I have questions about TLC5925.

Is this IC possible with independent dimming of each channel?

Please tell us the dimming method if this IC is possible with independent dimming of each channel.

Setting ON/OFF time? and othermethod?

Best regards,

Takahiro Nishizawa

  • Hi, Takahiro-san,

    It's possible to achieve independent dimming of each channel.

    You're correct and it's controlled by seting ON/OFF time. For example, turning ON for 100 us and OFF for 900 us achieves 10% duty cycle.

    We also have PWM type LED driver, such as TLC5940, TLC5946, which can use grayscale to adjust the duty cycle.

    If you think this answers your question, please help to click "Resolve".

    Thanks.

    Regards,

    Kenneth

  • Hi, Takahiro-san,

    Do you have other concerns?

    Thanks.
    Regards,
    Kenneth
  • Hi, Takahiro-san,

    I find you replied in another post. I'll answer your questions in this post to keep the consistency.
    "Please tell us the method to control ON/OFF time.
    by register?

    We cannot find the method in datasheet.
    For example, TLC59108 has register to set the dimming per ch.
    We want to know the dimming method per channel about TLC5925."

    TLC5925 doesn't not have the register to set the dimming, so the dimming should be set by software using delay.

    For example, you can use the following code to set the dimming to 10% for all channels:
    " while(1)
    {senddata(0xffff); // turn ON all channels
    delay_time(100); // delay for 100us for channels ON for 10us
    senddata(0x0000); // turn OFF all channels
    delay_time(1000-100); // delayfor 900us for channels OFF for 900us}
    "
    And you can turn on/off differnet channels for independent dimming of each channel.

    If you think this answers your question, please help to click "Resolve".

    Thanks.
    Regards,
    Kenneth
  • Thank you for your answer!


    Can we set the duty per channel?

    For example,

    OUT1: Duty 10%
    OUT2: Duty 30%
    OUT5: Duty 50%

    We want to know that this IC can set the different duty per channel.


    Best regards,

    Takahiro Nishizawa
  • Hi, Takahiro-san,

    Yes.

    And you need to change the code as following:
    " while(1)
    {senddata(0x0026); // turn ON OUT1, OUT2, OUT5
    delay_time(100); // delay for 100us for channels OUT1/OUT2/OUT5 ON for 100us
    senddata(0x0024); // turn OFF OUT1
    delay_time(200); // delayfor 200us for channels OUT1 OFF for 200us and OUT2 and OUT5 ON for 200us
    senddata(0x0020); // turn OFF OUT2
    delay_time(200); // delayfor 200us for channels OUT1/OUT2 OFF for 200us and OUT5 ON for 200us
    senddata(0x0000); // turn OFF OUT5
    delay_time(500); // delayfor 500us for channels OUT1/OUT2/OUT5 }
    "

    In the above code, you can see for the 1000us period, OUT1 turns ON for 100us and OUT2 turns ON for 300us and OUT5 turns ON for 500 us, so it achieves 10%, 30%, and 50% duty independently.

    You can take the above for reference.

    Please let me know if this solves your problem.
    Thanks.
    Regards,
    Kenneth
  • Hi, Takahiro-san,

    I'll close this thread due to inactivity and if you have more questions please reply to it directly and it will open again.

    Please help to click "Resolve" if the problem is solved.

    Thanks.
    Regards,
    Kenneth