Dear forum members and Cypress employees, I’m trying now since several days without any success to get a clear statement about the transfer bandwidth I’ve to expect using the sample application and firmware provided by Cypress in their SDK.
Each time I ask for a number somebody points me to post of a costumer who tells that a bandwidth of 120 MB/s has been reached using a custom firmware and host application and a somebody from Cypress is telling they have seen 110 MB/s.
I tried to get some more details about how Cypress got the 110 MB/s but without success. The answer seems to be: “it depends from the USB3 Host Controller ” and that’s it.
I played a while with the different examples provided by Cypress but none of them is giving us the feeling that 110 MB/s can ever been reached… the best I got up to now is 50 MB/s using a modified version of bulk loop (4 MB transfers with 16 scheduled async. transfers ). Is this due to the PCIe to USB3 Renesas (NEC) host controller ? Who knows … I understand the USB3 host controller may make some differences but here we’re talking about 50% of difference…. and in the end, if the 50% of difference is really due to the host controller, probably USB3 isn’t an enough mature option to be used today, at least for us (on a previous product I used an FX2 and I was able to get a stable and continuous device to host transfer bandwidth of 42 MB/s).
I’m now in the bad position where I’ve to commit on the fact that using FX3 in one of our products we are going to be able to guarantee a transfer bandwidth above 70…90 MB/s.
I may have a problem on my Cypress FX3 development board or on my Laptop (SW, USB3 host controller,…) but as long as nobody is giving a figure on what is the transfer bandwidth that one should be able to get using one of the CYPRESS provided firmware/host application I’ll not be able to understand if there is something broken or I’m simply doing something wrongly.
(I’m not interested into figures which are based on GPIF transfer since this would require to drive the GPIF with an “external” device which isn’t typically available during an evaluation phase).
What I need is from the people who are claiming 110 MB/s and therefor are working with an acceptable USB3 host controller what is the transfer bandwidth you get using:
- cyfxbulklpauto using 4 MB transfers and disabling the packet content check on the host (just assume they are good)
- cyfxbulksrcsink using 4 MB transfers and disabling the runtime buffer copy done in the firmware….
Alternatively Cypress could post the firmware and the host application able to show 110 MB/s on your machines (again it has not to be GPIF based since peoples with just a FX3 development board will not be able to run it).
As last alternative (especially if 110MB/s is only achievable using GPIF ) it would be useful if Cypress itself could post or distribute any example (firmware/application) specifying: using XYZ USB 3 host controller we got XYZ MB/s of transfer bandwidth.
Next week I’ve to return my FX3 development board to the local Cypress representative but I still have no feeling about what FX3 can do…
Thanks in advance for any comment or suggestion,
best regards, Joel