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.

[参考译文] PCA9518:背对背读取/写入事务上出现 I2C 故障

Guru**** 2790255 points

Other Parts Discussed in Thread: TCA9406, TXS0102, TCA9416, PCA9518

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1617333/pca9518-i2c-failure-on-back-to-back-read-write-transactions

部件号: PCA9518
主题中讨论的其他器件: TCA9406TXS0102TCA9416

尊敬的团队:

通过集线器进行背对背读取/写入事务时、我们面临问题。

只有在我们通过测试脚本执行此操作时才会遇到此问题。 如果在读取/写入之间添加了 300ms 的延迟、则可以正常工作。

此外、如果我们通过命令行手动背靠背读取/写、则不会出现问题。

请提供建议。

此致、

Shubham  

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

    这是什么问题?

    请展示集线器两侧信号的示波器布线。

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

    您好、Shubham、

    我们的应用程序团队目前因美国假期而不在办公室。 我们的回复可能会出现延迟。 感谢您的理解。

    此致、

    Josh

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

    嗨、Shubham、

    我同意这里的克莱门斯。  

    示波器捕获有助于了解 I2C 波形在集线器之前和之后的外观。  

    此致、

    Tyler

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

    尊敬的 Clemens & Tyler:

    示波器捕获的 PFA。

    这是针对周期性事务完成的。

    此致、

    Shubham

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

    嗨、Shubham、

    我没有注意到波形上有任何重要的内容。  

    您与哪个目标器件通信?  

    为什么选择 300ms 的延迟?  

    写入和读取命令之间的 1ms 工作是否与 300ms 相同? 我试图了解它是否与时序相关。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    目标器件是 Lattice CPLD LCMXO3LF-9400C-5BG400CAK7。

    我们开始试用 1、通过事务的时间低至 300 毫秒、在 200 毫秒时失败。

      只要出现故障、主器件侧 (FPGA) 的状态字节就会显示总线挂起| SCL 高电平| SDA 低电平。

    此外、我们还看到该器件的勘误表与 时钟延展相关。 这可能与我们的问题有关。  

    此致、

    Shubham  

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

    嗨、Shubham、

    与 CPLD 通信时是否存在时钟延展?  

    时钟延展勘误表与系统中任何使用上升时间加速器的器件更密切相关。 您的系统中是否有 RTA? TCA9416 / TCA9406/TXS0102 等器件。  

    时钟波形看起来正常、但您能否放大单个时钟脉冲以验证它是否干净? 看起来在上升沿可能会看到更多信息。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    与 CPLD 通信时没有时钟延展。

    我们的系统中没有 RTA。

    在输入和输出侧捕获上升时间的 PFA。

    此致、

    Shubham

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

    嗨、Shubham、

    失效模式可能微不足道。 上升沿的这种过冲类型波形可能会导致双时钟边沿、从而导致问题。  

    每条 I2C 总线上使用了哪些上拉电阻器?  

    此致、

    Tyler

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

    尊敬的 Tyler:

    输入侧的有效上拉为 0.5k、输出端的有效上拉为 4.7k。

    此致、

    Shubham

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

    嗨、Shubham、

    如果您将 500 欧姆 PU 电阻更改为 4.7k、您是否看到在测试脚本期间有任何改进?  

    此致、

    Tyler

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

    尊敬的 Tyler:

    没有、我们没有看到任何改进。

    之前是 5k、但由于上升时间较慢、我们将其更改为 0.5k。

    连接上升时间捕捉和 5k Rpu。

    此致、

    Shubham

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

    嗨、Shubham、

    [报价 userid=“633843" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1617333/pca9518-i2c-failure-on-back-to-back-read-write-transactions/6240129

    我们开始试用 1、通过事务的时间低至 300 毫秒、在 200 毫秒时失败。

      只要出现故障、主器件侧 (FPGA) 的状态字节就会显示总线挂起| SCL 高电平| SDA 低电平。

    [/报价]

    在 300ms 的传输事务和 200ms 的失败事务之间、I2C 波形的时序有何差异?  

    我知道 SDA 一直处于低电平、但我假设 SCL 时钟频率在事务之间的 200ms 和 300ms 时间内没有变化。  

    请帮助我理解两者之间的差异。  

    是否有示波器捕获显示总线卡在 SDA 上?  

    唤醒上拉电阻器似乎有助于减少缓冲器输出的非单调性、这正是我预期的有助于解决问题。 根据我的理论、PCA9518 的这个上升沿波形会导致错误的时钟边沿、从而导致目标 i2c 器件卡住、因为它会看到发送的时钟脉冲数量存在差异。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    时序图不是通过不同的延迟实验采集的。 这只是一种试错方法。

    是的、SCL 频率不变。

    我们没有关于总线卡在 SDA 上的示波器捕获。

     上拉电阻器唤醒有助于缩短上升时间、但 i2c 故障的问题仍然存在。

    这是一个 3.3V 逻辑、其中 SCL/SDA 的 VIHmin 为 0.7 x Vcc、即 2.3V。 0.7V 左右的阶跃会导致错误的时钟边沿。 我不相信。

    此致、

    Shubham

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

    嗨、Shubham、

    与 CPLD 连接到同一侧的任何其他目标器件?  

    与这些目标器件的通信与 CPLD 有何不同?  

    在这些情况下、SDA 拉至低电平时是否仍会出现锁定问题。  

    如果它不是来自 PCA9518 的双时钟相关问题、那么它必须是目标器件将总线拉至卡在低电平状态。 PCA9518 是一个缓冲器、仅驱动在输入端看到的内容。 PCA9518 无法锁定总线本身。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    没有 其他目标器件与 CPLD 连接到同一侧。 甚至其他通道 2、3、4 也会被禁用。

    此致、

    Shubham

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

    嗨、Shubham、

    我不知道为什么 PCA9518 本身会成为问题。  

    我们用 1 开始试用、通过交易的时间为 300 毫秒、但在 200 毫秒时失败。

    回顾我们前面的对话、以 1 秒间隔与 200ms 间隔运行时、I2C 信号发生了哪些变化?  

    这是否是 CPLD 理解 I2C 信号的能力方面的问题?  

    我认为我们无法捕获故障模式、即 SDA 总线阻塞问题或某个位发生翻转。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    以 1s 间隔与 200ms 间隔运行时、没有对 I2C 信号进行任何更改。 这是一个试错的方法,从 1 开始,减少到 900 毫秒.. 一直都在… 在 300ms 之前、它一直工作、但在 200ms 内失败。

    如果这与 CPLD 理解 I2C 信号的能力有问题、如何确认?

    “我认为我们无法捕捉到故障模式、即 SDA 总线阻塞问题或某个位发生翻转。“ ——只能从主器件的状态寄存器中读取 SDA 卡滞。

    最好的应届毕业生

    Shubham

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

    嗨、Shubham、

    要知道 CPLD 是否将总线保持在低电平、您可以从主机控制器循环使用时钟引脚 9 次。  

    要知道主机和 CPLD 之间的缓冲器是否导致数据干扰、然后如果可能、将从主机到 CPLD 的缓冲器短接以消除缓冲器的影响。 再次在不同的时序进行测试、以首先查看缓冲区是否是导致问题的原因。  

    此致、

    Tyler

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

    尊敬的 Tyler:

    该系统正在从制造工厂运输。 我们将尝试建议的实验一旦我们收到它们,它可能需要一些时间。

    最好的应届毕业生

    Shubham

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

    嗨、Shubham、

    请告诉我测试结果。 谢谢。  

    此致、

    Tyler