Технический форум по робототехнике.
dccharacter » 31 янв 2014, 19:10
Народ, а кто-нить знает - поддается ли вообще USB отладке? Качнул пример для F4-Discovery (hid из USB-библиотеки), адаптировал под дискавери, втыкаю в USB плату - говорит устройство не распознано. И вот я что-то совсем не пойму как это дело отлаживать. Ну нашел строку, после которой происходит "нераспознавание", но идей, что с ней делать - нет. В общем и целом есть какие-то методики для USB? Было бы еще круто, если бы они не требовали анализатора протокола за тыщщу баксов.
Angel71 » 31 янв 2014, 20:02
есть usb sniffer`ы (usblyzer и прочие. на некоторые "лекарства" есть), которые идут в том числе как дополнение к различному софту для создания драйверов. что-то конкретное нормальное посоветовать не могу - ну так поигрался с парочкой софтин и забросил. реально пока просто не нужно было в юсб глубоко копаться. как снифать и прочее в сети не так уж и плохо освещено, даже есть что-то на русском (
http://symmetrica.net/usb/usb1.htm).
linvinus » 01 фев 2014, 17:35
wireshark смотрели? умеет usb в том числе.
общий подход следующий
1) при подклюдчении что нибудь да должно определяться (хотя бы ошибки) если нет значит не дёргается линия D+ при подключении
2) если что то появилось но не распозналось, значит некорректно заполнены структуры в описании end point'ов
3) ну а далее остаются только ошибки в протоколе, или некорректная работа с буферами и dma.
dccharacter » 01 фев 2014, 17:57
Вчера нашел USBlyzer, увидел, что что-то дергается, судя по всему хост запрашивает описание возможностей, а устройство не отвечает. При этом все остальные устройства сначала делают всякие хэндшейки, типа Start Device, а это сразу Query Capabilities. У некоторыъ запросов статус Success - т.е. непонятно, отвечает вообще устройство или нет. Хотя в некоторых ответах флаг Removable стоит в 1... Может ли это сам драйвер определить или это устройство сообщает - неясно.
linvinus » 01 фев 2014, 23:21
сорри, я только под линуксом работаю,как в винде происходит непонятно.
dccharacter » 02 фев 2014, 00:22
Да все то же самое должно быть, какая разница-то...
linvinus » 02 фев 2014, 00:29
я имел ввиду что мне понятно куда нужно смотреть в линуксе, но непонятно как в винде.
в линуксе опрос usb устройства логируется в dmesg и там понятно определилось оно или нет.
т.е. даже если не определилось, в логе всё равно ошибки будут, если контроллер хоть как то пытается отвечать на usb.
dccharacter » 02 фев 2014, 05:22
Ну в общем я вполовину наудачу проблему решил - завел пример от СТМ
Но поменять его под свои нужды не могу - улетает в CtrlError - закрывает USB pipe и все. И уже сниффер не помогает - я вижу, что дескрипторы читаются вроде ОК, а дальше... dmesg кстати может быть и помог бы. Ткну-ка я его в роспберри пай на посмотреть...
ЗНАНИЙ НЕ ХВАТАЕТ ЖУТКО БРАТЦЫ
что ж я таким дебилом-то был в свои 16 лет?!?!?!? Учиться надо было!
Angel71 » 02 фев 2014, 09:01
linvinus » 02 фев 2014, 13:23
dccharacter писал(а):ЗНАНИЙ НЕ ХВАТАЕТ ЖУТКО БРАТЦЫ
что ж я таким дебилом-то был в свои 16 лет?!?!?!? Учиться надо было!
Советую почитать что то типа этого
http://rutracker.org/forum/viewtopic.php?t=57295чтобы понимать как вообще устроена шина USB
dccharacter » 02 фев 2014, 20:38
Пробился через Control Error, подчищаю потихоньку проблемы.
Добавлено спустя 1 минуту 27 секунд:linvinus писал(а):dccharacter писал(а):ЗНАНИЙ НЕ ХВАТАЕТ ЖУТКО БРАТЦЫ
что ж я таким дебилом-то был в свои 16 лет?!?!?!? Учиться надо было!
Советую почитать что то типа этого
http://rutracker.org/forum/viewtopic.php?t=57295чтобы понимать как вообще устроена шина USB
Я раза два читал уже USB in a nutshell.... Я не про это. Я про то, что когда не знаешь области какой-то, то сделать что-то можно. Но займет это кучу времени и знания, полученные в процессе, будут лоскутами....