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 通信故障

Guru**** 2489685 points
Other Parts Discussed in Thread: UCD90120A, UCD90SEQ64EVM-650, SEGGER

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/694746/ucd90120a-i2c-communication-failure

器件型号:UCD90120A
主题中讨论的其他器件: UCD90SEQ64EVM-650SEGGER

使用 UcD90120A 时、我们的一些电路板出现问题:

在100块电路板中的6块电路板上出现问题。 其余94块板工作正常

6个电路板中的5个是新生产的、但其中6个是我用于在 UcD90120A 上获取配置的板。

在第6块板上、JTAG 重新编程配置后出现问题。

我们使用 JTAG 对板进行编程。

我们使用的是400kHz 的 I2C。 上拉电阻为1k Ω。

ADDR 电阻器均为90.9k Ω、I2C 地址为0x68。

从 SCL/SDA 的范围内可以看到、SCL 在访问的第9个上升沿(在 ACK/NACK 的中间)之后(0.2us)被 UcD90120A 拉低、而不管 I2C 总线上发送的地址如何。

我可以看到、SCL 首先被 UcD90120A 拉低、然后由 I2C 控制器拉低50ns、并在 I2C 控制器继续生成400kHz 时钟脉冲之前保持低电平1.25us。

有什么想法我可以做什么来修复这些板?

我尝试通过 JTAG 重新编程固件、但这不能解决问题。

此致、

Søren M.

示波器屏幕截图:(黄色:SCL、蓝色:SDA、白色:工作板参考)

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

    您的 i2c 主器件是否支持时钟条纹?  同一总线上是否有任何其他 I2C 从器件?

    我没有在波形中看到您在下面描述的内容、相反、在第9个时钟之前有一个非常小的脉冲。 这是您抱怨的吗?

    当 UCD90120A 的 i2c 通信失败时、您是否有 waveforum?

    [引用 user="Soren.Moller"]

    从 SCL/SDA 的范围内可以看到、SCL 在 访问的第9个上升沿(在 ACK/NACK 的中间)之后(0.2us)被 UcD90120A 拉低、而不管 I2C 总线上发送的地址如何。

    我可以看到、SCL 首先被 UcD90120A 拉低、 然后由 I2C 控制器拉低50ns、并在 I2C 控制器继续生成400kHz 时钟脉冲之前保持低电平1.25us。

    [/报价]

    此致

    Yihe

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

    感谢您的快速回复。

    是的、主器件支持时钟扩展。

    -如果您看一下白色迹线,它来自一个良好的电路板,在这个电路板上,UcD90120A 结束时钟拉伸。 另请注意、存在 ACK。

    -黄色和蓝色迹线来自发生故障的电路板上的相同访问权限。 另请注意、有一个类似 NACK 的短脉冲。

    不、I2C 总线上没有任何其他器件、从器件和主器件都不是。

    是的、它是第9个时钟之前的非常小的脉冲、实际上是第9个时钟、但在上升沿之后立即被 UcD90120A 拉低。

    我尝试减小 SCK 上的上拉电阻、以更好地了解主器件(较低阻抗)与驱动低电平的 UcD90120A (稍高阻抗)之间的差异。

    下面是脉冲的缩放(250ns div):

    这里很清楚(如果图像抖动更小)时钟被上拉(通过上拉) 250ns、然后被驱动为低电平50-100ns (通过 UCD)、然后被(可能) 20-50ns 驱动为低电平、最后一次只有主器件驱动为低电平。

    我发现很奇怪的是、当我通过 JTAG 下载新配置时、一个电路板从工作状态变为失败-我以前已经完成过几十次了、没有问题。 所有电路板都具有相同的配置。

    此致、

    Søren M.

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

    索伦

    感谢您的介绍。

    我无法想象当主器件主动驱动 SCL 时、UCD 如何拉低 SCL。 对于400kHz 速度、时钟脉冲 应保持在大约1.25us 的高电平。 根据波形、SCL 在700us 左右完成拉低。 如果是 UCD 拉低 SCL、我希望 SCL 看起来更像下面、因为即使 UCD 尝试拉低 SCL、i2c 主机仍会驱动时钟。

    但根据实际捕获的波形、i2c 主机也会提早停止驱动时钟。

    该波形是否可以重复?  隔离 i2c 主机时、TI USB-TO-GPIO 软件狗能否与 sane UCD 通信? 这些电路板中是否有任何硬件或 i2c 主机软件?  

    此致

    Yihe

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

    我看不到 UCD 如何以这种方式将 SCL 驱动为低电平而不违反 I2C 规范。  

    对于此示波器脉冲、SCL 通过100欧姆电阻器上拉为高电平(通常为1k)、以便能够区分主器件和 UCD 将 SCL 驱动为低电平(没有任何东西将 SCL 驱动为高电平-只有上拉电阻)。

    通过1k 上拉、区域3、4和5看起来处于相同的电压(<0.1V)、但高电平脉冲的宽度相同。

    1:SCL 由主器件驱动为低电平(预期为1.25us -在示波器上仅可见最后1us)

    2:SCL 通过上拉电阻器上拉为高电平

    3:SCL 由 UCD 驱动为低电平<-这种情况我觉得很奇怪

    4:SCL 由 UCD 和主器件驱动为低电平

    5:主器件将 SCL 驱动为低电平(对于1.25us -仅在示波器上可见前1us)

    我猜主器件会在感应到 SCL 为低电平时将其驱动为低电平、并期望其作为时钟扩展支持的一部分变为高电平。

    展示这种行为的 UCD 始终如一地做到这一点。  

    制作的100块电路板是相同的、是第一批较大的图像串。 在生产测试过程中、只对它们进行了一次编程。

    在进行了许多配置更新之一之后、电路板从工作状态变为不工作状态、这是35块电路板原型运行的一部分。

    我们没有 USB-TO-GPIO -我们只有 UCD90SEQ64EVM-650、可用于通过 Fusion Digital Power Designer 生成配置。

    为了对 UCD 进行编程、我们使用 Segger j-link 和 OpenOCD 以及 Fusion Digital Power Designer 生成的 SVG。

    我们必须使用 JTAG、因为 I2C 被未供电的芯片拉低、直到 UCD 接通电源。

    此致、

    Søren μ A

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

    您好!

    我们尝试通过 I2C 对板进行1000次编程、没有任何问题。

    这是通过在电路板上运行的 Linux 完成的。

    但是、如前所述、如果没有显著的原理图/布局更改、我们最初无法通过 I2C 进行编程、而是在生产期间使用 JTAG。

    与 OpenOCD/j-link 一起使用时、Fusion Digital Power Designer 生成的 SVF 是否可以触发隐藏参数的编程/更改?

    如果是这样,我们如何防止这种情况发生?

    在生产过程中、我们将5%的电路板砖砌成砖墙是非常烦人的。

    此致、

    Søren μ A

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否想将有问题的 UCD IC 与已知良好的 UCD IC 换用? 没有任何 hidder 参数。
    然后、您可以将存在问题的 UCD 放入 UCD9064SEQ EVM 中、以查看是否在 EVM 上观察到相同的行为。

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

    我将尝试对有问题的 UCD 进行去焊、以便在 EVM 中对其进行测试。 我们不能在内部执行此操作、而是必须获得返工工作室才能执行此操作。 这可能需要一些时间、因为这是休假时间。

    在生产过程中、他们将有问题的 UCD 换成了工作正常的新的 UCD。 不幸的是、他们没有保留坏的情况。

    此致、

    Søren μ A