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.

[参考译文] DS92LX1621:电缆断开、但链路检测位=1

Guru**** 2511985 points
Other Parts Discussed in Thread: DS92LX1622, DS92LX1621

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/871749/ds92lx1621-cable-disconnected-but-link-detect-bit-1

器件型号:DS92LX1621
主题中讨论的其他器件:DS92LX1622

您好!

如果我断开 DS92LX1621至 DS92LX1622之间的电缆并读取 I2C 寄存器地址0xC、我在应用中遇到了很多 LINK_DETECT 位的问题;大多数情况下、我发现 LINK_DETECT = 1 (有时为0);如果我在电缆已断开的情况下为电路板加电、也会发生这些问题。

此行为是否正确?

谢谢你

卢卡

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

    尊敬的 Luca:

    请阅读两次、查看是否观察到相同的结果。

    您是否也在连接电缆时出现链路中断?  要进行测试、请轮询寄存器以查看连接时状态是否发生变化。

    此致、
    Bryan Kahler

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

    您好、Bryan、

    我的程序已经每秒轮询一次寄存器。 如果我断开电缆连接、我将读取 LINK_BIT=0、而不是10的7次、我将读取位为1、 其余位为0。

    如果我连接电缆、则读数始终为1。 但是、当没有连接时、该位不是链路的确定信息。

    这是真的吗? 您是否发现了相同的行为?

    谢谢你

    卢卡

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

    尊敬的 Luca:

    请确认我是否理解您的程序:

    1) 1)寄存器以1s 的间隔轮询

    2) 2)电缆已从设备上断开

    3) 3)断开连接后的首次读数有时可能为1、其他时间可能为0

    4) 2)二读数和后续读数为0。

    此致、
    Bryan Kahler

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

    您好 Brian、

    我的过程如下:

    1) 1)寄存器以1s 的间隔进行轮询(链接位=1)

    2) 2)电缆已从设备上断开

    3) 3)我每秒读取寄存器1次、链接位的统计 数据为8次到1、2次 到0

    我必须考虑不同的读取链路位状态过程?

    谢谢

    卢卡

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

    尊敬的 Luca:

    出现测试程序声音。  仍在研究这一点、请期待明天进行更新。

    此致、
    Bryan Kahler

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

    尊敬的 Luca:

    遗憾的是、链路检测可通过其自身的信号输出进行设置和触发。

    对于系统链路检测、请使用 LOCK 引脚状态0x1C[0]或 LOCK 引脚本身进行系统链路检测。

    此致、
    Bryan Kahler

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

    您好、Bryan、

    我认为这是您必须在产品数据表上报告的一个重要注意事项。

    您的注意事项无法解决我的问题、因为我正在以显示模式工作、所以如果断开电缆、与  链路状态(0xA、0xB、0xC)相关的 SER 寄存 器将不可用、则检测断开连接的唯一方法是轮询解串器并测试 I2C 错误。 这是真的吗?

    在正常功能期间、序列化的这些状态寄存 器(0xA、0xB、0xC)是 DES'寄存器(0x1A、0x1B、0x1C)的副本?

    在我的应用中、如果我频繁轮询解串器(每秒大约20次 I2C 通信)、有时会发生通信永久故障(16位流也错误)、恢复解串器的唯一方法是重启电源。    对于 I2C 通信、有任何设置要做吗? 或者是否需要考虑其他更强的链路连接?

    我的 PCLK 以32MHz 的频率工作。

    谢谢

    卢卡

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

    尊敬的 Luca:

    感谢您的澄清和其他信息。

    链路检测功能对电缆断开时的噪声敏感。  由于您是在显示模式而不是摄像头模式下工作、因此除非只轮询响应、否则不建议读取0x1c[0]。

    另一个选项是在0xC[1]中读取 CRC 校验、以查看在与解串器通信期间是否存在错误。  这不应给接口增加额外的压力、因为链路检测位还需要在某个设置的间隔进行轮询、而该位将代替它进行轮询。

    为了实现更强的链路连接、建议确保设计符合数据表中给出的抖动和其他通道规格。

    如果仍有任何问题、请告知我。

    此致、
    Bryan Kahler

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

    您好 Brian、

    感谢您的回答现在很明显、要了解链接、我必须检查解串器器件上的状态。

    还有一个问题:

    "在我的应用中、如果我频繁轮询解串器(每秒大约20次 I2C 通信)、有时会发生通信永久失败(16位流也错误)、恢复解串器的唯一方法是重启电源。    有任何设置可用于 I2C 通信?"

    您认为这是由 I2C 频率(10kHz)引起的吗? 有什么需要设置的?  还是减少通信数量很有用?

    谢谢你

    Luca Turrini

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

    尊敬的 Luca:

    由于您在显示模式下运行、请确保 解串器上的寄存器0x08~0x17在启动后复位为0x00。

    10kHz 的 i2c 总线速率很可能是造成这种情况的原因:

    I2C 总线速率也应在寄存器0x05中设置。  比率由 fSCL/寄存器值(十进制)确定。

    默认设置为0x40、这会导致 i2c 总线速率为~100kHz SCL、其中 fSCL = 6.25MHz。

    不支持低于0x32的值、可适应位空间的最大理论值为0xFF。  当 fSCL = 6.25MHz 且值为0xFF 时、i2c 总线速率将为~25kHz SCL。

    此致、
    Bryan Kahler

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

    您好 Brian、

    我已将 I2C 的频率设置为100KHz (默认值)、但我再次遇到一些奇怪的错误:

    *当我断开电缆连接时、SER 上的 CRC 计数器有时为0、而其他时间则不同。

    * SER 的 CRC 标志(0xC 位1),在电缆断开连接后,有时会永久置为1,在电缆已插入且连接打开时也是如此。 在这之后、与 DES 的 I2C 链路丢失、重新使其稳定的唯一方法是将 SER (寄存器0x01)复位

    我的连接是显示模式、如您在下面的设计中所见。

    我希望设置可能错误、您能给我建议 SER & DES 配置的正确顺序吗? 通过 I2C 读取有哪些有用 的功能、以便在正常通信期间监控链路、而不是读取?

    提前感谢您

    Luca Turrini

    e2e.ti.com/.../display-mode-1621.pdf

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

    您好、Bryan、

    现在、我的 i2c 总线的运行频率为100KHz (默认值)、但我还有一些奇怪的行为:

    • 如果我断开电缆连接,SER (寄存器0x0A)上的 CRC 错误不会增加
    • 有时,CRC 错误标志(0x0C 位1),在电缆断开连接后,卡在1,同时重新连接电缆,并且我无法与 DES 通信;清除它的唯一方法是对 SER 进行重新分区域化(寄存器0x01位1)。

    我想这可能是 I2C 配置错误。

    为了避免出现故障、DES 每秒轮询的最大次数是多少?

    我在后面添加了解串器连接的方框图、您能否为器件 SER 和 DES 向我发送正确的设置?

    提前感谢您

     

    卢卡

    e2e.ti.com/.../5481.display-mode-1621.pdf

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

    尊敬的 Luca:

    对于 CRC 错误、它们不应随着电缆断开而递增。  

    要确定电缆是否断开连接、请查询 LOCK 和 CRC 寄存器。  如果发现失锁、请再次轮询 LOCK 和 CRC 寄存器、该值不应递增。  在需要电缆和锁存的主动通信期间、CRC 错误会累积。

    在正常通信期间(电缆连接和锁定)、如果 i2c 存在 CRC 错误、CRC 错误的数量应增加。

    对于 i2c 吞吐量、i2c 接口应在传输完成后可用于后续传输。  最大速率将因可能的时钟拉伸而变化。

    此致、
    Bryan Kahler