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.

[参考译文] TUSB4041I:挂起下行端口

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1021517/tusb4041i-suspending-a-downstream-port

器件型号:TUSB4041I

您好!

我的应用程序有一个端口始终连接到另一个板载器件、因此该端口的可移除位将被清除。

除非连接的 USB 端口处于挂起状态、否则无法将该设备置于休眠状态。  该器件确实具有 VBUS 检测输入、但我不想移除该信号上的5V 电压以将器件置于睡眠状态、因为此时端口将进入分离状态、并在重新应用5V 电压时导致重新枚举。

问: 是否可以通过操作使用的位使该端口挂起和恢复?  我甚至需要这么做,或者如果没有向端口发送下游数据,端口是否会自动进入挂起状态?

谢谢。

-Ken

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

    您好 Ken、

    可移除位不会影响端口上的挂起状态。  仅当主机挂起/恢复整个 USB 或主机向该特定端口发送暂停/恢复命令时、集线器才会暂停/恢复端口。  行为由主机而不是集线器本身决定。

    此致、

    JMMN

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

    JMMN、

    清除使用的位会产生什么影响?

    此外、我认为您告诉我的是、主机可以将暂停/恢复命令定向到集线器上的特定端口。  是这样吗?

    -Ken

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

    您好 Ken、

    设置集线器中已使用或可移动的位只会更改集线器在其器件描述符中报告其配置的方式。  因此、如果只设置了3个已使用的位、则它将报告为3端口集线器、而不是4端口。   它并不会真正改变集线器的操作。  USB 集线器本质上是受 USB 主机命令控制的从设备、它们不能独立挂起端口。  根据 USB 规范、USB 主机可以发送命令来独立暂停/恢复单个端口、但 大多数通用主机/集线器驱动程序不支持此功能、并暂停和恢复整个总线。

    此致、

    JMMN

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

    JMMN、

    感谢您的回答。

    那么、还有一个问题:为了在集线器器件外部实现 USB 挂起和恢复状态、我能否简单地在其中一个下行端口的 D+/D-信号上切换1.5K 上拉/下拉电阻器以进行挂起、 并在我希望端口恢复时将其切换回?

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

    您好 Ken、

    您无法强制在器件上启用 DP 上拉以进入挂起模式。  HS 器件将仅降至 FS 模式、并在总线上无活动3ms (无 SOFS 或来自主机的其他流量)后启用其 DP 上拉电阻器以进入挂起模式。  如果您尝试在线路上交换1.5K 上拉电阻、HS 器件仍将启用其 HS 端接(45欧姆)、您只需创建偏移/损坏、这可能会导致主机的总线复位。  USB 是主机控制的总线、因此没有强制从集线器或设备挂起的干净方法。   

    此致、

    JMMN