cancel
Showing results for 
Search instead for 
Did you mean: 

slow data rate with usb cdc on nucleo-h533

MScha.8
Associate II

Hi All,

I'm building an instrument that needs to stream data to a PC at ~4Mbps. People were claiming nearly twice this with USB CDC so I chose the nucleo-h533 board and started with the Ux_Device_CDC_ACM example. I disconnected the USART code and added a loop that calls ux_device_class_cdc_acm_write and then I measure the rate at which I receive data on the PC. I can't get past ~1.8Mbps.

I have tried the following:

  • varying the size of the buffer passed in from 64 to 2048
  • enabling ZERO copy in the driver UX_DEVICE_ENDPOINT_BUFFER_OWNER=1 and defining UX_DEVICE_CLASS_CDC_ACM_ZERO_COPY
  • setting USBD_CDCACM_EPINCMD_FS_BINTERVAL to 1 instead of 5

In all cases, the baud rate remains about the same at 1.8Mbps. Is there anything I can do to improve this?

Best,

Marc

 

1 REPLY 1
TDK
Super User

The PC side needs to poll quickly enough. Most programs do not do this. What are you using on the PC side? Eliminate hubs from the chain. Ensure you send a new buffer immediately after the previous buffer is sent.

If you feel a post has answered your question, please click "Accept as Solution".