Hi all,
I’m having an odd situation with RL-USB with the following characteristics:
STM23F407ZG (board with proven hardware) Communication Device (CDC) – Virtual COM Port Full Speed
CDC Config (in usb_config_FS.c): #define USBD_CDC_ENABLE 1 #define USBD_CDC_EP_INTIN 1 #define USBD_CDC_WMAXPACKETSIZE 64 #define USBD_CDC_BINTERVAL 2 #define USBD_CDC_HS_ENABLE 0 #define USBD_CDC_HS_WMAXPACKETSIZE 16 #define USBD_CDC_HS_BINTERVAL 2 #define USBD_CDC_EP_BULKIN 2 #define USBD_CDC_EP_BULKOUT 2 #define USBD_CDC_WMAXPACKETSIZE1 64 #define USBD_CDC_HS_ENABLE1 0 #define USBD_CDC_HS_WMAXPACKETSIZE1 64 #define USBD_CDC_HS_BINTERVAL1 0 #define USBD_CDC_CIF_STRDESC L"USB_CDC" #define USBD_CDC_DIF_STRDESC L"USB_CDC1" #define USBD_CDC_BUFSIZE 64 #define USBD_CDC_OUTBUFSIZE 128
VCP is configured and recognized in Windows, communication work fine, but after sending a few thousand bytes (the amount varies) RL-USB just stops sending data over the USB, MCU keeps working normally and bytes are still receive over the USB interface.
After some debugging I found that “usbd_cdc_ser_availchar” is still being called, but usbd_cdc_ser_read is no longer called.
In order to isolate the problem, I made a project with only RL-USB and a very simple loop for sending and receiving bytes, and the situations remains the same, after a few thousand bytes sent RL-USB just stops calling usbd_cdc_ser_read … any ideas of what I'm doing wrong ?
Best regards, Paulo
Hi Bryce,
I did not find a workaround this problem in the RL-USB, the good news is that Keil did address the issue in the last version of MDK (Version 4.70) and the RL-USB CDC module has been rewritten and it now works great ! This new version finaly solved this and some other issues. I now have a composite device (Mass Storage and VCP) working just fine, I highly recommend you to upgrade :)
Follow this link to the MDK Version 4.70 release notes: http://www.keil.com/update/whatsnew.asp?p=RVMDK&v=4.70
Regards, Paulo
Thanks for the reply! I'll look in to doing the upgrade and see if that fixes it.