You are here

Not enough throughput while testing GPIFtoUSB on FX3 | Cypress Semiconductor

Not enough throughput while testing GPIFtoUSB on FX3

Summary: 2 Replies, Latest post by SAMEHBENSAID92_1527051 on 04 Apr 2016 02:26 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
SAMEHBENSAID92_1527051's picture
User
21 posts

Hello,

I have two issues I want to get some explanation about:

1) I'm testing the stream IN firmware on my FX3 Super Speed Explorer Kit with an FPGA Cyclone IV. The test works perfectly while testing with USB 2.0 port but when using a USB 3.0 port there are only few packets that pass the test and it rapidly get failures after that. I am aware that the buffer' sizes are bigger but for me it shouldn't be a problem since we are using USB 3.0 which is adapted to that.

2) To verify the throughput I'm working with, I did a test with the GPIFtoUSB firmware like mentioned in the AN86947 . I changed the values of "burst length", "Size of DMA Buffer" and "number of buffers" each time like mentioned in table 8 in the AN86947 but I never got a throughput bigger than 185000KB/s ( even with 4 buffers !) and I don't seem to understand why knowing that I tested on different USB 3.0 host controllers and OSs ( I tested on Intel® USB 3.0eXtensible Host Controller / Win8 64bit and also on Renesas Electronics USB 3.0 Host Controller / Win7 64bit ). 

Thank you,

Sameh

mady's picture
Cypress Employee
1114 posts

Hi,

1) Can you please add CyU3PUsbLPMDisable (); after the CyU3PConnectState API? This will avoid the PC to force Fx3 into low power modes especially in USB 3.0. Also there is a chance that your device might be prone to noise induced by the FPGA resulting in PHY/LINNK errors and ultimately soft usb disconnection. Please call the API CyU3PUsbGetErrorCounts periodically in the for (;;) of your firmware. and check if there is any phy link errors occuring, (Refer the API Guide on how to use this API)

Also, please make sure that your FPGA Implementation is correct by monitoring the control signals and clocks. I would recommend you to create a Tech Support case in this regard, as there are lot of possiilities why things can o wrong.

2) I tesed the GPIFtoUSB firmware on my side and I could get 370+ MBps. Are you using the C++ or C# stremer for testing? If so, what are the packets per transfers and transfers to queue values? can you please use the value 32 and 16 respectively and check?

If you are not yet using the C# / C++ streamer, please give a try with these.

Regards,

- Madhu Sudhan

 

SAMEHBENSAID92_1527051's picture
User
21 posts

Hi Madhu Sudhan,

I will certainly create a Tech Support case for my first problem because I still can't resolve it.

When it comes to the second issu, I tested the GPIFtoUSB firmware on both C++ and C# streamers and still can't get more than 190 MBps, besides I've noticed that with the C++ I don't have failures but when using the C# streamer I keep receiving and having failures in the same time like shown in the screen shots.

PS: I even added the "CyU3PUsbLPMDisable" after the "CyU3PConnectState" API in the GPIFtoUSB firmware and still had the same results.

Do you have another explanation or another suggestion ?

Regards,

Sameh

 

 

Log in to post new comments.