We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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