FX3 (CYUSB3kit-003) and Linux USB 3.0 Bulk Read Problems | Cypress Semiconductor
FX3 (CYUSB3kit-003) and Linux USB 3.0 Bulk Read Problems
Summary: 1 Reply, Latest post by Madhu Sudhan on 15 Jun 2015 12:18 AM PDT
Verified Answers: 0
11 Jun 2015 12:05 PM PDT#1
I have run into an odd problem using the FX3 (CYUSB3KIT-003) on Linux using libusb.
I have a java test app that calls down through C++ DLLs (so, dylib) to communicate
with the FX3 (which is running the default bulk src and sink firmware that came
programmed on the board). It does a simple sequence of operations: open, write block,
read block, single huge read of data, and close. Prior to each read, I fill the target
buffer with a set pattern. The FX3 firmware, on a read, fills the target with 0xAA,
overwriting my pattern as it should. The blue LED on the board is blinking, so I know
we are using USB 3.0.
For Windows, these operations go through WinUSB. There are no problems. Everything
works well. Likewise everything works well with the Mac OSX using libusb. The
test programs can be run any number of times and the operations and incoming data
With Linux, the first time through the test program, everything is fine. However,
running the program a second time results in the very first read either timing out with
the target buffer being filled with 0x00 (on one of my test machines) or (on another
test machine) having the read "succeed" (result indicates the number of bytes to be
read were read without error) but not having anything change in the target buffer.
If the read is immediately retried, it works fine (or if subsequent different reads
are done, they work fine).
It stays in this state until I either unplug and replug the board or reset the
system. On a couple of occasions, after unplugging and replugging the board, the
blue LED on the board does not even come on at all. At that point, I have to reboot
the system in order for it to even recognize that the FX3 is plugged in.
When I plug the FX3 board into a USB 2.0 only socket on the Linux machine (blue LED
on board is on solid), I see no problems. It is obviously slower, but everything
works as expected.
At this point, I am suspecting that either the Linux USB 3.0 handling has a problem,
libusb has a problem (though it worked fine on the 2.0 port), or the FX3 has a
Are there know issues in using the FX3 on a USB 3.0 port on Linux? I am running a
64-bit quad core Xeon Intel machine running Mint 16. I have a PPA Int'l USB 3.0 SuperSpeed
PCIe-x1 card that provides two USB 3.0 ports (per PPA's support group, the
GT50PCIEUSB3 USB 3.0 controller uses the ASM1042 chipset).