RA6M5 USBHS HMSC max read bandwidth?

Hi all,

I'm running some experiments with the EK-RA6M5, attempting to read data from a USB 3.0 flash drive as quickly as possible. Here is my test setup:

  • USBX / FileX HMSC stack, but using ux_host_class_storage_media_read directly rather than FileX to bypass any filesystem overhead
  • Using the USBHS port and DMA
  • Reading 131,072 contiguous bytes starting at sector 0, which consistently takes ~19ms
  • This works out to a bandwidth of around 55 Mbit/s, which is far below the 480 Mbit/s that USBHS is capable of
  • Debug vs Release makes no difference, nor does Continuous Transfer Mode

I know that there's some protocol overhead and I'd never get a full 480, but 55 is less than 1/8th of the possible bandwidth!

I've read that FIFO size can play a role here, but can't figure out a way to configure it. It appears to be fixed at 512 in DMA mode, and 2048 in Continuous Transfer Mode (which takes the same or longer amount of time).

Is there some other bottleneck in the RA series that prevents full use of the HS bandwidth? Is there something dumb I'm overlooking? Unfortunately I don't have a USB sniffer so I can't provide any traces there, but any suggestions welcome. Thank you.

Parents Reply Children
No Data