Hi,
IMXRT1050-EVKB
SDK 2.13.0
MCUXpresso IDE v11.7.0
I want to use RT1050 USB high-speed, and take evkbimxrt1050_dev_composite_cdc_vcom_cdc_vcom_freertos for speed test.
I modify
composite.c, void USB_DeviceApplicationInit(void),
g_composite.speed = USB_SPEED_FULL; to g_composite.speed = USB_SPEED_HIGH;
and virtual_com.h,
#define LINE_CODING_DTERATE (115200) to #define LINE_CODING_DTERATE (921600)
I build a windows AP to write RT1050 EVK USB interface 1, endpoint 0x03 (bulk out), but I only got about 900KB/Sec, it seems too slow.
Do I modify the example to USB high-speed correctly?
Solved! Go to Solution.
Hi @felix1 ,
You can try measure the time for communication by USB analyzer.
In it, in a micro frame, 9 * 512 Byte is transferred.
so, the bandwidth is 9 * 512 Byte/(125us) = 36.8M Byte/S = 294.9Mbps
You can use the code to send a 16KB buffer for test, and watch the result.
Typically, need to press a key from key board after measurement environment is set up, and then begin the transfer and measurement.
BTW, EHCI is high speed and KHCI is full or low speed.
Regards,
Jing
Hi @felix1 ,
The demo use high speed mode by default. Here is some suggestion.
No need at MCU side, baudrate is set by PC side tool.
Be noted, for USB CDC, the phisical cannel is USB port, not real UART port, the baudrate in fact does not represent the real bandwidth for communication. Even with baudrate set as 115200, I can acually get 294Mbps bandwidth like I state before.
Unless your application case is a USB-UART bridge, you need to pass the data you get from USB port to a real UART port, you in fact do not need to care much about the baudrate.
If you just use a CDC class to communicate with a PC, you in fact can ignore this parameter. USB always works at 480MHz fixed baudrate, not configurable.
Regards,
Jing
Hi @jingpan ,
Can you show me how to get 294Mbps bandwidth with USB high-speed mode, I want to repeat your test to make sure this issue.
Thanks!
Hi @felix1 ,
You can try measure the time for communication by USB analyzer.
In it, in a micro frame, 9 * 512 Byte is transferred.
so, the bandwidth is 9 * 512 Byte/(125us) = 36.8M Byte/S = 294.9Mbps
You can use the code to send a 16KB buffer for test, and watch the result.
Typically, need to press a key from key board after measurement environment is set up, and then begin the transfer and measurement.
BTW, EHCI is high speed and KHCI is full or low speed.
Regards,
Jing