RT1020 VCOM USB throughput at 26Mbytes/s

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT1020 VCOM USB throughput at 26Mbytes/s

1,844 Views
mark_ofarrell
Contributor I

Speed Tests USB NXP RT1020 using CDC_VCOM_LITE and custom Windows program LogDue (30/11/2019)

I have modified the NXP example (usb_device_cdc_vcom_lite) for the RT1020 to test the USB throughput available using a virtual serial port (cdc_vcom). No driver is required under Windows 10 as the device enumerates as a serial port. The RT1020 transmits varying buffer sizes, using a bulk endpoint send routine. On the Windows side The program LogDue (excuse the name) opens the serial port and reads the transmitted data, displaying the throughput in bytes/s. You need to compile the program with the correct com port for your device in the main routine. Adjust to suit.
I varied the DATA_BUFF_SIZE in Virtual_Com.h for the RT1020 and recorded the results below. I didn't realise that getting such througput for an embedded microprocessor USB could be that easy. The only modifications I made to the code are in the included: Virtual_Com.c and Virtual_Com.h. I hope you find this useful.

DATA_BUFF_SIZE is in Virtual_Com.h of the RT1020 program

1. DATA_BUFF_SIZE = 256, 5MBytes/s
2. DATA_BUFF_SIZE = 512, 10MBytes/s
3. DATA_BUFF_SIZE = 1024,16MBytes/s
4. DATA_BUFF_SIZE = 2048,26MBytes/s

in Christ
Mark O'Farrell

Labels (1)
0 Kudos
Reply
4 Replies

1,630 Views
mark_ofarrell
Contributor I

With the LPC4370(LPC Link2 board) and the example: usbd_rom_libusb, and using ZaDig.exe to install the libusbk driver I was able to get 21MBytes/sec throughput. It involved downloading the Libusbk source code and compiling the application: kbench, in Visual studio. It was very straight forward, the only issue was installing the correct libusbk driver.

0 Kudos
Reply

1,630 Views
mark_ofarrell
Contributor I

Thanks for your interest. I hope it is useful.

I am currently experimenting with the LPC4337 and LPC4370, because I need the fast I/O of these devices. With the RT1020/1010 the response between an interrupt on a GPIO pin to programatically changing an output on a GPIO pin is around 80ns. Max toggling frequency by programatically  changing the GPIO state is around 10MHz. A bit slow for what I need, they also don't have the GPDMA of the LPC43xx parts.

0 Kudos
Reply

1,630 Views
Sanjiv
Contributor II

thank you for sharing! impressive results. could the same work on the i.mxrt1010 EVK? about to power up for the first time today. many thanks again.

0 Kudos
Reply

1,630 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello, Mark O'Farrell

Thanks for sharing this! 

Best regards, 

Victor 

0 Kudos
Reply