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.

[参考译文] TPS25750:无法识别的模式值

Guru**** 2559500 points
Other Parts Discussed in Thread: TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1450826/tps25750-unrecognized-mode-value

器件型号:TPS25750
主题中讨论的其他器件: TPS65987

工具与软件:

您好!我们收到一个 RMA、客户报告在电池电量耗尽后插入充电器后、设备充电速度非常慢。

在启动期间、我们的系统固件会读取 TPS25750 (0x03)的 MODE 寄存器、以确保其与"APP"、"BOOT"或"PTCH"中的一个相匹配。  查看该器件的内部日志、MODE 寄存器在此特定实例中返回了其他内容。 我们的系统固件随后假定  TPS25750处于错误状态、并放弃了加载补丁捆绑包。 然后将充电电压限制在5 V、这解释了客户的症状。

遗憾的是、我们的系统固件当时没有记录 MODE 寄存器的实际返回值、只是它与三个预期值之一不匹配。 我设置了一个自动测试来模拟电池电量耗尽情况下的充电器插入、然后检查 TPS25750是否被我们的系统固件识别。

经过大约5000次试验、我得以重现这个问题。 在 ÿ 情况下、MODE 寄存器返回0x04、0x50、0x54、0xFF、0xFF (P-T-Δ-Σ ÿ)、而不是0x04 、0x50、0x54、0x43、0x48 (PTCH)。 我当时没有连接逻辑分析仪、但我们的日志显示 I2C 控制器指示读取成功。

我怀疑 TPS25750在读取操作已开始后进入复位状态。 由于 I2C 控制器已经收到 ACK 且没有任何数据将 SDA 拉低、因此我们的 I2C 控制器只需 将空闲 SDA 线视为  读取操作剩余长度的全1 (0xFF)。

我的假设是、VBUS 上的干扰可能已使 TPS25750在电池电量耗尽模式和总线供电时复位。 为防止将来发生这种情况、我们向系统固件添加了一个小重试循环。 仅当 MODE 寄存器始终返回无法识别的值、或读取操作始终失败时、才会 假定 TPS25750处于错误状态。 我的问题如下:

[1] 从 VBUS 首次出现到 可以通过 I2C 访问 TPS25750且 MODE 寄存器将返回"BOOT"或"PTCH"的最长时间是多少? 此启动时间将告知重试循环的延迟。

[2] 是否有任何其他解释或已知行为可以解释此问题? 我发现一个 线程  、其中 TPS65987客户观察到通过 I2C 读取的寄存器的字节计数正确(例如0x04)、但数据字节也返回0xFF。

