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.

[参考译文] TUSB8020B:热插拔问题

Guru**** 2539450 points
Other Parts Discussed in Thread: TUSB8020B, TPS3823

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/735478/tusb8020b-hot-plug-issue

器件型号:TUSB8020B
主题中讨论的其他器件: TPS3823

客户在嵌入式设计中使用 TUSB8020B USB 3.0 2端口集线器(不是独立集线器)、无法使用热插拔。 我并不完全相信这是集线器问题、可能是主机 CPU 上的 USB 驱动器问题。

如果连接到集线器下游端口的 USB 设备已插入并通电、则在主机引导期间加载 USB 驱动程序时、主机会正确枚举这些设备。

但是,如果删除了设备,则注册没有变化。

如果设备在加载 USB 驱动程序后插入、则永远不会注册。

它看起来几乎像是集线器处于"永久连接"模式。 我无法进行检查、因为集线器上的 SMB 接口未连接到主机、因此无法读取内部寄存器。

集线器直接从主机电源系统接收3.3V 电源、并由此产生1.1V 电源。

集线器接收来自主机复位系统的复位输入。 根据数据表满足所有必需的时序。 (系统 POR 大约为160ms - TPS3823)

VBUS 输入也来自3.3V 电源、因此使用不同的分压器在该引脚(56K 和10K)上产生500mV 的电压。

目前、我仅在 USB 2.0模式下操作集线器(由于上行端的 SSUSB 接口设计错误)

我想知道的是、除了对相关寄存器进行编程之外、还有什么方法可以将集线器置于永久连接模式?

有什么建议吗?  如有必要、我们可以发送原理图片段。

谢谢、
标记

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

    这对于端口来说是非常不寻常的行为。 主机上运行的是什么操作系统? 听起来好像没有看到断开/重新连接行为。 请发送原理图片段。

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

    您回答正确、这是与 Linux 相关的驱动程序问题。 似乎新的内核版本在热插拔行为中引入了错误。 我们在本周早些时候跟踪了补丁、这似乎解决了热插拔问题、现在连接/断开可以正常工作。

    感谢您的支持。

    此致、
    标记
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有指向此修补程序的链接? 我遇到相同的问题、并将尝试将其重新移植到我的内核。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当遇到热插拔错误时、客户使用的是 Linux 内核4.18.0。

    他们找到了一个 MediaTek origin 的修补程序,该修补程序本来可以解决这个问题,但几乎完全同时,其中一个家伙将内核升级到4.18.11,并且该修补程序已经包含在内。

    我们不知道该错误是在哪个内核版本上引入的、但已在4.18.11中修复。

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

    我使用的是一个需要修补程序的旧得多的内核。 这是否与修复问题的修补程序类似?

    github.com/.../90f26cc6bb90b35040f4da0347f480ea9df6e2fc