|
Составное USB, нехватка конечных точек |
|
|
|
 |
Ответов
|
Jul 19 2011, 16:36
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(pil @ Jul 19 2011, 15:50)  ... Virt COM 3: 1 in interrupt + 1 in bulk + 1 out bulk ... Попробуйте для Virt COM 3 использовать 1 in bulk + 1 out bulk. Переходник USB2.0 - RS232 (COM) VE024 имеет именно такую конфигурацию эндпоинтов. И работает.
|
|
|
|
|
Jul 19 2011, 16:44
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
Цитата(Konst_777 @ Jul 19 2011, 20:36)  Попробуйте для Virt COM 3 использовать 1 in bulk + 1 out bulk. Переходник USB2.0 - RS232 (COM) VE024 имеет именно такую конфигурацию эндпоинтов. И работает. а можно дескриптор? Цитата HID устройства могут не иметь EP кроме 0-й. Я так делал, всё отлично работает. Но я использовал только запросы GET/SET Feature. Но интеррупт канал, по идее, должен работать через EP0. Для этого всё предусмотрено. Там просто будет запрос от интерфейса с соотв-м номером. Просто нужно на него ответить и всё. Проверить легко - не описывать HID-овские EP и посмотреть запросы сниффером. Пока запасной вариант, попробую.
Сообщение отредактировал pil - Jul 19 2011, 16:46
|
|
|
|
|
Jul 19 2011, 17:34
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(pil @ Jul 19 2011, 19:44)  а можно дескриптор? Вот что выдает UVCView.x86.exeКод ---===>Device Information<===--- English product name: "usb serial conveter" ConnectionStatus: Current Config Value: 0x01 -> Device Bus Speed: Full Device Address: 0x01 Open Pipes: 2 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Device Descriptor<=== bLength: 0x12 bDescriptorType: 0x01 bcdUSB: 0x0200 bDeviceClass: 0x00 -> This is an Interface Class Defined Device bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 = (8) Bytes idVendor: 0x0403 = Future Technology Devices International Limited idProduct: 0x6001 bcdDevice: 0x0400 iManufacturer: 0x01 English (United States) "ftdi" iProduct: 0x02 English (United States) "usb serial conveter" iSerialNumber: 0x03 English (United States) "ftQPMA5P" bNumConfigurations: 0x01 ===>Configuration Descriptor<=== bLength: 0x09 bDescriptorType: 0x02 wTotalLength: 0x0020 -> Validated bNumInterfaces: 0x01 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0xA0 -> Bus Powered MaxPower: 0x16 = 44 mA ===>Interface Descriptor<=== bLength: 0x09 bDescriptorType: 0x04 bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x02 bInterfaceClass: 0xFF -> Vendor Specific Device bInterfaceSubClass: 0xFF *!*CAUTION: This appears to be an invalid bInterfaceSubClass bInterfaceProtocol: 0xFF *!*WARNING: must be set to PC_PROTOCOL_UNDEFINED 0 for this class iInterface: 0x02 English (United States) "usb serial conveter" *!*ERROR: 0xFF is the prerelease USB Video Class ID ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00 ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x02 -> Direction: OUT - EndpointID: 2 bmAttributes: 0x02 -> Bulk Transfer Type wMaxPacketSize: 0x0040 = 0x40 bytes bInterval: 0x00
|
|
|
|
|
Jul 19 2011, 18:31
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Konst_777 @ Jul 19 2011, 21:34)  idVendor: 0x0403 = Future Technology Devices International Limited idProduct: 0x6001 Так это значит драйвер по VID/PID установится. Там что угодно может быть. Кстати, а ведь насколько я помню, класс CDC должен быть в дескрипторе устройства прописан. Из дескриптора интерфейса драйвер не установится. Т.е. составного устройства, включающего в себя CDC, быть не может. Т.е. может, конечно, но только со своим драйвером, а значит покупка VID. Цитата(sergeeff @ Jul 19 2011, 22:24)  Можно хоть все интерфейсы на одни и те же конечные точки посадить. Но... Если захотите одновременно пользоваться этими интерфейсами (читай, разными драйверами), будут проблемы. Как и в устройстве. Вы не сможете различить кто вам информацию посылал. То, что идёт через EP0 можно отличить. Там в запросе N интерфейса присутствует.
|
|
|
|
Сообщений в этой теме
pil Составное USB, нехватка конечных точек Jul 19 2011, 12:50     pil Цитата(sergeeff @ Jul 19 2011, 22:52) Все... Jul 19 2011, 19:00      sergeeff Цитата(pil @ Jul 19 2011, 22:00) vid pid ... Jul 19 2011, 20:10       galjoen Цитата(sergeeff @ Jul 20 2011, 00:10) При... Jul 20 2011, 06:06     galjoen Цитата(sergeeff @ Jul 19 2011, 22:52) Все... Jul 19 2011, 19:10 galjoen Цитата(Konst_777 @ Jul 19 2011, 20:36) По... Jul 19 2011, 16:48 pil Цитата(Konst_777 @ Jul 19 2011, 20:36) По... Jul 22 2011, 01:09  sergeeff Цитата(pil @ Jul 22 2011, 04:09) Вообщем ... Jul 22 2011, 08:25 galjoen Цитата(pil @ Jul 19 2011, 16:50) Вычитал,... Jul 19 2011, 16:41 sergeeff Можно хоть все интерфейсы на одни и те же конечные... Jul 19 2011, 18:24
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|