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:LED 的各个电源出现问题。 请提供帮助?

Guru**** 2439710 points
Other Parts Discussed in Thread: TLC59108

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/725773/tlc59108-issue-with-individual-pom-of-leds-help-please

器件型号:TLC59108
大家好,支持部门, 我看到我的问题以前被问及过(请参阅运算放大器的第一个答复:“我可以让 LED 完全亮起,但我无法使用单独的 LED PWM 来控制亮度。”) 这个帖子已标记为已解决、但已解决的部分却使我和我的问题无法解决。 以下是开机自检 :e2e.ti.com/.../126350 打开(无 PWM)或关闭(完全) LED 时没有问题。 我也可以使用单个 PWM 使它们变暗 但仅在连接的 LED 冻结之前的短时间内。 有人可以帮助我吗? 谢谢 Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chris、

    "LED 冻结"是什么意思?

    您会与我分享您的原理图和寄存器配置吗?

    谢谢。
    此致、
    Kenneth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    肯尼思、您好!

    解释"LED 冻结"的最佳方法是向您展示:

    (两个项目显示一个来回闪烁。)

    - 5个 TLC59108 -在每个 LED 大约150/255占空比下运行 PWMx 的测试板。

    - 项目在开/关闪烁时正常工作。

    原理图:

    连接至 PIC

    - 5个 TLC59108连接到 LED

    -在启动/复位时写入寄存器:

    START 命令

    写入=从器件地址 X

    (写入:)

    MODE1 = 0x01

    MODE2 = 0x80

    PWM0 = 100 (PWM1至 PWM7的十进制值相同)

    GRPPWM = 0xFF

    GRPFREQ = 10

    LEDOUT0 = 0x55

    LEDOUT1 = 0x55

    SUBADR1 = 0x92

    SUBADR2 = 0x94

    SUBADR3 = 0x96

    ALLCALLADR = 0x90

    IREF = 0xFF

    STOP 命令

    -写入下一个 TLC59108以执行闪存例程。

    START 命令

    写入=从器件地址 X

    写入= 0x0C (LEDOUT0)

    写入= 0x88

    STOP 命令

    START 命令

    写入=从器件地址 X

    写入= 0x0D (LEDOUT1)

    写入= 0x88

    STOP 命令

    START 命令

    写入=从器件地址 X

    写入= 0xA2 (写入所有 PWM 寄存器、从 PWM0开始、自动递增)

    写入= 0 (PWM0占空比值)

    写入= 100 (PWM1占空比值)

    写入= 0 (PWM2占空比值)

    写入= 100 (PWM3占空比值)

    写入= 0 (PWM4占空比值)

    写入= 100 (PWM5占空比值)

    写入= 100 (PWM6占空比值)

    写入= 0 (PWM7占空比值)

    STOP 命令

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chris、

    很抱歉耽误你的回答。

    您是否解决了问题?

    如果问题得到解决、请帮助单击"解决"。 如果不是、请在此主题中直接回复。

    谢谢。
    此致、
    Kenneth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kenneth、

    不,不幸的是不是。

    我不知道为什么会发生这种情况。

    无法找到答案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chris、

    您可以尝试以下代码吗? 它使用 Allcall 地址来打开所有 LED。

    芯片地址:0x48

    MODE1 = 0x01

    Mode2 = 0x00

    LEDOUT0 = 0x55

    LEDOUT1 = 0x55

    IREF = 0xFF

    STOP 命令

    如果您有任何更新、请告诉我。

    谢谢。
    此致、
    Kenneth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    肯尼思、您好!

    按照您所述、我尝试对五个 TLC59108 IC 执行 ALLCALL、使用 LEDOUT0 = 0x55且 LEDOUT1 = 0x55。

    请参阅:(PDF 第26页表12 ALLCALLADR - LED 全调用 I2C 总线地址寄存器(地址11h)位描述)

    我无法选择您描述的地址(0x48)、因为它不符合 AC[7:5]= 100或 AC[0]= 0的"固定"部分

    当我选择一个符合的 ALLCALL 地址时、我可以成功地打开或关闭由五个 IC 控制的所有 LED。

    不过、这不是最初的问题。

    我还尝试将 ALLCALL 写入所有 PWMn 寄存器、其值介于完全打开和完全关闭之间。

    结果各不相同。 有时呼叫正常、LED 会变暗。 大多数情况下 TLC5932没有响应、并保持先前的状态。

    我需要知道 TLC59108为什么处理 PWM 或调光、那么糟糕???

    为什么 IC 不能正常工作?

    如果我希望芯片仅打开或关闭 LED、我应该使用移位寄存器、因为它比 TLC59108简单得多。

    我希望 TLC59108能够(应该)以可靠的方式实现每通道 PWM;但我对这一间歇性问题感到沮丧、因为这是实现我的目标的不合理障碍。

    请帮助解决 PWM (调光)问题、因为这是问题、而不是"完全打开/关闭"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chris、

    很抱歉您现在遇到问题。

    实际上、我们以前没有看到这种问题、现在我们来确定原因。

    您的 MCU 是5V 电压轨吗? 您的 SCL/SDA 也会上拉至该值?

    您能否使用示波器获取 I2C 信号以检查信号是否正确?

    此致、
    Kenneth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kenneth、您好、感谢您抽出宝贵的时间为您提供帮助。

    是的、我使用5V 电源轨来实现所有功能;MCU、TLC59108、LED。 使用10K 上拉电阻器时 I2C 为5V。

    我在 I2C 上获得正确的信号... 让我解释一下。  现在、我有一个示波器、但它很便宜、我似乎无法"捕获"信号来分析它、但我可以看到时钟和数据线波形快速闪烁。 无论以何种速率、我都有一系列读取或写入的各种 I2C 项目(在主设备侧和从设备侧);因此我可以看到我的 I2C 代码工作(它执行我希望的操作)。 对于这个特定的项目、我知道到芯片的 I2C 命令的工作方式是我可以单独(和所有调用)发送 LEDOUT0/1命令。     

    我有五个具有%100 xxxx 0固定位的芯片被寻址;

    [芯片1]%100 0000 0 - 0x80

    [芯片2]%100 0001 0 - 0x82

    [芯片3]%100 0101 0 - 0x8A

    [芯片4]%100 0011 0 - 0x86

    [芯片5]%100 1110 0 - 0x9C

    [ALLCALL]%100 0111 0 - 0x8E

    寄存器地址;

    MODE1 - 0x00

    MODE2 - 0x01

    PWM0 - 0x02

    PWM1 - 0x03

    PWM2 - 0x04

    PWM3 - 0x05

    PWM4 - 0x06

    PWM5 - 0x07

    PWM6 - 0x08

    PWM7 - 0x09

    因此、在 I2C 开始调用后、我将使用芯片地址、寄存器地址和数据字节、最后是 I2C 停止命令。

    我将使用此方法告诉 TLC59108要执行的操作。 我也使用了自动递增、但 PWMn 的结果也是一样的。

    Chris