AnsweredAssumed Answered

Info USB CDC Device Descriptor

Question asked by ragazzi.valerio on Oct 6, 2015
Latest reply on Oct 13, 2015 by Amel N
Hi, I'm using STM32f407 for a USB project. I use CDC class for implementing USB device on my OLIMEX EVAL board.

This is my Device Descriptor:

__ALIGN_BEGIN uint8_t USBD_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
0x12,                       /* bLength = 18 campi del Device Descriptor*/
USB_DESC_TYPE_DEVICE,       /* bDescriptorType = 1*/
0x00,
0x02,                         /* bcdUSB = 2.00 */
0x02,                        /* bDeviceClass: CDC */
0x00,                       /* bDeviceSubClass */
0x00,                       /* bDeviceProtocol */
USB_MAX_EP0_SIZE,           /* bMaxPacketSize0 = 64 */
LOBYTE(USBD_VID),           /* idVendor low byte = 0x83; essendo VID = 0x0483 (STMicroelectronics) */
HIBYTE(USBD_VID),            /* idVendor high byte = 0x400 */
LOBYTE(USBD_PID),           /* idProduct low byte  */
HIBYTE(USBD_PID),           /* idProduct high byte */
0x00,
0x02,                          /* bcdDevice = rel. 2.00 */
USBD_IDX_MFC_STR,           /* Index of manufacturer string = 1 */
USBD_IDX_PRODUCT_STR,       /* Index of product string  = 2*/
USBD_IDX_SERIAL_STR,        /* Index of serial number string = 3*/
USBD_MAX_NUM_CONFIGURATION  /* bNumConfigurations = 1 */
}; /* USB_DeviceDescriptor */


My questions are:
1 - Text in red, which parameters are?
2 - The position of the parameters are important?
3 - Why idVendor and idProduct are divided into low and high byte? They must not be passed full?

thank you all!



Outcomes