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.

[参考译文] TPS65988:在发出 GAID 之前停止充电

Guru**** 2587365 points
Other Parts Discussed in Thread: TPS65988, TPS65987D

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1262636/tps65988-charging-stopped-until-gaid-issued

器件型号:TPS65988
主题中讨论的其他器件: TPS65987D

您好、TI 支持团队、

我有一个基于 TPS65988的充电电路、该电路在测试期间锁住了我们、我不知道为什么-或在哪里查看它的情况/发生时间。  当系统要求主处理器提供器件 ID 时、该芯片仍在对该处理器做出响应。  我停止了处理器并在调试模式下连接了 Aardvark 和 TI App Tool、但遗憾的是、我在捕获根本原因之前解锁了器件。  我应该已经拍摄了一张完整的设备快照-如果再次发生、将会执行该操作。  我能够在器件"锁定"的情况下转储 PD 状态机跟踪、但其中的任何内容都不会指明根本原因。  您看到有任何需要注意的事项吗?

当我说芯片已"锁定"时、我的意思是、如果我们拔下并重新插入任何端口、则设备将无法充电。  我们执行了这一操作多次、这时器件将无法充电、但会以相同的图像和硬件结构在相邻端口上为 AOK 充电。

插头检测运行良好-每次我插入和移除电缆寄存器0x1A 时、

  • 检测到插头插入和拔出正常
  • HRESET 已切换几次、但在之后充电仍然不起作用
  • PD 硬复位失败
  • 电缆重置也 不成功
  • 电池电量耗尽标志清除正常、但未解锁器件
  • PD 状态机跟踪并没有识别出对我来说有意义的任何东西。  下面显示了您的查看内容。
  • 我‘了"Gaid",这是热重启(GAID 是冷重启-不确定区别是什么..) 从而使控制器再次开始为我们的器件充电。

您能否告知 Gaid 和 GAID 之间的区别?

是否有任何已知的原因使 Gaid 重新启用充电但切换 HRESET 无效?

如果我们能够使信息再次发生、您希望我收集什么信息?

Aya 和 Ghouse 有一些关于原理图和项目的信息。

此状态机跟踪中是否有什么可疑之处?

提前感谢您的帮助、

亚当

PD 状态机跟踪

端口1模块31 0x1ff =未知

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 Type-C 0x0 = SRC_STATE_DISABLED

端口0 INT 0x50 = PATCH_LOADED

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 PD 0x1 45Cb = 45Cb State_Cable

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 PD 0x1 = State_Cable 4552检测

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x60 = COMMON_STATE_Attached_SRC

端口1模块1 0x15 =未知

端口1 INT 0x19 = DATA_STATUS_UPDATE

端口1 INT 0x3 = PLUG_INSERT 或 REMOVATION

端口1 INT 0x1a = STATUS_UPDATE

端口1 PD 0x2 = State_Launch 4552引擎

端口1 PD 0x2e = State_Enable_配置

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 PD 0x2F = State_Enable_ 459US

端口1模块1 0x16 =未知

端口0 Type-C 0x60 = COMMON_STATE_Attached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0模块1 0x15 =未知

端口0 INT 0x19 = DATA_STATUS_UPDATE

端口0 INT 0x3 = PLUG_INSERT 或 REMOVATION

端口0 INT 0x1a = STATUS_UPDATE

端口0 PD 0x2 = State_Launch cangy 引擎

端口0 PD 0x2e = State_Enable_配置

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 PD 0x2F = State_Enable_ US

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 INT 0x1a = STATUS_UPDATE

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 INT 0x17 = PP_SWITCH_CHANed

端口1 PD 0x1 = State_Cable 4552检测

端口1 INT 0x3 = PLUG_INSERT 或 REMOVATION

端口1 INT 0x19 = DATA_STATUS_UPDATE

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 INT 0x1a = STATUS_UPDATE

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 INT 0x17 = PP_SWITCH_CHANed

端口0 PD 0x1 45Cb = 45Cb State_Cable

端口0 INT 0x3 = PLUG_INSERT 或 REMOVATION

端口0 INT 0x19 = DATA_STATUS_UPDATE

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口1 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 INT 0x1a = STATUS_UPDATE

端口1 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口1 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口1 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

端口0 Type-C 0x67 = COMMON_STATE_UNAttached_SRC

端口0 INT 0x1a = STATUS_UPDATE

端口0 INT 0x1a = STATUS_UPDATE

端口0 Type-C 0x64 = COMMON_STATE_ATTACHWAIT_SRC

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

    Adam:  

    我认为没有寄存器快照就很难分辨。 在测试条件被锁定时是否有任何见解? 插拔时 CC 引脚电压的捕获和寄存器快照可以为我们提供一些见解。  

    我不是很确定 HRESET 为什么不起作用。 从固件的角度来看、HRESET 和 Gaid (热复位)应具有几乎相同的行为。 如果我们有任何新发现可以向您更新。

    GAID (冷启动)和 GAID (热启动)的区别在于、GAID 也将完全复位硬件、并从闪存重新下载固件。 GAID 仅复位微控制器。

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

    感谢 Ghouse、感谢您的快速响应。  我们今天早上将尝试重新创建它、并提取快照。

    我们进行了更改、在 PP_HV1和 PP_HV2上添加了一个120uF 多项电容器、以将电压开关从5V 减慢到9V。  该网现在并联了一个10uF 陶瓷电容器和一个120uF 聚合物电容器。  通过使用我们一些具有大电池容量的手持设备、我们可以看到、当 VBUS 从5V 转换为9V 时、浪涌电流相当大   、这会导致电源路径断开、并在 VBUS 达到9V 时使系统在充电和中断之间持续振荡。   额外的大容量电容将浪涌电流从高达6A 降至 小于4A、并将压摆率降低了一点。  我们不再有电源路径保护电路的任何错误条件。  您会记得、我们使用了具有大型5/9/15V 系统级电源的电源多路复用器、而不是针对每个端口使用专用的降压转换器。   在您看来、这个额外的大容量电容是否有任何机会以其他方式扰乱电源路径保护?  

    我想这个问题已经解决了、但我想确保我们没有添加另一个导致新问题的变量:

    VBUS 上的振荡:

    VBUS 放大为黄色、IBUS 放大为绿色。  这是从5-9之间的过渡、无需大容量电容器。  IPK 为5.4A

    发生该操作时、调试日志中会显示一条消息;

    我们捕获的另一条消息:

    5V-9V 开关特性、添加了120uF 大容量电容器

    以上内容在我们修改的18个左右电路中重复出现、并且从未出现过之前观察到的任何电源路径断开现象。  它也可以在充电器件中超过100个连接器周期的重复出现。   

    最后、我使用5 Ω 电阻器为 TPS65987D 双电源模块供电、并捕获了5V-9V 和9V-0V 开关特性、供您查看。

    5-9V 开关特性

    9V-0V 特性:

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

    您好、Adam、

    我认为 在 PP_HVx 上增加这个值的大容量电容不会在 您的应用中带来问题。 在120uF 电容下作为浪涌缓冲器似乎是一个很好的折衷。 很高兴听到您能够在多个器件和热插拔之间看到一致和传递行为。 如果您需要任何其他帮助或指导、请告知我们。

    此致、
    高塔姆