Hi,
I've implemented code for composite USB device with CDC and Mass Storage interfaces (on ARM AT91SAM7SE512). After driver instalation on windows XP I can see both devices on device manager. I succesfully connect the serial port but nothing happens when I type commands on the terminal. When i change my code to support only Mass Storage interface OR only serial/CDC it works fine, so I'm not sure whether the problem is in my code or the driver installation...
below is the descriptor configuration code:
const U8 USB_ConfigDescriptor[] = { /* Configuration 1 */ USB_CONFIGUARTION_DESC_SIZE, USB_CONFIGURATION_DESCRIPTOR_TYPE WBVAL( 1*USB_CONFIGUARTION_DESC_SIZE + 1*USB_INTERFACE_DESC_SIZE + 0x0013 + 1*USB_ENDPOINT_DESC_SIZE + 1*USB_INTERFACE_DESC_SIZE + 2*USB_ENDPOINT_DESC_SIZE + 1*USB_INTERFACE_DESC_SIZE + 2*USB_ENDPOINT_DESC_SIZE ), 0x03, 0x01, 0x00, USB_CONFIG_BUS_POWERED /*|*/ /*USB_CONFIG_REMOTE_WAKEUP*/, USB_CONFIG_POWER_MA(100), /* Interface 0, Alternate Setting 0 USB_INTERFACE_DESC_SIZE, USB_INTERFACE_DESCRIPTOR_TYPE, USB_CDC_CIF_NUM, 0x00, 0x01, CDC_COMMUNICATION_INTERFACE_CLASS CDC_ABSTRACT_CONTROL_MODEL, 0x00, 0x7A/*0x70*/, /*Header Functional Descriptor*/ 0x05, CDC_CS_INTERFACE, CDC_HEADER, WBVAL(0x0200/*CDC_V1_10*/), /* 1. /*Call Management Functional Descri 0x05, CDC_CS_INTERFACE, CDC_CALL_MANAGEMENT, 0x01, USB_CDC_DIF_NUM/*0x01*/, /*Abstract Control Management Funct 0x04, CDC_CS_INTERFACE, CDC_ABSTRACT_CONTROL_MANAGEMENT, 0x02, /*Union Functional Descriptor*/ 0x05, CDC_CS_INTERFACE, CDC_UNION, USB_CDC_CIF_NUM, USB_CDC_DIF_NUM, /*Endpoint 1 Descriptor*/ USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_ENDPOINT_IN(3), USB_ENDPOINT_TYPE_INTERRUPT, WBVAL(0x0010), 0x02, /* 2ms */ /* Interface 1, Alternate Setting 0 USB_INTERFACE_DESC_SIZE, USB_INTERFACE_DESCRIPTOR_TYPE, USB_CDC_DIF_NUM, 0x00, 0x02, CDC_DATA_INTERFACE_CLASS, 0x00, 0x00, 0x7A/*0x70*/, /* Endpoint, EP5 Bulk Out */ USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_ENDPOINT_OUT(2), USB_ENDPOINT_TYPE_BULK, WBVAL(USB_CDC_BUFSIZE), 0x00, /* Endpoint, EP4 Bulk In */ USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_ENDPOINT_IN(1), USB_ENDPOINT_TYPE_BULK, WBVAL(USB_CDC_BUFSIZE), 0x00, /* Interface 2, Alternate Setting 0 USB_INTERFACE_DESC_SIZE, USB_INTERFACE_DESCRIPTOR_TYPE, USB_MSC_IF_NUM, 0x00, 0x02, USB_DEVICE_CLASS_STORAGE, MSC_SUBCLASS_SCSI, MSC_PROTOCOL_BULK_ONLY, 0x6C/*0x62*/, /* Bulk In Endpoint */ USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_ENDPOINT_IN(6), USB_ENDPOINT_TYPE_BULK, WBVAL(0x0040), 0, /* Bulk Out Endpoint */ USB_ENDPOINT_DESC_SIZE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_ENDPOINT_OUT(7), USB_ENDPOINT_TYPE_BULK, WBVAL(0x0040), 0, /* Terminator */ 0 };
The inf file device is:
[DeviceList] %DESCRIPTION%=SAM7XUSB, USB\VID_03EB&PID_6124&MI_00
Should I use a common inf file for both devices?
Any help is appreciated...
Thanks