Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

USB superspeed peripherals Forum Discussions

Level 1
Level 1

Dear All,

I want to transmit large amount of data to the CYUSB3014 by the control center. A FPGA is always reading the FIFO of CYUSB3014. The USB firmware and the FPGA verilog files are just the ones provided by the guideline AN65974.

There are two issues:

1) The CYUSB3014 can only be connected to the USB2.0 port of my PC. If it is connected to the USB3.0 port. The Control Center and the PC Device Manager keep flashing. The

2) The data can be transmitted successfully to CYUSB3014 if the txt file is 30MB. However, it fails when the file is about 70MB. I am sure the FPGA does not finish the data reading. So I guess it is the problem of the code in CYUSB3014.

I have tried many days, but I still cannot figure it out. Could anyone please help me to solve these two problems?

10 Replies
100 likes received 50 likes received 25 likes received

1. Please mention the version of SDK (SDK 1.3.3 or SDK 1.3.4). if it is SDK 1.3.3, please upgrade to SDK 1.3.4 and check.

2. It is due to the timeout of transfer hardcoded in the control center app. You need to modify the same and rebuild the app.


Thanks for your reply.

1) The SDK is the latest version 1.3.4.

2) I tried to increase all the timeout parameter defined in the C# project. However, it still fails. When I select the 70MB file, the control center immidiately shows the error information with "BULK OUT transfer failed with Error Code:997".

Do you have more suggestions?


1. Can you disable the Low Power Entry in SETCONFIG event and check. Use CyU3PUsbLPMDisable API.

2. Need to check and let you know.


1) The API is already used in the EZ USB Suite Project as follows:

          case CY_U3P_USB_EVENT_SETCONF:

            /* Stop the application before re-starting. */

            if (glIsApplnActive)


                CyFxSlFifoApplnStop ();



            /* Start the loop back function. */

            CyFxSlFifoApplnStart ();


2) I found the reason.  There is one line of code in the USB Control Center Project:

                        success = curEndpt.XferData(ref file_buffer, ref file_bytes);

     When a small file is loaded, the success flag is true. However, when a large file is loaded (the byte size is 48000024), success is false and the datalength file_bytes is forced to zero. I think the file size exceeds the maximum size that the XferData function can handle. However, the txt file is only 70MB. Could you please provide some suggestions to address this issue?



Try using

success = curEndpt.XferData(ref file_buffer, ref file_bytes, true);

Best regards,

Srinath S


1. Check Hardware:

  •   Ensure that the noise on power supplies AVDD, U3TX_VDDQ, and U3RX_VDDQ is below 20 mV and on VDD is below 100 mV.
  • Ensure that the design passes the schematic and layout checklist given in AN70707.
  •   Use standard certified USB cables.
  • Ensure that the clock provided to FX3 satisfies the specifications in Table 4 of the FX3 datasheet.

Test with Cypress Board:

Use the same firmware on FX3 DVK (CYUSB3KIT-003) and check for the issue. This helps determine whether the issue is related to hardware.


The hardware problem is difficult for me to check now. The second problem is more urgent for me.

Thanks for your kind help.



We found that the bottle neck for transferring the larger is file Cypress Vendor Driver.

Please test with the attached driver.

This is only for Windows 10 and not MS certified but has Cypress digital signature.

Password for attachment: cypress


It still fails.


I found that, when I try to transfer file with size larger than 32MB, the control center fails. It seems that this size limit is caused by the microsoft OS. Any suggestions?