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

 
 
 
Reply to this topicStart new topic
> STM32F103 USB enumeration, после передачи DevDescriptor получаю reset
Sagittarius
сообщение Dec 16 2013, 13:34
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте.

Подскажите как правильно отвечать по запросу на дескриптор устройства? Дескриптор рабочий от своего давнего проекта на атмеле. Приходит запрос на дескриптор устройства, отдаю его (по 8 байт или весь сразу, без разницы), после чего получаю ресет. Цикл повторяется несколько раз после чего винде говорит о не распознанном устройстве. Пробовал посылать после дескриптора пакет нулевой длины и переключать/оставлять без изменений DTOG_RX и DTOG_TX - результата нет.

последовательность действий сейчас:
-Reset, все сбрасываю и обнуляю, EP0 cnfdk. rjynhjkmyjq b hfphtif. tq ghbtv
-прерывание прием пакета по EP0, запрос DevDesc, формирую свой буфер с заголовком и телом дескриптора. Запрошенную длину выдай на передачу. (Win XP запрашивала помнится сначала 8 байт, потом давала ресет и запрашивала весь DevDes. Win 7 запрашивает сразу 64 байта)
- прерывание данные отправлены. если есть что передавать - передаю. если нет то перевожу EP0 на прием.
- снова получаю Reset.

Что пропустил? Какой то битик переключить? надо ли как то обрабатывать SOF?

Спасибо.
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Dec 17 2013, 03:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



подправил пару своих косяков, теперь цикл стал длиннее:

запрос DevDesc, получение
reset
Set Address
запрос DevDesc
reset
...

что хосту может не нравится в устройстве? дескриптор пробовал другой, от работающего примера IAR-а.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 17 2013, 07:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



может быть у вас не та нога не туда подтянута? И устройство определилось не тем классом, ну типа хост думает что это хай спид, а у вас лов спид.
Судя по тому что раньше просили 8 байт, а теперь 64...
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Dec 17 2013, 07:18
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(Golikov A. @ Dec 17 2013, 11:10) *
может быть у вас не та нога не туда подтянута? И устройство определилось не тем классом, ну типа хост думает что это хай спид, а у вас лов спид.
Судя по тому что раньше просили 8 байт, а теперь 64...


с количеством байт странность есть. 64 байта приходит в поле wLength. но если я отправлю сразу весь дескриптор (18 байт) то получу reset и повторный запрос дескриптора. Если меняю обратно на 8 то дохожу до установки адреса (в DevDesc естественно тоже меняю размер контрол ендпоинт)

На этой же плате запускается и проходит энумерацию с установкой дров пример от IAR-а VirtualCOM, там как раз правил под свое железо так что в этом все должно быть правильно.
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 17 2013, 08:49
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Sagittarius @ Dec 17 2013, 11:18) *
с количеством байт странность есть. 64 байта приходит в поле wLength. но если я отправлю сразу весь дескриптор (18 байт) то получу reset и повторный запрос дескриптора. Если меняю обратно на 8 то дохожу до установки адреса (в DevDesc естественно тоже меняю размер контрол ендпоинт)

На этой же плате запускается и проходит энумерацию с установкой дров пример от IAR-а VirtualCOM, там как раз правил под свое железо так что в этом все должно быть правильно.

Если последняя посылка равна размеру контрольной точки, то затем нужно отправить еще одну пустую посылку. Как-то так.
Go to the top of the page
 
+Quote Post

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

 


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


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