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.
I have reached the Bulk transfer rate of 40MBps using the Cy68013A
I use Bulk mode, and configure the endpoints as
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 ?
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.
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?
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.
Thanks very much!
It seems that I have not any other way to get higher transfer rate.
Thanks again for offering help :)