LPC5500-Series (LPC55S2x, LPC55S6x) USB Throughput

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

LPC5500-Series (LPC55S2x, LPC55S6x) USB Throughput

957 Views
charles_mccarth
Contributor I

Hi.  I'm interested to know if there are any throughput data for downloading Flash data from a PC host to LPC5500-series parts.  I would be interested in both Full-Speed and High-Speed numbers.  Ideally, I'm planning on writing to an e.MMC device and would like the net throughput, including software overhead, in MBytes/second.

 

Thanks!

Labels (2)
0 Kudos
3 Replies

820 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, Charles,

From theory, the USB full-speed can transfer data with 12Mbps(bits per second) based on USB2.0 protocol, in other words, 1.5M Bytes per second. The USB high-speed can transfer data with 480Mbps(bits per second) based on USB2.0 protocol, in other words, 60M Bytes per second. 

For full speed, the 1.5MBytsPerSecond is the theory value, actually, it includes the overhead for example token bits, acknowledge bits, frame bits, so user has to consider the packet size for each transaction and the host loading of the PC.

I suppose that the msd class uses bulk transfer, the host can allocate almost all the bandwidth to the bunk transfer if the other usb endpoints are idle.

Hope it can help you

BR

XiangJun Rong

0 Kudos

820 Views
charles_mccarth
Contributor I

Thank you for the reply.  Of course, I know the theoretical limits of USB Full Speed is 1.5 MB/s.  That is not realistic, jut theoretical.  It doesn't take into account the 8b/10b encoding, packet overhead, etc.  I was assuming I had a direct PC to MCU link, so the number of hops would be only one or two.  Then, the MCU would write to an e.MMC.  So there are two components to this - the USB download throughput to write to USB RAM, then the MCU software overhead plus the e.MMC speed limiting (if any) to get a total USB-to-e.MMC throughput.  For now, I would be happy with actual USB full-speed numbers in writing data to the MCU Flash, since I think this would be similar to writing to the e.MMC attached to the MCU.

Thanks,

Charles

0 Kudos

820 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

pastedImage_1.png

Hi, Charles,

I copy one page from the USB training documentation, it does not have bulk transfer timing, so I copy the interrupt transfer.

Here, I assume that it is a full-speed USB, Each transaction includes 3 packets, here it is packet 1156, 1157 and 1158. The packet 1156 consists of 8 bits preamble, 8 bits token, 7 bits address, 4 bits end point, 5 bits CRC, 2 bit ENDP(end of packet), the total bits are 34. The packet 1157 consists of 8 bits preamble, 8 bits token, at most 64byte*8=512 bits DATA, 16 bits CRC, 2 bit ENDP(end of packet), the total bits are 546. The packet 1158 consists of 8 bits preamble, 8 bits token,  2 bit ENDP(end of packet), the total bits is 18. One transaction is 34+546+18=598. For 1mS period, we can transfer transaction number is 12000/598=20. so in 1ms period, we can transfer 20*64=1280 Byte/ms or 1.28MByts per second, I think this is the ceiling rate for full-speed USB in bulk transfer mode.

Hope it can help you

BR

XiangJun Rong

0 Kudos