2015-11-21 06:49 PM
I need to create UAC+CDC USB device. I have now two different projects with UAC and CDC implemented. How to organize them into composite device?
My solution now is to describe device as 0x12, /*bLength */ USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/ 0x00, /*bcdUSB */ 0x02, 0xEF, /*bDeviceClass*/ /* Misc class */ 0x02, /*bDeviceSubClass*/ /* Common class */ 0x01, /*bDeviceProtocol*/ /*IAD*/ USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/ LOBYTE(USBD_VID), /*idVendor*/ HIBYTE(USBD_VID), /*idVendor*/ LOBYTE(USBD_PID), /*idVendor*/ HIBYTE(USBD_PID), /*idVendor*/ 0x00, /*bcdDevice rel. 2.00*/ 0x02, USBD_IDX_MFC_STR, /*Index of manufacturer string*/ USBD_IDX_PRODUCT_STR, /*Index of product string*/ USBD_IDX_SERIAL_STR, /*Index of serial number string*/ USBD_CFG_MAX_NUM /*bNumConfigurations*/ and describe interfaces with two IADs? 0x08, // bLength: Interface Descriptor size 0x0B, // bDescriptorType: IAD 0x00, // bFirstInterface 0x02, // bInterfaceCount 0x02, // bFunctionClass: CDC 0x02, // bFunctionSubClass: ACM 0x01, // bFunctionProtocol 0x01, // iFunctionfor CDC and 0x08, // bLength: Interface Descriptor size 0x0B, // bDescriptorType: IAD 0x02, // bFirstInterface 0x02, // bInterfaceCount 0x01, // bFunctionClass: UAC 0x01, // bFunctionSubClass: Audio control interface 0x00, // bFunctionProtocol: Protocol undefined 0x02 // iFunctionfor UAC. Is it correct?