Перейти к содержанию
    

Linux: время конфигурации usb-устройства

соединение: хост - хаб1 - хаб2 - 4устройства

 

хаб1 - встроенный хаб хоста

хаб2 - FSM-хаб на 4 порта TI TUSB2046B, без внешней настройки

устройство - плата с Atmel SAM7X на борту, HID-dev. Int-IN+Int-OUT EPs

 

Устройства имеют собственный источник питания, что указано в дескрипторе конфигурации в полях "Attributes"(0x40) и "MaxPower"(0x00). Каждое устройство инициализируется по 5сек, что достаточно некомфортно. Создается впечатление, что имеет место быть искуственный таймаут.

 

Вопрос: в чем может быть проблема столь долгой конфигурации и где можно подправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: в чем может быть проблема столь долгой конфигурации и где можно подправить?

А за процессом энумерации со стороны устройства проследить не пробовали? Должно стать понятно, куда копать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А за процессом энумерации со стороны устройства проследить не пробовали? Должно стать понятно, куда копать.

Пробовал, сократил время с 15 сек. до 5 сек. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели ничего подозрительного не осталось? Проблема только под Linux'ом наблюдается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели ничего подозрительного не осталось? Проблема только под Linux'ом наблюдается?

Продолжаю "ковырятся", но что самое интересное, под виндой не было ни 5, ни 15ти сек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для usb-storage есть искусственный timeout, сделан для комфортного старта usb-винтов, какой класс устройства ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для usb-storage есть искусственный timeout, сделан для комфортного старта usb-винтов, какой класс устройства ?

в том то и дело, что HID-устройство(я в описании указал: HID-dev. Int-IN+Int-OUT EPs)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sorry, как всегда знака 40 не заметил ;) проверить просто - можно воткнуть любую usb мышку - у меня на ноуте старт меньше секунды. если глянуть в linux/drivers/hid/usbhid/hid-core.c то видно что retry_delay используется при логических ошибках в обмене. по идее можно какую-то отладку вставить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Долго не занимался данным вопросом, сейчас нашлось время повозиться еще:

1) hid-core не используется, написан свой драйвер

2) Проблема не при подключении драйвера, а при опросе устройства по Ep0, конкретно при получении StringDescriptor и такое впечатление, что при кратности длины дескриптора 8ми байтам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Долго не занимался данным вопросом, сейчас нашлось время повозиться еще:

1) hid-core не используется, написан свой драйвер

2) Проблема не при подключении драйвера, а при опросе устройства по Ep0, конкретно при получении StringDescriptor и такое впечатление, что при кратности длины дескриптора 8ми байтам.

Если у SAM7X USB похож на SAM7S, то возможно Вы не пишете пакет нулевой длины в конце если размер дескриптора кратен размеру конечной точки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у SAM7X USB похож на SAM7S, то возможно Вы не пишете пакет нулевой длины в конце если размер дескриптора кратен размеру конечной точки.

"Шъерт побъери!" (с)

Меня подобная мысль посещала, а вы ее только подтвердили. Я наивно полагал, что контроллер это делает автоматически по "completed". Видать где-то пропустил.

 

Спасибо за подсказку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...