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

 
 
> USB enumeration
andrewlekar
сообщение Dec 4 2013, 10:20
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Есть девайс на LPC1788 с USB стеком от NXP (NxpUsbLib).
Примерно каждая 8-я энумерация под Windows 7 не проходит. Если потом сделать принудительно энумерацию, то нераспознанное устройство определяется нормально. Под линуксом таких проблем не замечал, впрочем детально не исследовал.
Это нормальное поведение для USB? На ваших устройствах статистика лучше? Если это поведение ненормально, то что можно попробовать поправить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
_4afc_
сообщение Dec 4 2013, 10:33
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(andrewlekar @ Dec 4 2013, 13:20) *
Есть девайс на LPC1788 с USB стеком от NXP (NxpUsbLib).
Примерно каждая 8-я энумерация под Windows 7 не проходит. Если потом сделать принудительно энумерацию, то нераспознанное устройство определяется нормально. Под линуксом таких проблем не замечал, впрочем детально не исследовал.
Это нормальное поведение для USB? На ваших устройствах статистика лучше? Если это поведение ненормально, то что можно попробовать поправить?


А на LPC1788 встроенный резистор в 1.5кОм или внешний? Может не успеваете за 100мС после его подключения ответить винде?
Работал только с Атмелом.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Dec 4 2013, 11:13
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Внешний с функцией SoftConnect. Но он вроде как не при чём, потому что можно просто вытыкать разъём и втыкать - всё равно происходят сбои.
Щас ставлю эксперимент ещё один - вроде получше стало работать. Если заработает без проблем, то отпишусь как чинил.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 4 2013, 13:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(andrewlekar @ Dec 4 2013, 14:13) *
Но он вроде как не при чём, потому что можно просто вытыкать разъём и втыкать - всё равно происходят сбои.

Если делать это слишком часто, энумерация может и не пройти, т.к. она начинается через ~100мС после обнаружения подключения хостом (это сделано с целью подавить дребезг).
А вообще, скачайте BusHound, шестой, и посмотрите, что и как сбоит ...
Go to the top of the page
 
+Quote Post
Myron
сообщение Dec 4 2013, 16:37
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(kovigor @ Dec 4 2013, 08:25) *
А вообще, скачайте BusHound, шестой, и посмотрите, что и как сбоит ...


Прсветите, что есть BusHound, шестой.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 4 2013, 17:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Myron @ Dec 4 2013, 19:37) *
Прсветите, что есть BusHound, шестой.

А вот:
http://rutracker.org/forum/viewtopic.php?t=3905066

Рекомендую версию не ниже шестой ...
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Dec 5 2013, 06:33
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



У меня USBTrace используется.

Баг я нашёл. В моей версии NxpUsbLib было закомментировано ожидание готовности передатчика:

Код
while ( !Endpoint_IsINReady() )
    {
        Delay_MS(2);
    }

в функции Endpoint_Write_Stream_LE. Закомментировано было с пометкой, типа здесь виснет. После раскомментирования действительно висло. Выяснилось, что у флага isInReady не было атрибута volatile. После исправления всё заработало как надо.
Вроде как в свежей версии NxpUsbLib с этим всё в порядке.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:40
Рейтинг@Mail.ru


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