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.

[参考译文] UCD90120A:在中断块读取后、器件对 I2C/SMBus 通信无响应

Guru**** 2526700 points
Other Parts Discussed in Thread: UCD90120A

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/734173/ucd90120a-device-unresponsive-to-i2c-smbus-communications-following-interrupted-block-read

器件型号:UCD90120A

您好!

我们在通过待机功耗供电的系统中提供了许多 UCD90120A 监控器。 有时、我们看到器件对 SMBus 通信无响应的情况。 我们认为、由于系统故障( 主器件突然停止通信)、中断块读取事务会触发此状态。

是否建议使用任何方法或接口来恢复通信? 我们已经尝试了通过切换主器件的 SCL 线路而不驱动 SDA 来恢复 I2C 通信的标准做法。 我们正在寻找不需要重置 UCD90120A 的解决方案。

提前感谢您

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是指 UCD NACK 地址吗? 在主器件暂停通信 suddenlty 之后、SCL 或 SDA 是否都保持低电平?
    尝试使用有效载荷0x00执行单页命令(0x00)、以查看器件在 SCL/SDA 均为高电平时是否响应。

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

    我目前正在努力了解总线、因为它实际上是无法访问的。  总线上只有 UCD 器件(多达6个)。 确认 SDA 和 SCL 不会从主器件保持低电平。 在此状态下、具有0x00有效载荷的单页命令会导致 NACK。

    如果其中一个 UCD 器件保存 SDA 或 SCL、是否有如何恢复的指导?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 SCL 保持低电平的时间超过35mS、UCD 将其 I2C 模块复位以释放 SCL。 该特定的 UCD 器件是否运行良好、例如、它可以为配置的电源轨加电? 如果您可以得到一个波形、它将帮助我们看到吗? 在同一总线上的其他 UCD 器件中、您访问它们是否有问题?

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

    我仍在努力获取有关捕获波形的支持。 在锁存之外、器件在电源定序和监控方面运行正常。 它发生在多个不同的 UCD 器件、不同的系统和总线上。 我们能够在最可靠的情况下感应到这种情况的总线上只有一个 UCD 器件、因此我现在无法确认其他器件无法访问。

    [引用 user="Yihe">如果 SCL 保持低电平的时间超过35mS、UCD 将其 I2C 模块复位以释放 SCL。 [/报价]

    您是否说过、如果 UCD 保持 SCL 的时间超过35mS (由于时钟拉伸?) 那么它将复位它自己的 I2C 控制器并释放 SDA 和 SCL? 或者、您是否说主器件可以通过保持 SCL 为低电平35mS 并释放 SDA 和 SCL 来复位 UCD 的 I2C 控制器? 如果一个主器件能够复位 UCD I2C 控制器(而不复位整个 UCD 器件)、这将为我们提供一个良好的软件缓解。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是说时钟条纹是唯一的从机将保持 SCL 的时间。 但是、您可以尝试在每个字节的第8个 pusle 之后将 SCL 保持在低于35mS 的水平。
    您的意思是、对于这个特定情况、总线上只有一个 UCD、并且 SCL 在主器件侧不为低电平。
    您可以尝试将 PAGE 命令发送到所有有效的主机地址,以查看 ucd 地址是否已更改?

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

    器件地址绝对没有被意外更改。 发送的唯一事务是页集命令和块读取。 大多数器件都具有由电阻器设置的地址。 我获得了一些示波器捕获。 UCD 无响应时、已验证总线未被任何器件保持在低电平。 附件是器件 NACKing 的两个捕捉。 主器件在超过35mS 的时间内强制 SCL 为低电平、但在恢复器件时未成功。 与器件通信的 FPGA 主器件不会在地址传输后发送页面设置命令字节。

    除了 UCD 器件的硬复位之外、您还有其他恢复建议吗?

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

    您可以从波形中看到、NACK 在地址上发生。 地址似乎错误或已更改。

    您是否有 TI 的 USB 转 GPIO 软件狗。  如果是、您可以将其连接到 电路板并启动 TI 融合 GUI 以查看检测到的地址。

    您只需使用 SCL/SDA/GND 即可使用软件狗。

    此致

    Yihe

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

    I2C 地址未更改。 硬上电周期可使器件在预期的 I2C 地址恢复。 使用固定电阻器设置地址。 在参考 SLVU352E 的 PMBus 命令中、我看不到任何有关更改器件地址的命令的提及。 我在该参考中是否可以忽略某些内容?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在分配的地址下电上电后可以检测到器件、则地址正确。
    这与 Dan Fischer 报告的情况是否相同?
    I2C 主设备需要支持时钟扩展以便与 UCD 进行通信。
    此致

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

    我无法从 Dan Fischer 找到上述帖子。 我们决定的解决方案是添加一种机制来对器件进行硬复位。