Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройки USB хоста.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
AndreyS
Добрый день.

Возникла следующая проблемма.
Мама с ICH7 с дровами от Intel и ОС XP SP2.

При вычитки из устройства USB, подключенного к 2.0 хосту довольно часто ОС возвращает устройство недоступно. Устройство формирует пакеты в точку достаточно медленно (частота 3кГц), соответственно на каждый запрос сразу ответить просто нечем, пакет еще не сформирован. Т.е. если не обращать на ответ что устройство недоступно, а продолжить запросы, то отклик конечно прийдет и все нормально. Но мне не нравится такая ситуация в принципе, потому как если выдернуть шнур USB из устройства и обратиться в этот момент, то драйвер вернет тотже код и тоже сообщение, что устройство недостйпно (код 31). По этому очень тяжело дифференцировать эти два разных момента. При всем при это на других хостах 2.0 (проверял на NEC, VIA) тайм аут на формирование такого сообщения явно больше, потому как попросту не приходит это сообщение. А если в этот ендпоинт вообще ничего не положить устройством, то соответственно драйвер вообще повисал. А на этом хосте повиснуть не получится, но и работать с медленным формированием данных тоже нормально не получается. Вот и хотел бы увеличить хосту время ожидания отклика на запрос. Судя по всему это относится только для USB 2.0. Потому как если выключить 2.0 то на этом же хосте но в режиме Full таймауты явно больше и такого сообщения не приходит.

Вопрос. Как и где изменить величину таймаута на формирование устройством ответа на запрос хоста для USB 2.0 хоста, в данном случае ICH7???
AndreyS
Еще одно добавление.

На этой машине с ICH7 стоит двуядреный проц.

Похоже винда поток по вычитки из драйвера повесила на другое ядро (в момент прогона на машине ничего больше кроме нашего приложения не было запущено, машина с нулевой виндой) и поток стал чаще вызываться.

Но все равно работа с CY7C68013 выглядет не так как обычно (на других машинах).

Подключаю к PC, ничего не загружаю в проц (все по дефолту, для проверки), т.е. свою прошивку не заливаю. И обращаюсь из EZ-USB Control Panel в любой ендпоинт настроеный на IN (по дефолту это 6 и 8 и они в балке). Раньше при таком обращении на других машинах с USB 2.0 поток зависал до тех пор пока к нему не свалятся данные из этой точки или пока устройство не отвалится.

А на машине с двуголовым ядром и ICH7 такое обращение приводит к немедленному выходу из драйвера. Т.е. тут же возвращается ошибка Устройство отсутствует. Т.е. поток не подвисает, а тут же отваливается. Все конечно хорошо, но при этом если отсоединить USB устройство и обратиться к нему, то опять выйдет это же сообщение. Как тогда дифференцировать ситуации?????

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

Просто при всем при этом вставив плату на NEC чипе в эту маму (контроллер от NEC в режиме 2.0), такого отвала не происходит. Поток нормально затыкается и ждет прихода данных.

Дело явно в дровах в хосту.

При выходе на USB 1.1 этого хоста (сообщении устройством или вырубании 2.0 контроллера нафиг) величина тайм аута явно выше.

Подскажите, есть ли эти настройки в винде??
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.