我已将板载集线器连接到我的微处理器。板载集线器是USB2514B,微处理器是 STM32MP1。
我可以使用 OHCI(开放主机控制器接口)指定与板载集线器的连接,但随后我会收到错误消息。
usb 1-1.4: device descriptor read/64, error -62
usb 1-1-port4: unable to enumerate USB device
这意味着 OHCI(USB 1.1)无法与需要 USB 2.0 规范的 USB2514B 通信。
但是如果我使用 EHCI(增强型主机控制器接口)(即 USB 2.0)连接我的板载集线器。
然后在 Linux 中,我不会收到任何有关设备描述的错误。我的lsusb
看起来像这样:
>> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
问题:
这是否意味着这1d6b:0002
是USB2514B集线器,或者是否意味着它是处理器的内部USB?
我正在寻找一种方法来确认我是否已连接到我的 USB2514B 或者是否lsusb
仅显示来自处理器的内部 USB 连接。
注意:此板载 USB 集线器不需要任何外部通信接口,如 SMDbus、I2C 或其他。仅需普通 USB 连接 + Linux 设备树配置。
&usbh_ehci{
status = "okay";
/* USER CODE BEGIN usbh_ehci */
phys = <&usbphyc_port1>;
#address-cells = <1>;
#size-cells = <0>;
/* onboard HUB */
hub@1 {
compatible = "usb424,2514";
reg = <1>;
vdd-supply = <&v3v3>;
};
/* USER CODE END usbh_ehci */
};
&usbh_ohci{
status = "disabled";
};
有用来源:
集线器就是集线器,并没有提供任何有关其是内部的还是外部的信息。
主机控制器就是主机控制器,不是集线器。不要混淆这两个东西!
嗯,您有一个主控制器,一个根集线器和一个额外的集线器。由于如果不将集线器连接到根集线器,您就不可能看到它,而且您只能看到一个条目,所以您已经知道答案了。您的集线器 IC 工作不正常或未正确连接到根集线器。
好吧,在这里您看到连接到根集线器的第四个端口(即第一个 USB 总线,设备 1,因此是
1-1
其中的,并且.4
是第四个端口)的东西没有电气反应。这不是 USB 1.1 与 USB 2.0 的问题;发现仍然有效。因此,您没有正确连接集线器 IC,或者它没有通电,或者它没有正确启动,可能是由于配置错误或其他原因。我们无法告诉您 - 这是一个与您的操作系统完全不同的层面的问题。这是一个硬件问题。