Ошибка перечисления USB-устройств: "дескриптор устройства считан/64, ошибка -32"



Я разрабатываю устройство ttyACM с микроконтроллером ST, и с тем же кодом мой хост иногда может успешно перечислить его (ниже), но иногда он просто сбрасывает сообщение ниже. Что означает ошибка -32?



[НЕ УДАЕТСЯ ПЕРЕЧИСЛИТЬ]



usb 1-2.1: new full speed USB device number 62 using ehci_hcd
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: new full speed USB device number 63 using ehci_hcd
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: new full speed USB device number 64 using ehci_hcd
usb 1-2.1: device not accepting address 64, error -32
usb 1-2.1: new full speed USB device number 65 using ehci_hcd
usb 1-2.1: device not accepting address 65, error -32
hub 1-2:1.0: unable to enumerate USB device on port 1


[УСПЕШНЫЙ РЕЗУЛЬТАТ]



usb 1-3.1: new full speed USB device number 45 using ehci_hcd
usb 1-3.1: New USB device found, idVendor=0483, idProduct=5740
usb 1-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3.1: Product: ChibiOS/RT Virtual COM Port
usb 1-3.1: Manufacturer: HelloWord
usb 1-3.1: SerialNumber: 262
usb 1-3.1: configuration #1 chosen from 1 choice
cdc_acm 1-3.1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-3.1:1.0: ttyACM0: USB ACM device


Большое спасибо.

833   2  

2 ответов:

AFAIK status -32 означает "сломанная труба" (EPIPE). Это означает, что есть проблемы с usb-связью (протоколом). Например, usb-устройство не отвечает правильно на usb-запрос и отправляет некоторые данные, которые не ожидаются хостом или отправляет недостаточно данных. Могут быть и другие причины.

Первое сообщение сообщает, что есть проблемы с запросами" get device descriptor "и" set address " от хоста. Это основные запросы, посылаемые хостом в самом начале процесс перечисления. Вы не можете пойти дальше, если эти запросы не могут успешно обслуживаться usb-устройством.

Эта ошибка может быть вызвана синхронизацией встроенного USB-устройства на неправильной частоте. Проверьте конфигурацию дерева часов. Частота должна быть 48 МГц. Если это немного не так, то возможно, что перечисление иногда будет успешным, а иногда и провальным. Если это далеко, перечисление всегда будет неудачным. Возможны различные ошибки, в том числе и перечисленные вами.

Comments

    Ничего не найдено.