diff --git a/stm/lib/usbd_desc.c b/stm/lib/usbd_desc.c index d4ada2de2..1edbdbfac 100644 --- a/stm/lib/usbd_desc.c +++ b/stm/lib/usbd_desc.c @@ -52,13 +52,10 @@ /** @defgroup USBD_DESC_Private_Defines * @{ */ +/* #define USBD_VID 0x0483 // TODO set VID - #define USBD_PID 0x5720 // TODO set PID -/** @defgroup USB_String_Descriptors - * @{ - */ #define USBD_LANGID_STRING 0x409 #define USBD_MANUFACTURER_STRING "STMicroelectronics" // TODO set #define USBD_PRODUCT_HS_STRING "VCP/MSC in HS Mode" // TODO set @@ -69,10 +66,27 @@ #define USBD_INTERFACE_HS_STRING "VCP/MSC Interface" // TODO set #define USBD_CONFIGURATION_FS_STRING "VCP/MSC Config" // TODO set #define USBD_INTERFACE_FS_STRING "VCP/MSC Interface" // TODO set +*/ /** * @} */ +// seems we need to use this VID/PID to get it to work on windows + +#define USBD_VID 0x0483 +#define USBD_PID 0x5740 + +#define USBD_LANGID_STRING 0x409 +#define USBD_MANUFACTURER_STRING "STMicroelectronics" +#define USBD_PRODUCT_HS_STRING "STM32 Virtual ComPort in HS mode" +#define USBD_SERIALNUMBER_HS_STRING "00000000050B" +#define USBD_PRODUCT_FS_STRING "STM32 Virtual ComPort in FS Mode" +#define USBD_SERIALNUMBER_FS_STRING "00000000050C" +#define USBD_CONFIGURATION_HS_STRING "VCP Config" +#define USBD_INTERFACE_HS_STRING "VCP Interface" +#define USBD_CONFIGURATION_FS_STRING "VCP Config" +#define USBD_INTERFACE_FS_STRING "VCP Interface" + /** @defgroup USBD_DESC_Private_Macros * @{ diff --git a/stm/lib/usbd_pyb_core.c b/stm/lib/usbd_pyb_core.c index e2e8c65ca..9c0f1caa0 100644 --- a/stm/lib/usbd_pyb_core.c +++ b/stm/lib/usbd_pyb_core.c @@ -71,7 +71,7 @@ #include "usbd_msc_bot.h" #include "usbd_msc_mem.h" -#define USB_PYB_CONFIG_DESC_SIZ 98 +#define USB_PYB_CONFIG_DESC_SIZ (98) #define MSC_EPIN_SIZE MSC_MAX_PACKET #define MSC_EPOUT_SIZE MSC_MAX_PACKET @@ -150,7 +150,7 @@ __ALIGN_BEGIN static uint8_t usbd_pyb_CfgDesc[USB_PYB_CONFIG_DESC_SIZ] __ALIGN_E HIBYTE(USB_PYB_CONFIG_DESC_SIZ), 0x03, // bNumInterfaces: 3 interfaces 0x01, // bConfigurationValue: Configuration value - 0x00, // iConfiguration: Index of string descriptor describing the configuration + 0x04, // iConfiguration: Index of string descriptor describing the configuration 0x80, // bmAttributes: bus powered; 0xc0 for self powered 0xfa, // bMaxPower: in units of 2mA @@ -163,7 +163,7 @@ __ALIGN_BEGIN static uint8_t usbd_pyb_CfgDesc[USB_PYB_CONFIG_DESC_SIZ] __ALIGN_E 0x00, // bFunctionClass: ? 0x00, // bFunctionSubClass: ? 0x00, // bFunctionProtocol: ? - 0x00, // iFunction: index of string for this function + 0x04, // iFunction: index of string for this function //-------------------------------------------------------------------------- // Interface Descriptor @@ -252,9 +252,9 @@ __ALIGN_BEGIN static uint8_t usbd_pyb_CfgDesc[USB_PYB_CONFIG_DESC_SIZ] __ALIGN_E USB_INTERFACE_DESCRIPTOR_TYPE, // bDescriptorType: interface descriptor 0x02, // bInterfaceNumber: Number of Interface 0x00, // bAlternateSetting: Alternate setting - 0x02, // bNumEndpoints*/ + 0x02, // bNumEndpoints 0x08, // bInterfaceClass: MSC Class - 0x06, // bInterfaceSubClass : SCSI transparent*/ + 0x06, // bInterfaceSubClass : SCSI transparent 0x50, // nInterfaceProtocol 0x00, // iInterface: @@ -397,6 +397,7 @@ static uint8_t usbd_pyb_Setup(void *pdev, USB_SETUP_REQ *req) { // Standard Device Request --------------------------------------------- case (USB_REQ_TYPE_STANDARD | USB_REQ_RECIPIENT_DEVICE): + /* switch (req->bRequest) { case USB_REQ_GET_DESCRIPTOR: { @@ -409,6 +410,7 @@ static uint8_t usbd_pyb_Setup(void *pdev, USB_SETUP_REQ *req) { return USBD_CtlSendData(pdev, pbuf, len); } } + */ break; // Standard Interface Request ------------------------------------------