提前感谢-如果我能提供任何其他信息、请告诉我。

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

    尊敬的 Jeff:  

    [报价 userid="595304" url="~/support/power-management-group/power-management/f/power-management-forum/1450826/tps25750-unrecognized-mode-value "] [1] 从 VBUS 首次出现到 可以通过 I2C 访问 TPS25750且 MODE 寄存器将返回"BOOT"或"PTCH"的最长时间是多少? 此启动时间将通知重试循环的延迟。

    我们将对此进行深入探讨、并向您提供详细信息。  

    [报价 userid="595304" url="~/support/power-management-group/power-management/f/power-management-forum/1450826/tps25750-unrecognized-mode-value "] [2] 是否有任何其他解释或已知行为可以解释此问题? 我发现一个 线程  、其中 TPS65987客户观察到通过 I2C 读取的寄存器的字节计数正确(例如0x04)、但数据字节也返回0xFF。[/QUOT]

    由于此问题不容易复制(您提到了大约5000次试用)、 这可能只是一个临界情况问题。 当您的 MCU 读取 MODE 寄存器时、TPS25750是否会在任何时候掉电(通过 VIN_3V3或 VBUS)?

    谢谢。此致、

    Raymond Lin

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

    您好、 Raymond—感谢您一如既往的及时支持。

    在另一次~10,000次试验后、我再次重现了该问题;这一次、我将一个逻辑分析仪连接到支持 TPS25750的 I2C 总线。 在 I2C 读取期间、当我们的处理器在两个字节之间短暂停顿时、似乎会出现该问题、如下所示:

    这种情况并不常见、但如果我们的处理器长时间处理另一个高优先级中断、则可能会发生这种情况。 通过监测时钟电平上的细微差异、我们可以确认产生延迟的是我们的处理器而不是  TPS25750:

    返回下一个字节到最后一个字节后、 TPS25750时钟延展不到30us;由于时钟的振幅稍低(TPS25750 和处理器并行驱动)、可以明显看出这一点。

    此后、 TPS25750 释放时钟;振幅略有增加、因为只有我们的 处理器在等待完成 I2C 读取的过程中继续保持线路。  此时、 TPS25750 停止参与、最后一个字节在我们的处理器和逻辑分析仪上都看到为0xFF:

    处理器在字节间引入的延迟并不理想、但我希望     一旦处理器最终驱动最后9个时钟周期、TPS25750就会返回0x48、而不是0xFF。 这意味着 TPS25750 经历了某种复位条件、这又引出了我的下一个问题:

    [3] 我过去使用的一些器件包括 I2C 看门狗、如果时钟在启动和停止条件之间空闲时间过长、该看门狗会在内部复位器件; TPS25750是否有 包含类似功能的可能?

    回答您的问题:

    当您的 MCU 读取 MODE 寄存器时、TPS25750在任何时候都失去了电源(通过 VIN_3V3或 VBUS)?

    这是一个很好的问题—我需要进一步拆卸 RMA 以获得这些信号的访问权限、因此我一直在避免这一步骤、以免干扰它的原始状态。 进行回答 [3] 下一个,我可以尝试这个。

    再次感谢您的持续支持-如果我能澄清我的任何观察结果、请告诉我。

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

    尊敬的 Jeff:  

    我过去使用的一些器件包括一个 I2C 看门狗、如果启动和停止条件之间时钟空闲时间过长、该看门狗可在内部复位器件; TPS25750是否有机会 包含类似功能?

    我们在 TPS25750中有一个看门狗计时器、让我来深入探究具体细节。  

    在我的最后、您的解释/观察很清楚、一旦我了解有关 TPS25750误差恢复/计时器 I2Cs 线路上的更多详细信息、我将与您联系。  

    谢谢。此致、

    Raymond Lin

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

    尊敬的 Jeff:  

    TPS25750在其 I2Cs 引脚上的 I2C 超时设置为大约175ms、但如果 TPS25750将时钟线保持为低电平、而不是相反、则此设置适用。 由于处理器在中途停止读取该模式、因此可能需要 TPS25750清除 I2C 缓冲器并将其清除。 我们仍在探究该特定临界情况的具体细节。

    谢谢。此致、

    Raymond Lin

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

    你好  Raymond—新年快乐! 感谢您发送编修。

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

    尊敬的 Jeff:  

    向团队确认、如果 I2C 线路上存在异常行为、TPS25750具有~175ms 的内部计时器。 如果 EC 需要在回读过程中处理其他内容、建议添加一个停止位、当 TPS25750接收到一个停止位时、它将保持剩余的数据并等待 I2C 主器件返回并完成剩余任务。 否则、如果没有停止位、TPS25750将在计时器到期后清除数据、并且 EC 将需要再次重新读取 MODE 寄存器或使用它以前能够接收到的任何数据。

    如果您有任何其他问题或疑虑、请告诉我们!  

    谢谢。此致、
    Raymond Lin

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

    尊敬的  Raymond:感谢您的更新。 请原谅我、但我还有几个问题、只是为了确保我们确实找到了根本原因:

    [1]  我报告的值(0xFF)是否代表 由于 175ms 超时而清除其出站数据缓冲区的 TPS25750? 如果仅仅清除了缓冲区、我本来希望 TPS25750会主动驱动0x00。

    由于开漏总线的性质、无法判断 TPS25750是否打算发送 0xFF、还是只是在确认地址字节后立即无响应。

    [2] 这种现象在 停顿时间低至25ms 时发生;显著低于175ms。 是否存在任何超时可能在175ms 之间变化的情况? 它可能在 PTCH 模式下较低、然后 在 APP 模式下被更新的补丁捆绑包覆盖?

    再次感谢您的持续支持-如果我可以澄清我的任何一个问题、请告诉我。

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

    尊敬的 Jeff:  

    [报价 userid="595304" url="~/support/power-management-group/power-management/f/power-management-forum/1450826/tps25750-unrecognized-mode-value/5592810 #5592810"] [1]  我报告的值(0xFF)是否代表 由于 175ms 超时而清除其出站数据缓冲区的 TPS25750? 如果仅仅清除了缓冲区、我本来希望 TPS25750主动驱动0x00。

    我需要再次向团队核实、看看这种情况下缓冲区通常是填充0xFF 还是0x00。 如果发生超时或发生其他情况、缓冲区中可能只填充随机数据。  

    [报价 userid="595304" url="~/support/power-management-group/power-management/f/power-management-forum/1450826/tps25750-unrecognized-mode-value/5592810 #5592810"] [2] 这种现象在 停顿时间低至25ms 时发生;显著低于175ms。 是否存在任何超时可能在175ms 之间变化的情况? 它可能在 PTCH 模式下较低、然后 在 APP 模式下被更新的补丁捆绑包覆盖?[/QUOT]

    175ms 超时适用于 APP 模式、对于 PTCH 模式、我需要仔细检查并查看超时是否发生变化。  

    谢谢。此致、
    Raymond Lin

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

    尊敬的  Raymond:再次感谢您的持续支持! 期待您的反馈。

    与此同时、我已经执行了一个权变措施、 在返回一个或多个意外字节的情况下、将多次重试读取 MODE 寄存器。 经过数天的连续测试、问题再次出现;我很高兴地报告、第二次读取(字节间没有延迟)成功完成。

    我想最后一步是确认 TPS25750看门狗的特性与我的观察结果相符;然后我们可以关闭该线程。 如果我能提供任何其他信息、请告知我。

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

    尊敬的 Jeff:  

    1. 关于缓冲区到底有什么问题没有明确的答案、因为读取过程在中途停止、可以从缓冲区异常的地方传出、致使缓冲区装满0xFF。  

    2.在 PTCH 模式下、超时设置为大约25ms、在 APP 模式下、您应该看到超时接近175ms。  

    如果有任何其他问题或疑虑、请告诉我!  

    谢谢。此致、

    Raymond Lin

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

    您好  Raymond—感谢您的更新;这证实了我的观察与 IC 的设计相匹配、并且没有剩余的奥秘。 再次感谢您在本期提供的帮助;祝您周末愉快!