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.

[参考译文] TUSB8041:端口禁用/断电

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1439412/tusb8041-port-disable-power-down

器件型号:TUSB8041

工具与软件:

您好!

我尝试使用 libusb 库来控制 Linux 系统的集线器端口电源。 在我调用以下代码后、加电端口关闭:

#define USB_PORT_FEAT_POWER =(1 << 3)
#define USB_CTRL_GET_TIMEOUT = 500
libusb_control_transfer (m_deviceHandle
    libusb_request_type_class | libusb_recipient_other
     libusb_request_clear_feature
    USB_PORT_FEAT_POWER
    portIndexOnHub
    nullptr
    0
    USB_CTRL_GET_TIMEOUT);

但是、即使已拔下 USB 设备、我仍然可以通过使用 Linux 命令"lsusb"来观看它。

似乎集线器没有向主机报告端口正确的状态。

这是一种正常 现象吗? 或者是否需要执行额外的配置才能接收更改消息?

谢谢

Hanyu

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

    控制端口的简单方法是控制 内部寄存器、但必须使用 TUSB8041A 器件。

    此致

    Brian

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

     感谢您的 答复、 我们的产品已被选为 TUSB8041。 我只是想暂时关闭端口、而不是永久禁用它。 所以我选择了之前描述的方式、这样的话、我可以在需要时将它重新打开、而不会影响此集线器上的其它 USB 通信。  我测试了 libusb_control_transfer()方法,它只断开了电源,但没有让 Linux 知道 USB 已断开。 还有其他方法可以实现这一点吗? 或者我需要进行什么其他配置?

    此致

    Hanyu

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

    嗨、Hanyu:

      从端口功能中、没有使用 USB  命令禁用或启用下行端口的选项 。 因此、没有其他方法可以断开端口并让 Linux 知道。

    好的

    Brian

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

    我明白了、非常感谢。

    此致

    Hanyu