USB transfer speed

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hello,
I have a question regarding the capabilities of the XMC4500 and the announced XMC4700. I am using the XMC-HiLight-Board for evaluation.

My goal is to transfer measurement data from the XMC to the PC via USB. I want to make use of the USB 2.0 capability of the XMC as I want to transfer a high amount of data (>1 MBytes/s).

I have already established a connection to the MCU via a virtual COM port with the provided app (USBVC001), but I am unsure if this satisfies my requirements. Is there a cap in the transfer speed when I’m accessing the XMC via a virtual COM port? Has anybody been doing some benchmarks?

If I want to connect to the XMC as a native USB device, can I configure the XMC as a HID Device?

Thanks in advance,
Uli
0 Likes
4 Replies
Not applicable
Hi Uli,

The current USB driver provided in DAVE had a maximum transfer of 16 Bytes per transfer.
Depending on how frequent/how fast the USB Host request the data from the device, it will determine how much data can be transfer from the device to host.
An update has been implemented to allow up to 64Bytes of data per transfer and this will be provided in the next update for USB Driver App.
As for the speed capability, the USB transfer rate in XMC4500 is running at Full Speed mode which can support up to max. 12Mbps. (bit per second)

To allow XMC4500 to run as HID Device, you need to have HID Device Class Stack.
Currently, this is not provided yet but it will be part of the DAVE Apps that is going to release in the future.
0 Likes
Not applicable
Hi,

thank you for your fast response Jackson! In order to read 16/64 Bytes per transfer in the lowest possible cycle time, do I have to access the device as a native USB device or can I use the abstraction layer (virtual COM port) that is provided by the app "USBVC"?

Where can I find Windows drivers for the other USB apps? (e.g. USBCORE, controller in the USB device mode)

Thanks for your consideration,
Uli
0 Likes
Not applicable
Hi Uli,

Unless you are writing the Host driver by yourself, using the USBVC app is the most straightforward method.
This is because the USBVC app consist of USBCDC which is the CDC device class stack.
In Windows system, it is already consist of CDC Host driver.
Therefore, when you use USBVC app, we just need to inform the Windows that the device connected is a CDC device.
This is what the use of the *INF file.
Hence, the communication can be established with the same USB Class.
0 Likes
Not applicable
Hi Jackson,

yes, connecting to the XMC as a virtual serial device is straightforward.

Do you provide windows drivers for the other XMC apps as well (e.g. USBCORE)? Or do I have to stick to USBVC if I don’t want to write windows drivers on my own?

And what about the announced HID device stack: Will there be windows drivers?
0 Likes