Обнаруживаются ли встроенные хабы как USB корневые хабы или внешние устройства?

Вопрос или проблема

Я подключил встроенный хаб к своему микропроцессору. Встроенный хаб — это USB2514B, а микропроцессор — STM32MP1.

Я могу указать соединение с встроенным хабом, используя OHCI (Open Host Controller Interface), но тогда я получу сообщения об ошибках.

usb 1-1.4: device descriptor read/64, error -62
usb 1-1-port4: не удается перечислить USB-устройство

Это означает, что OHCI (USB 1.1) не может взаимодействовать с USB2514B, который требует спецификацию USB 2.0.

Но если я подключу свой встроенный хаб, используя EHCI (Enhanced Host Controller Interface), который является USB 2.0.

Тогда в Linux я не получу никаких ошибок относительно описания устройства. Мой lsusb выглядит так:

>> lsusb
Шина 001 Устройство 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>;
    /* встроенный HUB */
    hub@1 {
        compatible = "usb424,2514";
        reg = <1>;
        vdd-supply = <&v3v3>;
    };
    /* USER CODE END usbh_ehci */
};

&usbh_ohci{
    status = "disabled";
};

Полезные источники:

Ответ или решение

Когда вы подключаете встроенный USB-хаб, такой как USB2514B, к вашему микропроцессору STM32MP1, важно понимать, как операционная система интерпретирует эту конфигурацию. Ваша проблема заключается в том, как выявить, регистрируется ли хаб USB2514B как корневой USB-хаб или как внешнее устройство. Давайте рассмотрим ключевые аспекты.

Проблема с обнаружением

Вы упомянули, что при подключении к хабу через Open Host Controller Interface (OHCI) возникают ошибки. Это связано с тем, что OHCI поддерживает спецификацию USB 1.1, которая не совместима с вашим USB2514B, так как он требует USB 2.0. Эти ошибки указывают на то, что ваша система не может корректно инициализировать USB-хаб.

Когда вы переключаетесь на Enhanced Host Controller Interface (EHCI), который поддерживает USB 2.0, система начинает обнаруживать хаб без ошибок, и lsusb отображает только Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub. Но интересно, что это означает в контексте вашего устройства.

Интерпретация вывода lsusb

Вывод команды lsusb фактически показывает корневой USB-хаб, который управляется вашим микропроцессором. Код 1d6b:0002 присваивается "Linux Foundation" и означает, что это не идентификатор вашего USB2514B. Вместо этого это указывает на внутренний USB-хаб, встроенный в STM32MP1. Поскольку EHCI работает на уровне контроллера, вывод lsusb не может продемонстрировать наличие подключенного внешнего хаба, если он не был детектирован или зарегистрирован правильно в системе.

Путь к подтверждению подключения к USB2514B

Чтобы проверить успешное подключение к USB2514B, следуйте этим шагам:

  1. Проверьте последовательность питания: Убедитесь, что все необходимые линии питания, такие как VDD, подключены к USB2514B и обеспечивают корректную работу.

  2. Рассмотрите вывод dmesg: Проверьте вывод команды dmesg, чтобы увидеть, нет ли сообщений об обнаружении USB-устройств,/ошибках инициализации или других проблем, которые могут указать на отсутствие USB2514B.

  3. Обновите конфигурацию устройства: Убедитесь, что выставлены все необходимые параметры в конфигурации Device Tree. Ваша конфигурация уже содержит крепление для вашего устройства, что является позитивным знаком.

  4. Подключите внешние USB-устройства: Если возможно, подключите устройство (например, флеш-накопитель) к USB2514B и проверьте, будет ли оно отображаться в lsusb. Если устройство определяется, значит, связь с хабом установлена.

  5. Используйте анализаторы USB: Если доступно, используйте USB-анализатор, чтобы отслеживать трафик на шине USB и подтвердить, что данные проходят через ваш USB2514B.

Заключение

В итоге, вывод команды lsusb с 1d6b:0002 не указывает на USB2514B, а лишь показывает встроенный хаб вашего микропроцессора. Чтобы убедиться в правильной работе USB2514B, потребуется дополнительная диагностика через dmesg, анализ подключения внешних устройств или использование специализированного оборудования. Это поможет вам убедиться, что ваша система полностью функционирует и корректно взаимодействует с USB-хабом.

Оцените материал
Добавить комментарий

Капча загружается...