BULK OUT transfer failed with Error Code:997

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

cross mob
lopo_1264666
Level 3
Level 3
25 replies posted 10 replies posted 5 replies posted

Using "SuperSpeed Design Examples V1.2.1"

- Program the superspeed explorer kit with "GPIF_Example5.img"

- Program "CYUSB3ACC-007 CPLD Accessory Board" with "CPLDasFifoMaster.xsvf" and set its switches 6,7 and 8 to open. CPLD is an infinite data sink in this case.

If I select a small file and send it to the CPLD board through USB control center, it works. When I tried to send over a large file, it failed with error.

0 Likes
1 Solution

Hello,

With the driver version 1.2.3.25 you can transfer upto 32 MB of data in a single xferdata call which is the standard, whereas in the previous driver you were able to transfer only upto 4 MB.

If you want to transfer a larger file, then, in your host application you will need to break the file into small chunks and transfer the data using Xferdata, the size of data chunks depends on the version of the driver the device is bound to.

Thanks,

Yatheesh

View solution in original post

0 Likes
20 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

Please refer to this thread (last interaction) on community: How to transmit very large file to the CYUSB3014 by the control center

What is the size of the files (small and large) you are sending through the control center?

Thanks,

Yatheesh

0 Likes

15Mbytes file --> OK

75Mbytes file --> failed

FYI, I am using SDK 1.3.4

The link below mentioned that the problem was due to Cypress driver. I tried to overwrite existing driver with newer driver but it failed. Then I uninstalled existing driver before installing newer driver but it failed too. The worst-case is I failed to reinstall back existing driver (tried to reboot PC before).

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\driver\bin\Win10\x64

0 Likes

I shutdown my PC, reboot and reinstalled SDK, now the “existing” driver works but BULK OUT transfer problem still there. I tried to compare inf files between new and existing and contents is the same?

0 Likes

Hello,

Please re-download the driver package from this thread: How to transmit very large file to the CYUSB3014 by the control center

save it in a different location and manually bind the device to the downloaded driver from the device manager.

To manually update the driver:

1. right click on the device of which the driver needs to be updated in the device manager.

2. select update driver -> Browse my computer for driver software -> Let me pick from a list of available drivers on my computer -> Have disk -> Browse (browse to the downloaded driver folder) -> select the inf file -> click OK -> next (if a pop up comes click install) -> restart the PC if needed.

In the driver attached to the thread, the driver version in the inf file is changed to 1.2.3.25 from 1.2.3.20. So when you successfully bind the device to that driver you will see the driver version as 1.2.3.25 in the device manager.

Refer to the screenshot below to check the driver version from the device manager (driver tab)

pastedImage_2.png

Thanks,

Yatheesh

0 Likes
lock attach
Attachments are accessible only for community members.

I followed the steps below but failed to update the driver. Attached is the error msg. FYI, my PC runs on Windows10.

0 Likes

Hello,

Please make sure that the VID and PID of the device in the firmware is 04B4 and 00F1.

Thanks,

Yatheesh

0 Likes

The VID and PID are correct. It is listed in the Control Center but I couldn’t update the driver for it.

0 Likes
lock attach
Attachments are accessible only for community members.

Hello,

Please follow the below steps.

  • Uninstall all the current cyusb3 drivers. You can do this by right clicking on the cypress FX3 device in the device manager -> uninstall device. check the box that says "delete the driver software for this device" and click uninstall. Reset the device.
  • Do the above till all the cyusb3 driver installed on your PC is uninstalled, and the device will enumerate under other devices as FX3 and no drivers are bound to it.
  • Copy paste the attached dpinst.exe file in this response to the folder containing the driver files from the referred thread (cyusb3 version 1.2.3.25). The dpinst.exe should be present along with the other driver files (.inf, .sys and .cat) of the cyusb3 driver version 1.2.3.25.
  • Execute the dpinst.exe file by double clicking on it. After executing and installing the application should report that the drivers were installed successfully (refer to the attached image). After the drivers are installed reset the device if needed.
  • This should bind all your cypress devices to the driver version 1.2.3.25.

