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.

[参考译文] TPS65981:UFP 丢失后、DFP 通过集线器无法重新连接

Guru**** 2553260 points
Other Parts Discussed in Thread: TPS65981, TUSB8041, TUSB546-DCI, HD3SS3220

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/849610/tps65981-dfp-through-hub-will-not-reconnect-after-ufp-lost

器件型号:TPS65981
主题中讨论的其他器件: TUSB8041TUSB546-DCIHD3SS3220

我遇到的一个问题是、在上行连接丢失并重新建立后、永远不会通过 TPS65981重新获得与端口控制器上下游器件的连接。 例如、在下图中、如果断开并重新连接电缆1、主机通常不会重新发现设备。 但是,如果在连接电缆2之前连接电缆1,则没有任何问题。 在故障情况下、我只能通过在 DFP 处重新连接器件来恢复。

主机<-- 电缆1 ---- > UFP <->集线器(TUSB8041)<-> DFP (TPS65981控制的 TUSB546-DCI)<--- 电缆2 ---- >设备

该集线器还提供了其他3个 DFP、它们都使用不同的多路复用器/控制器(HD3SS3220)。 这些 DFP 都不会遇到此问题。 此外,在多台主机和设备上也发现了该问题。 事实上,问题似乎在某种程度上取决于种族状况。 例如,当直接插入主机(即笔记本电脑)时,我可以可靠地重现问题,但当我通过笔记本电脑底座进行路由时,我看不到问题。 此外、在之前发生故障的情况下、当 UFP 重新连接后重新发现器件时、实例数量非常少。

我已经检查了 DFP 多路复用器、它在 UFP 断开连接时保持其正确的方向。 这里没有什么奇怪的。

我有以下问题可能有助于您深入了解该问题:

