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.

[参考译文] UCD9090:持续设置无效日志标志

Guru**** 2428050 points
Other Parts Discussed in Thread: UCD90160, UCD9090, UCD90160A, UCD9090A, UCD90120

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/663950/ucd9090-invalid-log-flag-continuously-set

器件型号:UCD9090
主题中讨论的其他部件:UCD90160UCD90160AUCD90120

有关 UCD9090/A UCD90160/A 的说明

情况:

在 UCD90160A 上,我们最近在所有 MFR-Status 寄存器上看到了“Invalid Logs”(无效日志)位置位。 这与状态字节= 0x01和状态字= 0x1001同时发生。 单元的循环通电未清除这些寄存器中的任何一个。 在该器件上、我们还启用了 GPI 故障。  如果禁用 GPI 故障、则所有状态寄存器都将清零。  重新使能故障会导致这些寄存器再次被置位。  我们还有其他使用 UCD9090器件的产品。 当 UCD90160A 中显示此错误时、我检查了 UCD9090器件。 我发现所有 MFR-Status 寄存器上都设置了“Invalid Logs”(无效日志)位,但 Status-word = 0x1000,Status-Byte = 0x00。

问题:

对于上述第二种情况(状态字= 0x1000且状态字节= 0x00)–这是非法组合吗? 也就是说、如何使状态字节的 LSB 为0、并且在状态字的高字节中设置一个位? 是否应该将状态字节的 LSB 设置为指示何时设置高字节中的任何位? 或者、这是否意味着、如果状态字节等于0x00、那么不管设置了哪些位、所有其他状态寄存器都将被忽略?

对于上述第一种情况、我了解校验和可能会在关断时中断、因此会损坏。 但是、记录的故障发生在器件完全通电时。 那么、为什么故障日志会损坏?

 有关故障记录的问题。

根据 PMBus 规范,如果故障“位”被清除时仍存在故障,则应立即再次设置故障“位”,并以常规方式通知主机。 我的观察结果是、只要故障发生并被清除、但故障仍然存在、就不会再次记录故障。 这是所有 UCD 器件的故意行为吗?

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

    对于无效的日志位、不能通过命令清除。 设置后、如果日志未损坏、将在下次重新引导时自动清除。

    这适用于所有 UCD 器件。

    此致
    Yihe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速响应。 我了解如何清除无效的日志位。

    我仍然需要了解两点:
    1.如果 STATUS-BYTE 等于0x00、是否可以忽略所有其他状态命令(STATUS_CML、MFR_STATUS 等)、无论它们的位是否置位、都是如此?

    状态:记录电源轨或 GPI 故障(LOGGED_FAULTS (EAH))、故障状态依然存在。
    问题:如果清除了故障日志(故障条件仍然存在)、是否应将故障再次记录到 LOGGED_FAULTS (EAH)中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    STATUS_BYTE 仅为 STATUS_WORD 的低8位。 请转至 Fusion Gui->Status->Status Register. 请查看 STATUS_WORD 以确定是否存在任何事件、但 STATUS_BYTE 不存在。
    不可以、GPI 是边沿触发事件、在故障日志被清除后、如果 GPI 保持无效、则故障不会重新记录。 只有当 GPI 从已置为有效变为已取消置为无效时、才会重新记录。

    此致

    Yihe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    再次感谢您的快速回复。
    故障行为现已清除。

    根据您对状态字节的回答、这些器件似乎不遵循 PMBus 规范。 你同意吗?
    PMBus 规范第 II 部分、第17.1节表14将状态字节位0定义为"以上均不是"、意思是"发生了位[7:1]中未列出的故障或警告"
    它在第10.3节中进一步指出、PMBus 协议提供了三级状态寄存器。 这使主机或系统管理器能够在一个快速的单字节事务中检索最重要的信息。
    我将其解释为、如果状态字节为0x00、则无需读取任何其他状态寄存器。 如果状态不是0x00、则主机需要深入了解状态级别。
    ucd 设备似乎不遵循此定义、因此我们的 UCD9090报告 STATUS-WORD=0x1000和 MFR_STATUS=0x00000080、这实际上表明日志无效。 在我们的情况下、即使在整个电源周期中、此条件也是持久的。 如果这些日志不可用/不可靠、则我们将失去使用这些设备的主要原因之一。 是否有人可以与我合作解决此问题? 这可能是配置问题。
    最后一个问题:主机应该如何解释状态字节的位0?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    你是对的。 UCD9090未针对 MFR 信息正确处理 STATUS_BYTE 的位0。 此问题已在与 UCD9090引脚对引脚兼容的 UCD9090A 中得到修复。 对于 UCD9090、请使用 STATUS_WORD 而不是 STATUS_BYTE 来确定器件的状态。

    在 UCD9090中、有用于故障记录的乒乓缓冲器。 在使用新故障更新 ping 缓冲器后、将针对下一个故障擦除 PONG 缓冲器。 如果器件在完成将故障写入一个缓冲区之前断电、则在下一个下电上电时会设置 INVALID 位、但另一个缓冲区上的故障日志仍然有效、可以检索。
    如果您不想看到无效的对数位设置、则需要使用掉电电路将 VCC 保持在2.9V 至2.6V 之间并持续5ms、电流为80mA、这样 UCD 就可以在 VCC 消失之前完成所有记录。 如果出现欠压电路,则必须在 globla 配置-> MiSC 配置中启用欠压功能。

    希望这对您有所帮助。

    此致

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

    谢谢-这更有意义。 我假设 UCD90160和 UCD90160A 具有相同的状态字节 情况?

    您能不能向我指出这些器件 UCD9090/A、UCD90160/A 和 UCD90120/A 的勘误表

    这不能解决我们遇到的无效日志问题、但它提供了一些注意事项。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Thomas:
    您可能会在这些文档中找到您要查找的信息、这些文档位于"A"产品文件夹中:
    UCD9090/A 和 UCD90160/A: www.ti.com/.../slva908
    UCD90120:有一个针对非 A 器件的勘误文档(www.ti.com/.../slvz014)。 我假设此勘误表构成了"A"器件的增强功能、但我并不是100%肯定的。 也许 Yihe 可以详细说明。
    -标记