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.

[参考译文] TPS2384:读取芯片 ID、但并不总是相同。

Guru**** 2558250 points
Other Parts Discussed in Thread: TPS2384

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1371467/tps2384-read-chip-id-not-always-the-same

器件型号:TPS2384

工具与软件:

尊敬的 TI:

我们将 TPS2384采用 Intel I350、

并使用 SDP 发送 I2C 命令、

当使用 I2C 通信0x00读取芯片 ID 时、

它在 PCIe x4插槽中为10b、  

但它在 PCIe x16插槽中为11b、

但是、如果我们将 PCIe x16插槽设置为第1代、

芯片 ID 变回10b、

是否有什么原因导致读取不同的芯片 ID?

如何修复?

附件:

1.从 PCIe x4对齐 I2C 信号:

注意:如红圈所示、时钟关闭时会有一些噪声。

2.从 PCIe x16对齐 I2C 信号:

谢谢。

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

    尊敬的庞春:

    寄存器数据似乎出现了错误的报告...噪声可能会导致读取错误、然而 SDA 上的实际数据波形是 PSE 错误报告的。

    这是我第一次看到此示例、您能确认器件没有机会在不同的 I2C 总线连接之间读取数据吗? 您使用的是相同的 PSE IC 还是不同的 IC?

    此致、

    Brandon

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

    尊敬的 Brandon:

    两种情况来自同一设备、但插入到不同的 PCIe 插槽中、

    PCIex4 (0x6)和 PCIex16 (0x7)。

    I2C 信号由 Intel i350生成。

    谢谢!

    Pochun

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

    尊敬的庞春:

    PCB 迹线路径在迹线长度、总阻抗、电路板上的电容方面是否有任何变化?

    SDA/SCL 线路上还有其他问题吗?

    此致、

    Brandon

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

    Brandon、您好!

    PCB 也不例外、

    这两个结果使用相同的硬件、

    尽管我们在同一 SDA/SCL 线上添加了另一个 IC、

    但 I2C 地址是不同的、

    我们的内部讨论认为这不应影响结果。

    谢谢!

    Pochun

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

    尊敬的庞春:  

    我同意、这不会影响结果。

    您是否能够在存在错误信息的 PCIe 插槽上探测 I2C 总线、并使用探针来确保读数相同? 您可以与其他主机检查此情况以确认来自器件的数据相同吗?

    PCIe 插槽上是否有任何数字隔离器、中继器或其他设备? 您是否有可以检查总线上的上拉电阻器和总电容的 PCIe 插槽原理图?

    此致、

    Brandon

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

    Brandon、您好!

    您是否能够在存在错误信息的 PCIe 插槽上探测 I2C 总线、并使用探针来确保读数相同?

    =>连接 I2C 总线并读取前两张图片所示的值。

    您可以与其他主机检查此情况以确认来自器件的数据相同吗?

    =>将卡插入不同主机的 PCIe x16插槽、结果仍然是相同的错误、0x07。

    PCIe 插槽上是否有任何数字隔离器、中继器或其他设备?

    =>否

    您是否有可以检查总线上的上拉电阻器和总电容的 PCIe 插槽原理图?

    =>保密、不能泄漏。

    谢谢!
    Pochun

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

    尊敬的庞春:

    在不看原理图或布局文件的情况下、这是我的最佳猜测:

    总线上有太多电容、是由长 I2C 布线的寄生电容引起的。 电容过大可能会导致压摆率降低、因为电容器正在充电、从而导致主机无法捕获低电平到高电平的转换、从而导致通信错误。

    也可以是数字隔离+高电容、具体取决于数字转换器的逻辑电平。 检查您正在探测数字隔离器的哪一侧、如果隔离器和 PSE 器件之间的电容太大、则低电平到高电平逻辑可能太慢、然后强制主机侧隔离器的输出会导致问题。

    如果不具体看一下设计、就很难给出这种情况的根本原因。 通常我会建议使用 ABA 交换、但由于器件未在更改、器件和主机之间存在某些问题会导致通信错误...

    此致、

    Brandon