1. TPS65981的固件设置是否在应用程序自定义 GUI 中无法访问? 为了解决问题,我使用了大多数可用的固件设置。 这包括对 USB 暂停选项的更改、因为我们最初以为主机命令暂停和唤醒器件的方式存在问题。 如果有更多私人环境可以影响我希望了解更多信息。
2.此 PD 控制器是否存在任何已记录的已知问题? 任何已知问题的文档都将非常有用。
3.是否存在应用程序自定义 GUI 中尚未访问的任何私有 GPIO 事件? 理想情况下,我正在寻找一个 GPIO 事件,以确定何时重新建立上游连接。 当重新连接上行电缆时、这可能更容易手动触发下行连接的刷新。 现在,固件设置中没有类似这样的内容。 PD 控制器似乎不知道上游发生了什么。

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

    大家好 、看起来 PD 控制器不知道 UFP 连接/断开。 是否存在一种机制(集线器在连接时与 PD 控制器进行通信)在 UFP 连接时通知 PD 控制器? 请检查。  

    谢谢

    普拉吉斯   

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

    您好、Prajith、

    集线器中没有内置机制通知 PD 控制器 UFP 重新连接。 此外、PD 控制器 GPIO 引脚没有任何与识别 UFP 连接相对应的事件。 您可以在此文档中看到可用的 GPIO 事件:http://www.ti.com/lit/ug/slvuah7b/slvuah7b.pdf

    如果在进行上行连接时有 GPIO 输出事件会驱动线路、那么我将使用它来帮助配置 DFP 多路复用器。 不幸的是、似乎没有这样的事件、这是我在原始帖子中第三个问题的前提。

    但是、在连接 UFP 时、有一些方法可以执行某种 DFP 复位。 我可以将 UFP PD 控制器的多路复用器使能 GPIO 线路连接到 DFP PD 控制器的复位。 这将保持 DFP 处于复位状态、直到 UFP 看到连接。 我还可以在将 UFP 和 DFP 多路复用器使能信号路由到 DFP 多路复用器之前对其进行配置。 这还可以确保在 UFP 连接之后 DFP 才会建立连接。 然而,这两种选择都是解决问题的变通办法。 理想情况下、DFP 应能够在 UFP 重新连接后重新建立连接、而无需手动强制进行复位。  

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

    您好 Killy、我想知道断开连接期间 DFP (包括传递 DFP 和失败 DFP)端口的状态。  请捕获 DFP 的 USB 跟踪并与我们分享。 我是否可以知道哪个设备连接到有故障的 DFP 端口(USB2/3)? 您是否曾尝试在通过 DFP 时使用器件重新设计问题?  

    谢谢

    普拉吉斯  

     

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

    您好、Prajith、

    我附加了3个 Wireshark 捕获。 "BAD DFP - FAIL"显示了故障情况。 "BAD DFP - SUCCS"显示了 RARER 情况、其中有问题的 DFP 允许器件在 UFP 断开连接然后重新连接时重新枚举。 我通常只能通过某些主机端口或在快速循环 UFP 连接时成功。 "Good DFP - Success"显示了集线器上的不同 DFP、从未显示出问题。

    故障条件仅显示3条线路、最后由器件响应。 从这些迹线看来、主机应该在第4行上发出请求、但这种情况绝不会发生。

    我过去也在 CC 线路上进行过 PD 通信、您也希望看到这些通信吗? 最后、这里没有什么有趣的东西。 在所有情况下、UFP 和 DFP PD 控制器都成功协商了 PD 角色。 故障和成功的 CC 布线之间没有区别。 在 UFP 连接周期内、DFP 多路复用器保持不变也证实了这一点。 多路复用器控制信号保持恒定、PD 迹线显示在 UFP 连接周期内没有 DFP 上的通信。 鉴于 UFP 和 DFP 之间没有相互依赖关系、并且没有触发就 DFP 重新协商 PD 合同、这似乎是合理的。

    我要复制的设备是 USB 3.0闪存驱动器。 我还在通过 USB-SATA 桥接器连接的 SATA 驱动器中复制了这一内容。 我曾尝试在其他三个 DFP 上重现不良行为、这三个 DFP 似乎正常工作、从未强制失败。 在循环 UFP 连接时、这三个 DFP 会重新正确枚举其器件。 在某些情况下、可能需要一些时间(最长15秒)、但它们始终会重新枚举。

    e2e.ti.com/.../Wireshark-Traces.zip

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

    您好 Killy、Wireshark 跟踪不起作用、因为我们需要 TRance b/w 器件和集线器 DFP。 根据我的理解、当 UFP 断开连接时、DFP 转换到 DSPORT.断电状态(逻辑断电状态)。 我正在与集线器团队沟通、以了解他们对此问题的看法。 同时、如果您有分析仪(LeCroy、Ellisy)、请捕获 USB3跟踪 b/w DFP 和器件 您的配合。  

    谢谢

    普拉吉斯  

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

    您好、Prajith、

    我没有现成的 USB 3.0协议分析器、但我正在尝试跟踪其中一个。 如果我有更多信息、我将很快跟进。

    同时、我是否可以采取任何不涉及此跟踪的步骤? 可能根本没有协议分析器可供我使用。

    谢谢、

    将会

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

    你好、

    请告诉我您的集线器描述符中 bPwrOn2PwrGood 字段的状态。  

    UFP 断开后、您是否在 Tx/Rx 线路上看到任何电气活动?  

    谢谢

    普拉吉斯  

     

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

    您好、Prajith、

    我有您请求的 USB 布线。 他们被一名 LeCroy Voyager M3i 抓获。 您将在随附的文件中看到、当分析仪与故障 DFP 和其中一个正在工作的 DFP 串联时、我有跟踪。 我还以两种配置连接了它。 标记为"上游"的迹线是在主机和 UFP 之间连接分析仪的情况下进行的。 标记为"下行"的迹线在 DFP 和器件之间连接分析仪。 在所有迹线中,记录都是在 UFP 重新连接到主机之前开始的。 您将注意到、在 DFP 和器件之间连接分析仪时、没有故障 DFP 的跟踪。 这是因为在这种情况下没有读取通信。

    示波器也证实了这种交通不足的情况。 在发生故障的情况下循环 UFP 连接时、没有电气活动。

    集线器(2.0和3.1集线器)的 bPwrOn2PwrGood 描述符为"50 * 2毫秒"。

    哎呀、论坛似乎不允许我附加如此大的文件、压缩这些文件也没有太大的帮助。 以下是可下载的 Google 驱动器链接:

    drive.google.com/open

    谢谢、

    将会

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

    您好、Willy、

    请提供您的电子邮件地址以供进一步交流。  

    谢谢

    普拉吉斯  

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

    您好、Prajith、

    请通过 will.kay@ni.com 与我联系

    谢谢、

    将会

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

    是否有理由转移到 HSSC?

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

    您好 Brian、

    我不完全理解您的问题。 请提供更多背景信息。

    谢谢、

    将会

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

    你好、

    感谢您提供布线、这非常有用。  在故障跟踪中、故障端口(端口1)上的端口状态 卡在轮询中。 这与该端口上已进入合规模式的下游器件一致。  如果下游器件的 VBUS 处于开启状态并且看到上游 Rx.terms、但集线器没有轮询活动、则下游器件将进入合规模式。  当电缆1断开连接时、您能否检查集线器端口1的 Rx 引脚上是否存在 Rx.terms?  只需测量引脚到接地之间的电阻-如果为50欧姆、则这些项是导通的。  根据设计、集线器 Rx 项应关闭、如果这些项随后检查是否在 TUSB546上启用了这些项。

    另一个要尝试的方法是更改集线器上 FULLPWRMGMTz 引脚的设置、这将导致集线器在断电期间发送热复位、从而防止进入合规性模式。

    此致、

    JMMN

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

    JMMN、您好!

    感谢您的回答! 断开电缆1后、在集线器的端口1处测量时、Rx 端点关闭。 然而、当在 TUSB546多路复用器的下行 Rx 线路上测得时、它们打开。 这说明了下游器件进入合规模式的原因。

    我禁用了 FULLPWRMGMTz 设置、这解决了问题! 禁用此功能不应影响系统、因为来自集线器的 PWRCTL 信号实际上不控制 VBUS 切换。 而有问题的 DFP 依赖于 TPS65981内部的 VBUS 开关。 考虑到这一点、禁用完整的电源管理应该是我们的合适解决方案。

    为了进一步了解背景、发送这些热复位的目的是否专门用于应对这种电源控制由集线器本身以外的其他器件进行操作的情况? 或者是否有其他用途允许或禁止热复位?

    谢谢、

    将会

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

    你好、

    无论 FULLPWRMGMTz 设置如何、集线器都将驱动 PWRCTL 引脚。  所有 FULLPWRMGMTz 真正控制的是集线器报告的 USB 描述符中的加电时序值、以及 SS 端口逻辑关闭时发生的情况。  它将断电行为从 DSPORT、断电更改为 DSPORT。断电检测和 DSPORT。断电复位可防止 USB 3.0器件达到合规性或下降至 USB 2.0。  我直接从 USB 3.x 规范复制了状态机。  如果您的应用程序在其他端口上进行热复位时没有问题、这应该是一个很好的解决方案。

    您能否确认在将电缆1连接到仅支持 USB 2.0的主机时没有问题?  我只想确认 USB 3.0设备在需要时仍会下降到 USB 2.0。

    此致、

    JMMN

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

    你好、

    我将此标记为已解决、但如果您有任何其他问题、只需将其发布、TT 将重新打开。

    此致、

    JMMN

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

    JMMN、您好!

    您怀疑、当仅存在2.0上行连接时、3.0设备无法连接存在问题。 这仅适用于使用 TPS65981的 DFP、其他 DFP 允许3.0器件正确连接2.0。 此外、无论 FULLPWRMGMTz 的状态如何、情况似乎都是如此。 我以前没有注意到这一点、因为我的注意力是在 UFP 连接周期之后重新建立3.0连接。

    根据您之前的帖子、此端口在进入 DSPORT 状态时仅与2.0连接。关闭电源状态、器件也不处于合规性模式。 是这样吗? 我们可以做些什么来确保它进入这种状态?

    谢谢、

    将会

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

    你好、

    我要求熟悉 TUSB546的同事对此进行回顾。  从集线器的角度来看、我们再也不能做任何事情了、因为集线器会按预期关闭项目。  我们需要在 TUSB546上关闭终端、以使器件降至 USB 2.0并避免进入合规性状态。

    此致、

    JMMN

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

    将会

    TUSB546只能监视物理层条件、例如接收器端接、电气空闲、LFPS 和超高速信令速率、以确定 USB3.1接口的状态。 根据 USB 3.1接口的状态、当 USB 3.1被启用时(CTL0 = H 或者 CTLSEL0 = 1B1)、TUSB546-DCI 可处于四个主要运行模式中的一个:断开、U2/U3、U1、和 U0。

    TUSB546将保持断开模式、直到在 UFP 和 DFP 上检测到远端接收器端接。 一旦检测到远端终端、TUSB546立即退出断开模式并进入 U0。

    我建议在移除 UFP 端口的电缆1时、PD 控制器应移除 DFP 端口的 VBUS。 然后、器件也应移除其端接。  

    我还建议在 UFP 端口移除电缆1时、PD 控制器向 TUSB546的 CTL0和 CTL1写入0、以将 TUSB546置于断电状态。

    谢谢

    David  

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

    尊敬的 David:

    感谢您的回答。 您的建议似乎可以解决在 UFP 断开连接后 DFP 未重新连接的问题、但我不确定它可以解决 USB 3.1器件在只有2.0 UFP 可用时从不降级到 USB 2.0连接的问题。 即使在 UFP 断开连接期间移除了 VBUS 并且 TUSB546处于断电状态、当所有器件再次插入时、TUSB546仍会显示 RX 项并防止器件降级到 USB 2.0。

    似乎多路复用器仅专注于监控 USB 3.1 DFP 接口、并且完全不会根据集线器的上游连接而改变。 此外、PD 控制器也没有任何上游连接的概念。 根据我对 PD 控制器事件的调查、没有与上游连接相关的可用 GPIO 事件(这是有道理的、因为它甚至没有连接上游线路的接口、这是多路复用器的任务)。 因此、PD 控制器无法向多路复用器的 CTL0和 CTL1写入0、以便在没有上游3.1连接时将其置于断电状态。

    我在这里有什么误解吗? PD 控制器似乎无法清楚地看到没有上游3.1连接、从而将该信息传递到多路复用器。

    谢谢、

    将会

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

    你(们)好

    连接到 USB 2.0主机时、是否要检查集线器下行 RX、TUSB546 RX 下行 RX、集线器上行 RX 和 TUSB546上行 RX 上的 RX 端接?  

    您是否能够探测 TUSB546和器件之间的 SuperSpeed 信号以验证器件是否处于合规性模式?

    TUSB546只应在检测到远端终端时启用其 RX 端接。

    谢谢

    David

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

    尊敬的 David:

    以下是 UFP 连接到仅2.0主机时 RX 端接的状态。

    集线器下游:术语已禁用

    TUSB546下游:启用术语

    集线器上游:启用术语

    TUSB546上游:术语被禁用

    我在 TUSB546和器件之间进行了一次捕获。 我先开始录制、然后插入设备。 您可以看到、它似乎实际上没有进入合规性模式。 看起来它最终处于 POLLING.LFPS 状态。 此设置的图如下所示:

    主机(Type-A 3.1端口)<--- 电缆 x (Type-A 2.0插头转 Type-C 插头)--- >UFP --集线器-- DFP (TUSB546)<-- 电缆 y (Type-C 转 Type-A 适配器)--[[--电缆 z (Type-A 转 Type-B)---- >LeCroy USB Analyzer <-->器件(Type-A USB 3.1闪存驱动器)

    此设置中强制进行2.0连接的关键因素是电缆 x。它仅具有2.0引脚。

    USB 布线可在此处找到:

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

    将会

    很抱歉我上星期的回答很晚了。 下图是否正确地反映了我对端接的理解?

    谢谢

    David

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

    将:

      有更新吗?