|
Эмуляция COM через USB |
|
|
|
 |
Ответов
|
Jan 23 2007, 20:46
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Чтоб не поднимать новую тему продолжу здесь ибо все равно она касается заголовка темы: решил я пойти дальше, а именно сделать два девайса в одном, то бишь два моста USB - RS232... Составил дескрипторы как положено - ОС определила составное устройство - далее потребовало дрова для устройств в него входящих, подсунул ей свой инф где прописанны оба интерфейса - взяла - установила дрова, но вот для второго устройста пожаловалось, что: "Запуск этого устройства невозможен. (Код 10)"  ... Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида: "Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START". Может быть кто знает, куда копать. Неохота самому писать собственный драйвер Спасибо
--------------------
|
|
|
|
|
Jan 23 2007, 21:41
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(prottoss @ Jan 23 2007, 22:46)  Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида: "Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START". Может быть кто знает, куда копать. Неохота самому писать собственный драйвер Спасибо Недавно где-то здесь же на форуме промелькнула информация о схожей проблеме и о том, сколько реально нужно endpoints для реализации двух CDC в одном устройстве. Поищите.
|
|
|
|
|
Jan 23 2007, 22:00
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(rezident @ Jan 24 2007, 01:41)  Цитата(prottoss @ Jan 23 2007, 22:46)  Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида: "Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START". Может быть кто знает, куда копать. Неохота самому писать собственный драйвер Спасибо Недавно где-то здесь же на форуме промелькнула информация о схожей проблеме и о том, сколько реально нужно endpoints для реализации двух CDC в одном устройстве. Поищите. Да этоя и создавал тему в форуме AVR про PDIUSBD12 + ATmega16... Дело то вот в чем: У PDIUSBD12 шесть ендпоинтов - одна пара используется под Control IN/OUT endpoint и остаются еще две пары ендпоинтов. НО, так как в USB CDC ACM классе необходимо иметь три точки, то, как бы не реально сделать два устройства на данной связке. С помощью гугль и такой то матери обнаружил, что все таки можно не портить одну пару ендпоинтов, так как одна точка как бы не действительная, то бишь она нужна только для стандарта, а реально не используется. Подправил я дескрипторы, сдела пару одну на реальные точки, а одну сделал с нереальным номером - РАБОТАЕТ!!!. Попробовал под 98, 2000, МЕ, XP - все замечательно. Добавляю второй интерфейс - все ставится, видится НО второй девайс ни в какую - код ошибки 10 и в 2000 и в XP. 98 и МЕ смысла мучить пока не вижу, так как предполагаю, что там вообще после таких выкрутастов BSOD будет  . Счас перепахиваю MSDN...безрезультатно...Но ИМХО, что то я не совсе мправильно либо с дескрипторами делаю, либо в INF что то не дописываю
--------------------
|
|
|
|
|
Jan 28 2007, 19:05
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-06
Пользователь №: 18 930

