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

 
 
 
Reply to this topicStart new topic
> MSP430F5529 usb не жужжит через hub, Устройство не определяется через HUB
loltrol
сообщение Jan 21 2015, 18:49
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 17-01-15
Пользователь №: 84 649



MSP430F5529 как HID устройство норм работает напрямую с компом, а при подключении ч-з внешний HUB не определяется. При мониторе запросов от хоста и вижу что он в принципе или не понимает ответов или не получает их - тупо шлет непрерывно GET_DESCRIPTOR_DEVICE и все. Аналогичный код жжужит на LPC2142 без проблем - разница одна: размер хв буффера EP0 у MSP - 8 байт, у LPC - 64. От хаба не зависит - при подключении к некоторым компам через хаб устройство работает, зависимости от операционки нет - пробовал на ХР и на 7 - никакой системы. Устройство питание от USB не использует, запросы точно понимает - выводил весь обмен по UART для мониторинга в реальном времени - картина всегда одна:
1) от хоста: запрос GET_DESCRIPTOR_DEVICE
2) от устрйства первые 8 байт DEVICE дескрипотра
3) от устрйства вторые 8 байт DEVICE дескрипотра
4) хост производит сброс шины и начинает с п. 1)
Точно не проблемы со связью - осциллограмы вполне нормальные да и хаб один и тот же - с одним компом работает, с другим - нет. На ноутах ситуёвина хуже - там и без внешнего хаба от ноута к ноуту то работает , то нет.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jan 22 2015, 02:51
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(loltrol @ Jan 21 2015, 22:49) *
1) от хоста: запрос GET_DESCRIPTOR_DEVICE
2) от устрйства первые 8 байт DEVICE дескрипотра
3) от устрйства вторые 8 байт DEVICE дескрипотра
4) хост производит сброс шины и начинает с п. 1)

Есть такая штука ZLP . Внимательно читать спецификацию USB !
Go to the top of the page
 
+Quote Post
loltrol
сообщение Jan 22 2015, 10:20
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 17-01-15
Пользователь №: 84 649



Цитата(mcheb @ Jan 22 2015, 02:51) *
Есть такая штука ZLP . Внимательно читать спецификацию USB !

А что-нибудь конструктивнее общеукрепляющих пожеланий нет?
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jan 22 2015, 13:02
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Вот один вариант. Контроллер работает как FullSpeed или LowSpeed устройство - для которых буфера 8 байт достаточно, а Хаб умеет работать только как HighSpeed - и ему подавай 64-байтные пакеты.
В общем пакеты не той длины. Или для Хаба не установлены драйвера (если это возможно - не знаю), или не та прошивка\настройка для поддержки Low и Full-Speed устройств.

Другой вариант - скорость. Если Хаб High-Speed, то минимальная скорость транзакций должна быть 25 мегабит, а у Full-Speed максимум 12 мегабит (Low-Speed ещё меньше). Возможно Хаб не может обнаружить данных на той скорости на которой работает контроллер.

Проверьте на другом Хабе своё устройство.

Go to the top of the page
 
+Quote Post
loltrol
сообщение Jan 23 2015, 08:13
Сообщение #5





Группа: Участник
Сообщений: 12
Регистрация: 17-01-15
Пользователь №: 84 649



Цитата(controller_m30 @ Jan 22 2015, 13:02) *
Вот один вариант. Контроллер работает как FullSpeed или LowSpeed устройство - для которых буфера 8 байт достаточно, а Хаб умеет работать только как HighSpeed - и ему подавай 64-байтные пакеты.
В общем пакеты не той длины. Или для Хаба не установлены драйвера (если это возможно - не знаю), или не та прошивка\настройка для поддержки Low и Full-Speed устройств.

Другой вариант - скорость. Если Хаб High-Speed, то минимальная скорость транзакций должна быть 25 мегабит, а у Full-Speed максимум 12 мегабит (Low-Speed ещё меньше). Возможно Хаб не может обнаружить данных на той скорости на которой работает контроллер.

Проверьте на другом Хабе своё устройство.

