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.

[参考译文] TLC5958:多路复用问题、模块0的 LED15设置模块1的 LED0

Guru**** 2460850 points
Other Parts Discussed in Thread: TLC5958, TLC5957

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/675626/tlc5958-multiplex-issue-led15-of-module-0-sets-led0-of-module-1

器件型号:TLC5958
主题中讨论的其他器件: TLC5957

我使用2个 TLC5958芯片(多路复用)来控制32个 RGB LED (将 MAX_LINE 设置为00001b)。   

当我为第一个 TLC5958的通道15设置值时、它们也会出现在第二个 TLC5958的通道0上。  之后、继续写入 GS 数据、设置第2个 TLC 的通道1至15。

除 MAX_LINE 从0更改为1之外、所有 FC 设置均为默认值。   

有什么想法我做了什么错?

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

    由于您使用2个 TLC5958来控制32个 RGB LED、是否有任何理由将 MAX_LINE 设置为1?

    使用 MAX_LINE=00000b 时会发生这种情况吗?

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

    感谢你的答复。 2个 TLC5958被连接在一起(第一个的 Sout 连接到第二个的 SIN)、这样它们可被设定在一个多路复用配置中(与数据表中显示的典型应用电路完全一样)。 当我仅连接了一个控制16个 RGB LED 的 TLC5958时、将 MAX_LINE 设置为0是可以正常工作的、但不能与2个串联的 LED 一起工作(对于32个 LED)。 我的理解是,这正是为什么将 MAX_LINE 更改为1的原因(即现在有2条线路/TLCS,每个16个 LED,为总共32个 RGB LED 进行多路复用)。 如果您认为我在这里遗漏了一些东西、请告诉我。

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

    大家好、David、

    多路复用意味着使用开关 FET 来控制更多 LED。 通过多路复用,您可以使用2个 TLC5958来驱动32*N (N 为行号) RGB LED。

    因此、在您的情况下、行号为1、MAX_LINE=00000b 应该正常。

    您是否同时发送2个 TLC5958数据并按照应用报告 SLVA645中的5个步骤操作:

    使用 TLC5958构建高密度、高刷新率、多路复用 LED 面板

    此致、

    Kenneth

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

    肯尼思、您好!

    是的、我遵循5个步骤(其中步骤5是输入 GCLK)。 我将第一个 TLC 的 SIN 连接到我的控制器(输入 GS 数据)、并将第一个 TLC 的 Sout 连接到第二个 TLC 的 SIN。 因此、通过菊花链连接、我总共需要发送32个 RGB 通道的 GS 数据。 将 MAX_LINE 设置为0不起作用(它只会最终设置16个通道、每个通道1个 TLC)、当我将 MAX_LINE 设置为1时、它会起作用、但存在 TLC 的通道15复制到第二个 TLC 的通道0的问题。 这可能是计时问题吗? 可能与 TD0设置有关? 我真的不明白 TD0的重要性、或者如果这是我也应该改变的。

    我对 MAX_LINE (根据应用手册)的理解是、它应该被设定为1减去以菊花链方式连接在一起的 TLC5958的数量。 这是正确的理解、对吧?

    谢谢、
    David

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

    大家好、David、

    您对 MAX_LINE 的理解是不正确的。

    从 SLVA645的表9中可以看出:

    MAX_LINE 与扫描行号相关、扫描行意味着您使用 MOSFET 进行扫描。 虽然您使用2 个菊花链 TLC5958、但它们直接控制 LED、并且您不使用 MOSFET 进行扫描。 因此 MAX_LINE 为0、因为您的扫描行号为1。

    TD0不应该是问题、您能提供更多信息让我识别问题、如下所示:

    您的应用原理图

    2.您在执行步骤1 -步骤4时是否输入 GCLK?

    3.您的 GCLK 频率是多少?

    谢谢。

    此致、

    Kenneth

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

    肯尼思、您好!

    我已经回答了下面的问题、并提供了一些额外的详细信息(包括在此附上一个包含原理图的 PDF。

    [1.您的应用原理图

    我的应用实际上使用16个以菊花链形式连接的 TLC5958。  我还使用8个双路 P 沟道 MOSFET 在16个 TLC5958之间切换电压。  我只使用2个 TLC5958进行了一些测试、以尝试缩小问题范围、但没有取得进展(这就是我最初仅用两个 TLC 测试案例向您发送邮件的原因)。  此处随附的是16 TLC5958设计、其中包含 MOSFET、DMUX (用于地址线解码)和 LED。   

    2.您在执行步骤1 -步骤4时是否输入 GCLK?

    在我最初写入 GSData 时、GCLK 被禁用。  在 GS 数据写入和 VSYNC 后、我等待几毫秒、然后再启用 GCLK。   

    3.您的 GCLK 频率是多少?

    8MHz

    我还通过下拉框在文件中添加了一行: www.dropbox.com/.../HoloRGB_v24.pdf

    如果您有任何新想法或问题、请告诉我。

    此致、

    David

    e2e.ti.com/.../HoloRGB_5F00_v24.pdf

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

    我检查了原理图、结果正常。 根据您的描述、GCLK 也是可以的。

    对于您的原始问题、GS 数据更有可能写不正确。 因此、请检查您的 GS 数据写入代码以确认芯片2的 LED0是否正确写入。

    我还会考虑更多、以找到其他机会来解决此类问题。

    如果您完成代码检查、请告诉我。

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

    肯尼思、您好!

    我使用逻辑分析仪检查了代码并查看了信号(请参阅随附的屏幕截图)。  代码尝试向前18个 LED 写入颜色、然后将其余 LED 设置为关闭(RGB=0、0、0)。

    它将前8个 LED 设置为红色、接下来7个 LED 设置为蓝色、接下来1个 LED 设置为绿色、接下来2个 LED 设置为蓝色、接下来236个 LED 设置为关闭。

    结果为8红色、后跟7蓝色、后跟2绿色、后跟2蓝色。

    您可以在逻辑分析仪中看到、绿色写入的完成方式与红色或蓝色写入方式没有任何不同(颜色无关紧要、即使我更改了所有颜色、效果也是一样的)。

    似乎对于以菊花链形式连接的每个附加 TLC、"混叠"像素的数量增加1 (例如、第3个 TLC 显示蓝色然后绿色 LED、第4个显示蓝色、然后是绿色 LED 等)。

    逻辑分析仪通道设置如下(在附加屏幕中)

    棕色- SCLK  

    红色- SIN TLC 0

    2.橙色- LAT

    3.黄色- Sout TLC 0 (SIN TLC 1)

    我的想法已过时。  如果您有任何其他想法、请告诉我。  此外、根据我的原理图、是否将 MAX_LINE 设置为15?

    此致、

    David

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

    大家好、David、

    首先、由于您的扫描行号为16、因此设置 MAX_LINE 15是正确的。

    我要检查并确认的一点是、如图11所示、每个 WRTGS 命令写入48位数据、即 OUTBn/OUTGn/OUTRn (Bit15-Bit0)、因此您需要16条 WRTGS 命令才能写入一个 TLC5958所有通道 GS 数据。 由于您使用2个链式 TLC5958、您的 GS 数据应按如下方式进行写入:CHIP 2 OUTB15-OUTR15 (48位)+ CHIP 1 OUTB15-OUTR15 (48位)、然后是 WRTGS 命令; CHIP 2 OUTB14-OUTR14 (48位)+ CHIP 1 OUTB14-OUTR14 (48位) 、然后 是 WRT0 (48位)+ CHIP OUTB0 (48位)命令。  

    您需要在每次更改 GS 状态时将所有32个 LED GS 数据一起发送。

    请检查您是否使用了上述代码。

    谢谢。

    Kenneth

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

    肯尼思、您好!

    我认为您为写入 GS 数据指定的顺序与应用手册/数据表不一致。 第0行中的所有通道(第一个 TLC)应在第1行中的所有通道(第二个 TLC)之前写入、如以下摘录所示。

    如前面的逻辑分析仪屏幕所示、我将按照这个精确的序列发送 GS 数据。  我还附加了另一个缩放的单通道数据屏幕。  再说一次、我发送的所有内容似乎都与数据表或应用手册一致、因此我仍然不知道是什么问题。  是否有其他人可能会问您、他们在 TL5958方面拥有更详细的专业知识?

    此致、

    David

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

    大家好、David、

    很抱歉、您现在遇到了问题。 让我们合作解决这个问题。

    我检查您提供的所有信息、发现我们对当前应用有一些误解。

    1、虽然使用8路双 P MOS、但不使用多路复用拓扑、芯片0不是线0、而芯片1不是线1。

    如 数据表中的典型应用电路所示、多路复用是通过使用 MOSFET 来驱动每条线路的 VLED、所有 TLC5958驱动器都共享该 VLED:

    您可以使用电路进行检查、只需使用 MOSFET 来控制16个 TLC5958的 Vled、这与上述情况不同。

    换言之、我假设您总共控制16个16个=256个 RGB LED、如果您使用16个多路复用拓扑、则只需要一个 TLC5958 + 8个双路 P MOSFET。

    您可以参阅以下电路、它使用一个 TLC5957 + 5个双路 P MOSFET 来驱动16*10=160 RGB LED。

    e2e.ti.com/.../8765.TLC5957_5F00_10X16-RGB-LED-Matrix-Schematic.PDF

    因此、由于扫描行号为1、因此 MAX_LINE 分段值为0。 您应该将所有 VLED 连接在一起、因为如果您不使用多路复用、则无需切换 VLED。

    2. 如果您移除了 MOSFET 或简单的测试方法、则打开了所有 MOSFET、然后只有线路0。 下图中的行意味着您需要同时发送16 TLC5958的所有 GS 数据、因为它位于内部的移位寄存器。  

    3.如果您想使用2个 TLC5958检查 agin、请选择前两个 TLC5958、并为其余的驱动器关闭 Vcc。

    然后、您需要按照我在上一篇文章中所述发送 GS 数据。 因此、这应该是可以的。

    我将在 E2E 上与您建立友谊、以便您发送更多结果并获取我们的建议。

    谢谢。

    此致、

    Kenneth

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这可能起作用! 我进行了一次快速测试、仅需2个 TLC (如您建议的那样)、结果很好。 我想确认它在16个 TLC 的完整设计中工作、然后我将在这里报告并将该主题标记为已解决。 我可能需要几天的时间、因为我在这里忙于其他工作、但会在周末通知您。 再次感谢您的帮助!!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、David、

    很高兴听到它的工作原理。

    如果您需要其他帮助、请告知我们。

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

    是否有最新结果的更新?

    我将关闭此主题、如果您有任何其他问题、请直接回复、它将再次打开。

    如果问题得到解决、请帮助单击"解决"。

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

    肯尼思、您好!

    它现在确实起作用了。  关键是帮助我意识到、在 GSData 每48位后、我无需为单个脉冲升高 LAT、并且我可以/应该仅升高 LAT (即 WRTGS) 对于所有链 TLCS 的所有 GSData 之后的单脉冲、为单个通道写入了(即48 x 个 TLCS - 1个脉冲数)。  我在阅读的《应用手册》中对此并不清楚、因为我认为它更侧重于多路复用用用用用用用用用例。  再次感谢您帮助我找到解决方案。   

    此致、

    David