|
Может быть кто знает, куда копать. Неохота самому писать собственный драйвер :) Спасибо [/quote] Счас перепахиваю MSDN...безрезультатно...Но ИМХО, что то я не совсе мправильно либо с дескрипторами делаю, либо в INF что то не дописываю :( [/quote]
Если не секрет, можно на дескртиптор взглянуть и на inf за одно?
|
|
|
|
|
Jan 28 2007, 19:36
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Код /************************************************************************** Device Descriptor **************************************************************************/ PROGMEM USB_DEVICE_DESCRIPTOR USB_DeviceDescriptor = { sizeof(USB_DEVICE_DESCRIPTOR), /* length of descriptor in bytes */ USB_DEVICE_DESCRIPTOR_TYPE, /* descriptor type */ 0x0110, /* USB version supported */ 0,//USB_CFG_DEVICE_CLASS, /* device class */ 0,//USB_CFG_DEVICE_SUBCLASS, /* device subclass */ 0,//USB_CFG_DEVICE_PROTOCOL, /* device protocol */ D12_EP0_PACKET_SIZE, /* max packet size for control endpoint */ USB_CFG_VENDOR_ID, /* vendor ID (VID) */ USB_CFG_DEVICE_ID, /* device ID (PID) */ USB_CFG_DEVICE_VERSION, /* version */ USB_CFG_VENDOR_STRING_INDEX, /* manufacturer string index */ USB_CFG_DEVICE_STRING_INDEX, /* product string index */ USB_CFG_SERIAL_STRING_INDEX, /* serial number string index */ 1, /* number of configurations */ };
/************************************************************************** CDC Config Descriptors Packet for Communication Port Emulation **************************************************************************/ PROGMEM USB_CONFIG_DESCRIPTOR_PACKET USB_ConfigDescriptorPacket = {
/************************************************************************** Configuration Descriptor **************************************************************************/ { sizeof(USB_CONFIGURATION_DESCRIPTOR), /* length of descriptor in bytes */ USB_CONFIGURATION_DESCRIPTOR_TYPE, /* descriptor type */ sizeof(USB_CONFIG_DESCRIPTOR_PACKET), /* total packet length */ 2, /* number of interfaces in this configuration */ 1, /* index of this configuration */ 0, /* configuration name string index */ USB_CONFIG_SELF_POWERED, USB_CFG_MAX_BUS_POWER / 2, },
/************************************************************************** ACM Interface Descriptor 0 **************************************************************************/ { sizeof(USB_INTERFACE_DESCRIPTOR), /* length of descriptor in bytes */ USB_INTERFACE_DESCRIPTOR_TYPE, /* descriptor type */ 0, /* index of this interface */ 0, /* alternate setting for this interface */ 3, /* 1 - control? 2 - data */ USB_CFG_INTERFACE_CLASS, /* USB_DEVICE_CLASS_COMMUNICATIONS */ USB_CFG_INTERFACE_SUBCLASS, /* USB_CDC_SUBCLASS_ACM */ USB_CFG_INTERFACE_PROTOCOL, /* 0 */ 0, },
/************************************************************************** CDC Header Functional Descriptor **************************************************************************/ { sizeof(USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR), 0x24, /* descriptor type */ 0, /* header functional descriptor */ 0x0110, /* USB version */ },
/************************************************************************** CDC Abstract Control Management Functional Descriptor **************************************************************************/ { sizeof(USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_FUNCTIONAL_DESCRIPTOR), 0x24, /* descriptor type */ 2, /* abstract control management functional descriptor */ 0x02, /* SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE */ },
/************************************************************************** In Endpoint #3 Descriptor (Control in) not real!!! **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x83, /* In endpoint number 3 */ 0x03, /* attrib: Interrupt endpoint */ D12_EP1_PACKET_SIZE, /* maximum packet size */ 10, /* in ms */ },
/************************************************************************** Out Endpoint #1 Descriptor (Data out) **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x01, /* OUT endpoint number 1 */ 0x02, /* attrib: Bulk endpoint */ D12_EP1_PACKET_SIZE, /* maximum packet size */ 0, /* in ms */ },
/************************************************************************** In Endpoint #1 Descriptor (Data in) **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x81, /* IN endpoint number 1 */ 0x02, /* attrib: Bulk endpoint */ D12_EP1_PACKET_SIZE, /* maximum packet size */ 0, /* in ms */ },
/************************************************************************** ACM Interface Descriptor 1 **************************************************************************/ { sizeof(USB_INTERFACE_DESCRIPTOR), /* length of descriptor in bytes */ USB_INTERFACE_DESCRIPTOR_TYPE, /* descriptor type */ 1, /* index of this interface */ 0, /* alternate setting for this interface */ 3, /* 1 - control? 2 - data */ USB_CFG_INTERFACE_CLASS, /* USB_DEVICE_CLASS_COMMUNICATIONS */ USB_CFG_INTERFACE_SUBCLASS, /* USB_CDC_SUBCLASS_ACM */ USB_CFG_INTERFACE_PROTOCOL, /* 0 */ 0, },
/************************************************************************** CDC Header Functional Descriptor **************************************************************************/ { sizeof(USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR), 0x24, /* descriptor type */ 0, /* header functional descriptor */ 0x0110, /* USB version */ },
/************************************************************************** CDC Abstract Control Management Functional Descriptor **************************************************************************/ { sizeof(USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_FUNCTIONAL_DESCRIPTOR), 0x24, /* descriptor type */ 2, /* abstract control management functional descriptor */ 0x02, /* SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE */ },
/************************************************************************** In Endpoint #4 Descriptor (Control in) not real !!! **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x84, /* In endpoint number 4 */ 0x03, /* attrib: Interrupt endpoint */ D12_EP1_PACKET_SIZE, /* maximum packet size */ 10, /* in ms */ },
/************************************************************************** Out Endpoint #2 Descriptor (Data out) **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x02, /* OUT endpoint number 2 */ 0x02, /* attrib: Bulk endpoint */ D12_EP2_PACKET_SIZE, /* maximum packet size */ 0, /* in ms */ },
/************************************************************************** In Endpoint #2 Descriptor (Data in) **************************************************************************/ { sizeof(USB_ENDPOINT_DESCRIPTOR), USB_ENDPOINT_DESCRIPTOR_TYPE, 0x82, /* IN endpoint number 2 */ 0x02, /* attrib: Bulk endpoint */ D12_EP2_PACKET_SIZE, /* maximum packet size */ 0, /* in ms */ },
}; /* enf of config descriptor packet */
--------------------
|
|
|
|
Сообщений в этой теме
sergeeff Эмуляция COM через USB Jan 22 2006, 11:42 san822 Я сам пока не сталкивался с такой задачей, но знаю... Mar 1 2006, 10:52 BVU По большому счету это работа специально написанног... Mar 1 2006, 12:01 san822 Есть ещё вариант - мост USB - UART CP2101.
Судя ... Mar 2 2006, 08:50 rezident CP2101 не рекомендована производителем для новых р... Mar 2 2006, 10:41 sergeeff Насчет применения специализированных USB контролле... Mar 3 2006, 10:54 aaarrr Цитата(sergeeff @ Mar 3 2006, 13:54) Хоте... Mar 4 2006, 16:19 prottoss Цитата(aaarrr @ Mar 4 2006, 20:19) Я дела... Jan 9 2007, 09:20 Genadi Zawidowski Цитата(aaarrr @ Mar 4 2006, 19:19) Я дела... Feb 10 2008, 14:10  Genadi Zawidowski Отбой.... Нашел у китайских ембеддеров проект, дес... Feb 10 2008, 21:49 sergeeff Очень даже интересно. Можно на e-mail : nik_ef@mai... Mar 4 2006, 17:07 aaarrr Ушло почтой. Mar 4 2006, 17:52 alekseykoj Используешь так же как и на обычном порте. Только ... Mar 17 2006, 08:53 sergeeff На сайте Atmel есть новый проект - AT91 USB Framew... Jan 9 2007, 09:31 prottoss Все разобрался....
Для начала: я не правильн... Jan 10 2007, 10:06     mtx Цитата/*******************************************... Jan 28 2007, 20:31      prottoss Цитата(mtx @ Jan 29 2007, 00:31) Кажется,... Jan 28 2007, 20:45       mtx Возникла похожая задача, 2 СОМа. Удалось ли докопа... Jun 18 2007, 17:15        prottoss Цитата(mtx @ Jun 19 2007, 01:15) Возникла... Jun 18 2007, 17:34        arizona Цитата(mtx @ Jun 18 2007, 20:15) Возникла... Jan 16 2008, 11:03 prottoss забыл про инф
Код;*****************************... Jan 28 2007, 20:21 peotr Цитата(sergeeff @ Jan 22 2006, 14:42) Гос... Mar 4 2008, 13:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|