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.

[参考译文] TLC5928:器件自行更改输出?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1163641/tlc5928-device-changes-output-by-itself

器件型号:TLC5928

你(们)好

我们在读卡器应用中使用 TLC5928芯片来控制2组 RGB LED。
每组 RGB LED 使用 TLC5928芯片的3个输出引脚、每种颜色一个引脚。

schematics picture

原理图显示了更多正在使用的输出、但它们实际上是 RFU 而未连接。
RGB LED 阴极通过一些小电阻器(~ 68欧姆)连接到 OUT0、OUT1和 OUT2
RGB LED 阳极连接到 VDD3V3。

为了使每组颜色超过8种、一些硬件不断更新芯片输出
通过对16位数据计时、锁存、再次对16位数据计时、锁存等等。
频率不是很高、新的16位值每1.3毫秒锁存一次。
SCLK 频率约为13.9kHz:

我们正面临一种奇怪的芯片行为。
当我们尝试更改 RGB LED 颜色并因此从状态{OUT0有效、OUT1有效、OUT2无效}切换到状态{OUT0无效、OUT1有效、OUT2无效}时、
然后芯片将关闭其所有输出!

这种情况如下:

在<1>中、时钟值的最后两位都为1、要求 OUT1激活、OUT0激活。
在锁存脉冲之后、绿色信号(OUT1)仍然为低电平=按预期激活。

然后发生颜色变化、并为新的16位值计时。
对于这种新颜色、我需要禁用 OUT0并保持 OUT1启用。
在<2>中、时钟值的最后两位为1和0、要求 OUT1激活和 OUT0无效。
OUT1按预期保持激活状态、OUT0可能变为未激活状态(我的屏幕截图中未显示 OUT0)。

在<3>中,与在<2>中相同的16位值被计时到芯片:时钟值的最后两位为1和0,再次要求 OUT1激活和 OUT0未激活(无变化)。
但出于某种未知原因、OUT1变为高电平(禁用)、并且所有其他输出也会变为高电平!

我仔细阅读了芯片数据表、我认为所有时序都得到了尊重。
生成信号 SIN 和 CLK 的硬件会在 CLK 的下降沿更新 SIN、并在 CLK 的下一个上升沿期间保持稳定。
此外、CLK 在锁存脉冲期间保持低电平。

正如我说过的、时序相当缓慢:在 SIN 更新后、CLK 的上升沿~ 36微秒出现、这远远超过请求的值
数据表中。

我知道芯片的内部开/关控制移位寄存器被锁存器上升沿上的 LOD/PTW 诊断位所取代、
但我始终仅锁存一次、并且在下一个锁存脉冲之前始终有16个 CLK。
因此、我认为不会出现 LOD /PTW 诊断位被错误锁存到开/关控制数据寄存器的不良情况。

绝对无法从这种情况中恢复、无论将任何值计时并锁存到芯片中。
只有断电和上电才能使芯片再次正常运行。
可能不涉及芯片温度。 使用冷冻喷雾测试:无变化。
项目可以运行数小时而不会出现任何问题、问题仅在某些颜色转换(并非所有转换)上出现。
另请注意、空引脚未使用并保持低电平。

如果有任何帮助/提示,我们将不胜感激!

此致、

Fabrice Girardot / DDM Hopt + Schuler / Germany

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

    您好 Fabrice、

    关于您的原理图、我不知道为什么您对 SCLK 和 SIN 引脚使用上拉电阻器。 控制器输出引脚是否为漏极开路?

    2. 如何将空白引脚保持在低电平? 由控制器控制? 还是通过下拉电阻器? 或者...?

    [引用 userid="541327" URL"~/support/power-management-group/power-management/f/power-management-forum/1163641/tlc5928-device-changes-output-by-itself "]还请注意,空引脚未使用并保持低电平。

    3.您能否指定哪些转换(哪个通道)将触发此行为?

    Project 可以运行数小时而不会出现任何问题、并且问题仅发生在某些颜色转换(并非所有转换)上。

    4. 您是否可以尝试仅初始化控制器(保持 TLC5928通电)并重新启动时钟和数据传输?

    [引用 userid="541327" URL"~/support/power-management-group/power-management/f/power-management-forum/1163641/tlc5928-device-changes-output-by-itself ]从这种情况中完全无法恢复、无论将任何值计时并锁存到芯片中。
    只有断电和上电才能使芯片重新正常工作。[/报价]

    行为真的很奇怪。 我可能需要更详细的信息来执行深入调试。  

    此致、

    Steven

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

    你好 Steven。

    感谢您的回复。

    控制器输出引脚为推挽式、因此我同意这两个上拉电阻器是无用的。
    我将要求原理图作者将其删除、或者至少让生产团队不将其安装在电路板上。

    2.控制器将空白引脚保持在低电平。 我已经用示波器检查过这个引脚没有被错误地设置为高电平。
    出现问题时、我还尝试手动切换空白引脚(低电平->高电平->低电平) ->无变化。

    3.我的第一条消息中描述的转换每次出现问题时都会触发。
    从0x0003转换到0x0002 (在保持 OUT1使能的同时禁用 OUT0)。
    控制器时钟0x0003和锁存器=> OUT0和 OUT1按预期启用、所有其他输出按预期禁用。
    然后请求 LED 颜色更改、控制器现在需要禁用 OUT0来处理该颜色更改。
    现在控制器为新值0x0002计时并锁存;OUT1按预期保持启用;OUT0不受示波器监控,但可能按预期禁用
    1.3ms 后、控制器再次时钟0x0002并锁存。
    由于该值之前已锁存、因此预计不会发生输出变化。
    但示波器显示 OUT1出于任何原因被禁用、而锁存值0x0002确实需要使其保持启用。

    4.我已经尝试重置并完全重新初始化控制器。 不变。

    请随意询问更多详细信息/说明。

    此致、

    Fabrice

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

    您好 Fabrice、

    [引用 userid="541327" URL"~/support/power-management-group/power-management/f/power-management-forum/1163641/tlc5928-device-changes-output-by-itself/4377607 #4377607)]每次出现问题时,都会触发我的第一条消息中描述的转换。
    从0x0003转换到0x0002 (在保持 OUT1使能的同时禁用 OUT0)。[/引用]

    您是不是说、无论器件运行多长时间、每次发生0x0003 -> 0x0002 -> 0x0002都会发生这种奇怪的行为?

    此致、

    Steven

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

    李国能说:

    您是不是说、无论器件运行多长时间、每次发生0x0003 -> 0x0002 -> 0x0002都会发生这种奇怪的行为?

    没错。

    此致、

    Fabrice

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

    您好 Fabrice、

    会发生相同的情况  

    1. 0x0002 -> 0x0002
    2. 0x0001 --> 0x0000--> 0x0000--> 0x0000--> 0x0002。 通道1能否按预期开启?
    3. 0x0007->0x0006 --> 0x0006

    此外、这个单芯片是否会发生这种情况? 还是多个芯片?  

    此致、

    Steven