pastedImage_0.png

Thanks,

Yatheesh

0 Likes
lock attach
Attachments are accessible only for community members.

I can execute dpinst.exe successfully but still couldn’t enumerate the device.

0 Likes

Hello,

Please check if there is additional security that is involved in restricting your PC to bind a device to a driver.

Refer to this link: How to Fix USB Error Digital Signature (Code 52) Error - Appuals.com

We were able to successfully bind the device(FX3,FX2LP,USB-Serial) to the driver without entering Test mode on PC.

Please see the below screen shots:

pastedImage_1.png pastedImage_2.png

Thanks,

Yatheesh

0 Likes
lock attach
Attachments are accessible only for community members.

After changing the BIOS settings, I am able to bind device driver (1.2.3.25) but it still failed to transfer large file. I stepped the C# codes for USB Control Center and found out line 649 always returned “false” for large file.

0 Likes

Hello,

Please check if the device is enumerated as a  super speed device and  confirm if the device is bound to 1.2.3.23 driver version.

You can verify the functionality using cyfxbulksrcsink firmware on the FX3 device and use the control center to transfer less than 32 MB of data.

The maximum length of the URB that can be created in super speed in 32 MB. So you cannot transfer more than 32 MB using a single xferdata call.

Please refer to this Microsoft document USB Bandwidth Allocation - Windows drivers | Microsoft Docs

Thanks,

Yatheesh

0 Likes
lock attach
Attachments are accessible only for community members.

Previously we tried to upgrade the device driver to 1.2.3.25. So, the actual problem is not device driver but Windows MaximumTransferSize for bulk endpoint?

0 Likes

Hello,

With the driver version 1.2.3.25 you can transfer upto 32 MB of data in a single xferdata call which is the standard, whereas in the previous driver you were able to transfer only upto 4 MB.

If you want to transfer a larger file, then, in your host application you will need to break the file into small chunks and transfer the data using Xferdata, the size of data chunks depends on the version of the driver the device is bound to.

Thanks,

Yatheesh

0 Likes
jori_4613131
Level 2
Level 2
First like given

lopo_1264666 wrote:

Using "SuperSpeed Design Examples V1.2.1"

- Program the superspeed explorer kit with "GPIF_Example5.img"

- Program "CYUSB3ACC-007 CPLD Accessory Board" with "CPLDasFifoMaster.xsvf" and set its switches 6,7 and 8 to open. CPLD is an infinite data sink in this case.

If I select a small file and send it to the CPLD board through USB control center, it works. When I tried to send over a large file, it failed with error.

I tried the example with GPIF_Example5.img and CPLDasFiFoMaster.xsvf(first tried using USB to download xsv file to CPLD, then load the former image to FX3.

When operate it on Control Center, It will soon return 997 after several tried of single 0es or try to send 2MB files.

why the result behave different?

Jiayou

0 Likes

Have to press on SW2 on the explorer board first before you can send the file.

0 Likes

yes, it is.

But what SW2 pressing means to the FX3 ? since it is no meaning to CPLD.

a reset or release resource?

thanks

Jiayou

0 Likes

There are two switches on the explorer board. SW1 next to the USB 3.0 connector and SW2 closed to the micro-USB connector. You need to press SW2 to set run and the explorer board LED will turn on showing that it is ready to receive data. You can press this button again to terminate this test. I got this information from the book.

0 Likes

Besides,

is the GPIF_Example5.cydsn fold the same project as the one in GPIF_Example5 in FX3 Firmware Project folder?

It cannot be since the interface type is Master, which should conflict with CPLDasMaster set.

any advices?

thanks

Jiayou

0 Likes

From the book:

1. load CPLDasFifoMaster.xsvf code into the CPLD

2. set CPLD switches 6, 7 and 8 to open to select WRITE mode. Switches 1, 2, 3, 4, 5 to closed.

3. load GPIF_Example5.img

4. press on SW2 to set RUN and the explorer board LED will turn on

5. now you can use bulk out endpoint in USB control center to “transfer file out”