реклама на сайте
подробности

 
 
> Linux: время конфигурации usb-устройства, задается в исходниках?
Dimentius
сообщение Jun 30 2008, 10:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



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

хаб1 - встроенный хаб хоста
хаб2 - FSM-хаб на 4 порта TI TUSB2046B, без внешней настройки
устройство - плата с Atmel SAM7X на борту, HID-dev. Int-IN+Int-OUT EPs

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

Вопрос: в чем может быть проблема столь долгой конфигурации и где можно подправить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
aaarrr
сообщение Jun 30 2008, 10:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Dimentius @ Jun 30 2008, 14:24) *
Вопрос: в чем может быть проблема столь долгой конфигурации и где можно подправить?

А за процессом энумерации со стороны устройства проследить не пробовали? Должно стать понятно, куда копать.
Go to the top of the page
 
+Quote Post
Dimentius
сообщение Jun 30 2008, 10:51
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



Цитата(aaarrr @ Jun 30 2008, 17:29) *
А за процессом энумерации со стороны устройства проследить не пробовали? Должно стать понятно, куда копать.

Пробовал, сократил время с 15 сек. до 5 сек. wink.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 30 2008, 10:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Неужели ничего подозрительного не осталось? Проблема только под Linux'ом наблюдается?
Go to the top of the page
 
+Quote Post
Dimentius
сообщение Jun 30 2008, 11:10
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



Цитата(aaarrr @ Jun 30 2008, 17:54) *
Неужели ничего подозрительного не осталось? Проблема только под Linux'ом наблюдается?

Продолжаю "ковырятся", но что самое интересное, под виндой не было ни 5, ни 15ти сек.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jul 1 2008, 05:10
Сообщение #6


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



для usb-storage есть искусственный timeout, сделан для комфортного старта usb-винтов, какой класс устройства ?
Go to the top of the page
 
+Quote Post
Dimentius
сообщение Jul 1 2008, 07:15
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



Цитата(Harbour @ Jul 1 2008, 12:10) *
для usb-storage есть искусственный timeout, сделан для комфортного старта usb-винтов, какой класс устройства ?

в том то и дело, что HID-устройство(я в описании указал: HID-dev. Int-IN+Int-OUT EPs)
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jul 2 2008, 09:32
Сообщение #8


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



sorry, как всегда знака 40 не заметил wink.gif проверить просто - можно воткнуть любую usb мышку - у меня на ноуте старт меньше секунды. если глянуть в linux/drivers/hid/usbhid/hid-core.c то видно что retry_delay используется при логических ошибках в обмене. по идее можно какую-то отладку вставить
Go to the top of the page
 
+Quote Post
Dimentius
сообщение Jul 8 2008, 04:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



Долго не занимался данным вопросом, сейчас нашлось время повозиться еще:
1) hid-core не используется, написан свой драйвер
2) Проблема не при подключении драйвера, а при опросе устройства по Ep0, конкретно при получении StringDescriptor и такое впечатление, что при кратности длины дескриптора 8ми байтам.
Go to the top of the page
 
+Quote Post
amw
сообщение Jul 8 2008, 10:39
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Dimentius @ Jul 8 2008, 07:58) *
Долго не занимался данным вопросом, сейчас нашлось время повозиться еще:
1) hid-core не используется, написан свой драйвер
2) Проблема не при подключении драйвера, а при опросе устройства по Ep0, конкретно при получении StringDescriptor и такое впечатление, что при кратности длины дескриптора 8ми байтам.

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


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Dimentius
сообщение Jul 8 2008, 11:19
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 27-09-05
Пользователь №: 8 980



Цитата(amw @ Jul 8 2008, 17:39) *
Если у SAM7X USB похож на SAM7S, то возможно Вы не пишете пакет нулевой длины в конце если размер дескриптора кратен размеру конечной точки.

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

Спасибо за подсказку.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 09:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01431 секунд с 7
ELECTRONIX ©2004-2016