- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi
this is my first time with the USB controller.i am implementing a design in which i have to read data from the FIFO placed in the FPGA and send data to the PC through USB controller
i need to know a few things regarding the data rate that is achiveable on the USB interface. acc to datasheet there are two data rates achiveable
1. Full Speed 12Mbps
2. High speed 48Mbps
i want to know are these data rates are actually achived? if not what throughput is that i get on the interface between the USB controller and the PC?
can anyone help me on this??
Regards
Usama Aslam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi usama,
Actually the rates you are reffering to are signalling rates not data rates.
1. 12Mbps for full speed
2. 480Mbps for high speed
With Fx2lp you can reach upto 35-40MBps, we have a streamer application with which you can check the throughput of the device.
-Shub
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have reached the Bulk transfer rate of 40MBps using the Cy68013A
I use Bulk mode, and configure the endpoints as
EP2OUT: 4x512B
EP6IN: 4x 512B
and use the Cyusb.sys & Cyapi.lib &Cyapi.h in my project
I have set the xfersize to 52K and even larger like 100K.
Is it possible to reach higher transfer rate? like 50MBps?
What is the maxium throughput under Bulk mode?
If it is impossible to reach higher transfer rate, what is the limition?
Is it the driver cyusb.sys limit the speed ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The theoretical max possible (useful throughput i.e. after removing overhead) is 53MBps. One main bottleneck is the host controller, haven't seen a host controller which sends all 13 bulk packets possible in a microframe. Other than that you have the OS overhead as well. CyUSB.sys talks to the host controller driver and does not control the number of packets in a microframe etc. So I don't suppose CyUSB.sys is the bottleneck.
Regards,
Anand
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks to assi!
Is there any tools i can use to check the number of bulk packets in a microframe?
So now 10 Bulk packets sent and I get the speed of 40MBps?
Do you think it possible that the data lenth transfered everytime is 128 byte long while i set the endpoint as 4 x 512B and PacketSize = 512 ? This would limit the speed though it seems rediculous.
My OS is XP SP3, will it influence the speed?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you configure for 512 byte and trigger transfers it won't split it to 128 byte packets.
CATC is the only way to check the number of packets sent in a microframe. I haven't seen any host controller datasheet specifically discuss this.
Regards,
Anand
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks very much!
It seems that I have not any other way to get higher transfer rate.
Thanks again for offering help 🙂