Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.09.2010, 08:06
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Помогите описать USB дескриптор композитного уствройства
Всем привет!
Хочу создать железяку, которая бы определялась как Audio Microphone и Generic HID
Описал дескриптор, втыкаю в Win7 и оно определяется как композитное. Потом определяет микрофон и HID и не ставит их. Если описать например только HID - то поставит. Или только Аудио, то тоже поставит. А вместе никак. Помогите дескриптором
|
|
|
Сказали "Спасибо" Spider55
|
|
|
07.09.2010, 12:59
|
|
Частый гость
Регистрация: 06.09.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
Убедитесь, что в inf файлах соответствующих драйверов кроме PID и VID прописан еще MI. Может, не ставится из-за этого.
И еще: если у вас 2 устройства, то интерфейсов тоже должно быть 2. Одно устройство в композите не может описываться более чем одним интерфейсом, иначе определяться будет, а драйвериться нет.
|
|
|
Сказали "Спасибо" julia_soft
|
|
|
07.09.2010, 14:20
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
Не, драйвер оно определяет и ставит его, но потом с 10ой ошибкой отваливает устройство.
Сейчас добился того, что если внутри дескриптора сначала описать HID интерфейс, а потом Audio, то HID и установится, а Audio - нет. Но если наоборот, сначала Audio, а потом HID, то установится Audio и будет работать, а HID - нет. Другими словами работает первый интерфейс в дескрипторе. EP конечно же у каждого свои.
Не понял про интерфейсы. Конечно же их 2, даже более. У HID свой интерфейс, а у Audio свой, да ещё и не один.
|
|
|
Сказали "Спасибо" Spider55
|
|
|
07.09.2010, 14:57
|
|
Частый гость
Регистрация: 06.09.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
Про интерфейсы: может быть, мы друг друга не поняли.
Я меня была ситуация, когда я пыталась загнать в композит mass storage и virtual port. Стандартные дескрипторы этих устройств: MS имеет один интерфейс, а VP - два, один с эндпойнтом interrupt, другой с двуми эндпойнтами bulk.
Так вот при их сложении нормально работает только конфигурация, с которой все три эндпойнта VP свалены в один интерфейс, т.е. в результирующей конфигурации не 3, а 2 интерфейса
|
|
|
Сказали "Спасибо" julia_soft
|
|
|
07.09.2010, 15:10
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
Я тоже на это натыкался. у LUFA есть пример CDC + Mouse там CDC обёрнут предварительно USB Descriptor Interface Association, я так понял это обёртка для нескольких интерфейсов в один как раз для этого случая. Я так и делал. Я оборачивал Audio MIC в USB IAD, но всё равно что-то не получалось
|
|
|
Сказали "Спасибо" Spider55
|
|
|
08.09.2010, 13:25
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
к примеру вот попробовал описать вот такой дескриптор:
Код:
|
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
USB_Descriptor_Interface_Association_t CDC_IAD;
USB_Descriptor_Interface_t CDC_CCI_Interface;
CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_IntHeader;
CDC_FUNCTIONAL_DESCRIPTOR(1) CDC_Functional_AbstractControlManagement;
CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_Union;
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint;
USB_Descriptor_Interface_t CDC_DCI_Interface;
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
USB_Descriptor_Interface_t HID1_GenericInterface;
USB_HID_Descriptor_t HID1_GenericHID;
USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
USB_Descriptor_Interface_t HID2_KeyboardInterface;
USB_HID_Descriptor_t HID2_KeyboardHID;
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t; |
В результате определяется 3 устройтсва. CDC и generic HID устанавливаются и работают, а Keyboard плачется что 10ая ошибка. Что не так?
|
|
|
Сказали "Спасибо" Spider55
|
|
|
08.09.2010, 18:43
|
|
Частый гость
Регистрация: 06.09.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
Если устанавливается и не работает, то скорее всего проблема в коде обработки, а не в дескрипторе. Может быть, class-specific request теряется где в общей куче на EP0?
|
|
|
Сказали "Спасибо" julia_soft
|
|
|
09.09.2010, 08:53
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
так и было... не правильно отдавал HID репорты.
Сейчас всё наладил и описал, только вот CDC приходится в ручную указывать драйвер. Как бы описать INF чтобы конечный пользователь просто указывал путь к нему? Есть какой-нить мануал как писать inf?
|
|
|
Сказали "Спасибо" Spider55
|
|
|
09.09.2010, 09:56
|
|
Частый гость
Регистрация: 06.09.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
вручную - это как?
чем отличается от указания конечным пользователем?
|
|
|
Сказали "Спасибо" julia_soft
|
|
|
09.09.2010, 10:00
|
|
Частый гость
Регистрация: 08.10.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Помогите описать USB дескриптор композитного уствройства
ну в плане что Win не находит Driver само и в результате устройство не установлено, но если в диспетчере устройств нажать обновить драйвер и выбрать в ручную, и из всего списка выбрать именно Communication port и там Serial port, согласиться с тем что драйвер возможно не для этой железки. То тогда она его поставит и устройство работает.
Я как-то натыкался на пример, где был inf файл с явно описанным правилом, что для этого VID/PID/MI брать тот то драйвер.
|
|
|
Сказали "Спасибо" Spider55
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:15.
|
|