Беда в том, что проверяю с одним и тем же хабом - на некоторых компах работает, на некоторых - нет. Жесткой зависимости от операционки и древности компа нет, есть оч древние компы на ХР с которыми все ОК. История тащится уже года три, точно помню что с хабом в моем мониторе раньше не работало, не так давно сменил комп и с удивлением обнаружил, что связь с устройством через мониторный хаб появилась. Т.е. проблема в хосте, НО убивает именно последовательность:
хост - устройство: ОК!
хост-хаб-устройство: фак! но запросы от хоста устройство видит, добросовестно шлет ответы
Чувство такое, что все упирается в размер буфера EP0 - но почему.....
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jan 23 2015, 13:57
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



А какая настройка стандарта USB в BIOS тех компьютеров? Я встречал выбор из 1.0, 1.1 и 2.0. В современных наверное и 3.0 добавилась.
Может Хаб передаёт данные устройства в компьютер, но тот, находясь в FS или LS режиме (принудительно заданном в BIOS) "не дружит" с быстрым Хабом?
Go to the top of the page
 
+Quote Post
loltrol
сообщение Jan 24 2015, 09:33
Сообщение #7





Группа: Участник
Сообщений: 12
Регистрация: 17-01-15
Пользователь №: 84 649



Цитата(controller_m30 @ Jan 23 2015, 13:57) *
А какая настройка стандарта USB в BIOS тех компьютеров? Я встречал выбор из 1.0, 1.1 и 2.0. В современных наверное и 3.0 добавилась.
Может Хаб передаёт данные устройства в компьютер, но тот, находясь в FS или LS режиме (принудительно заданном в BIOS) "не дружит" с быстрым Хабом?

Случилось чудо)) И как всякое чудо оно не поддается объяснению, а требует только веры в него biggrin.gif
На том компе, где через хаб не работает, в BIOS выключил режим USB 2.0 и девайс определился. Т.е. скорее всего хаб работал на HS и почему-то трансляция скоростей не проходила, загнав хост в режим USB 1.1, хаб стал работать в режиме репитера - и тут всем полегчало.
Собственно, ничего яснее не стало )) Почему с одними хостами хабы могут работать нормально в режиме транслятора, а с другими нет. Что-то такого поведения с обычными мышами и клавами не наблюдал. Есть у меня устойство с тем же кодом, тот же HID но на ARM-7 (LPC2142, спецом поменял на нем код, сделав размер буфера контрольной точки 8 байт как на MSP) сравнивал поведение - разница одна: MSP почему-то после первого запроса GET_DESCRIPTOR_DEVICE и своих двух посылок по 8 байт делает паузу секунд на 5, после чего процесс обмена продолжается, на LPC все проходит без пауз. Вполне возможно, что для хаба в режиме трансляции это критично, точнее для хоста (для некоторых, зав от релиза, разные таймауты). Дело осталось за малым: понять в чем причина - устройство коммерческое и пользователям не на объясняешь, что им надо уронить некий "хост" в некий режим "FS" ))) Сделал скриншот обмена выведенного в терминал

Сообщение отредактировал loltrol - Jan 24 2015, 09:50
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jan 25 2015, 10:06
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



А обязательно использовать устройство через Хаб? Пусть пользователь подключает к своему Хабу устройства 2.0 какие ему вздумается, а данное устройство только напрямую к компьютеру. И всё.
А то комбинаций: разных Хабов от разных производителей, материнок с разными BIOS-ами, операционок с драйверами USB - множество, и все эти комбинации: тестировать, документировать и писать рекомендации как в каждом случае поступать - долго. Если устройство работает напрямую с компом всегда - вот пусть так и работает rolleyes.gif
Go to the top of the page
 
+Quote Post
loltrol
сообщение Jan 26 2015, 09:08
Сообщение #9





Группа: Участник
Сообщений: 12
Регистрация: 17-01-15
Пользователь №: 84 649



Проблема порешалась, но, как грится, осадочек остался. Хост после первых 8 байт дискриптора желал прервать передачу и сообщал об этом пакетом OUT, который не принимался устройством: вот тут вопрос кнешно к TI, почему они в регистре USBOEPCNFG_0 после каждой передачи данных устройством по пакетам IN выставляют бит NAK, который и не дает хосту выслать свой ASK устройству (( Теперь, по каждому прерыванию по пакетам IN тру бит NAK для пакетов OUT и инициализация проходит мгновенно, и, как следствие, стало работать и с хабами которые работают на HS. Мдя...
Go to the top of the page
 
+Quote Post

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

 


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


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