FX3 Asynchronous Slave Fifo

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

cross mob
JeCl_4704641
Level 1
Level 1
10 sign-ins 5 sign-ins First reply posted

Hello,

Our project is to continuously transfer data from the FPGA to the PC via FX3 USB controller.

The protocol is implemented on the master FPGA by referring to “Asynchronous Slave FIFO Write Sequence Description” page 29 of the CYUSB301X/CYUSB201X datasheet.

The FPGA send continuously 1024 16-bit words through the Fifo on the address "01", then on the address "10", alternatively.

We use the Asynchronous Slave Fifo firmware example, and the Control Center application.

When we click on "Transfer Data-IN" button, we have the following error:

BULK IN transfer failed with Error Code: 997

Why we can't recover the data?

Can you help / advise us on how to proceed?

Thank you.

Jean.

0 Likes
1 Solution
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello Jean,

The SlaveFifoAsync firmware example in the FX3 SDK uses CY_U3P_PIB_SOCKET_0 for sinking in data from the GPIF interface and transfers it to USB.

So, you will have to use only address 00 for reading and transferring data from the GPIF side to the USB.

Please drive both the address lines low and do an IN transfer of size 1024 on EP 1 IN (0x81) to check if the data is being transferred form GPIF to USB successfully.

Thanks,

Yatheesh

View solution in original post

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

Hello Jean,

The SlaveFifoAsync firmware example in the FX3 SDK uses CY_U3P_PIB_SOCKET_0 for sinking in data from the GPIF interface and transfers it to USB.

So, you will have to use only address 00 for reading and transferring data from the GPIF side to the USB.

Please drive both the address lines low and do an IN transfer of size 1024 on EP 1 IN (0x81) to check if the data is being transferred form GPIF to USB successfully.

Thanks,

Yatheesh

0 Likes

Hello,

Thank you for your response.

Indeed, when I use the address "00", it works !

For testing, I send continuously from FPGA to FX3: 5555 AAAA 5555 AAAA 5555 ....

But on the C++ Streamer Application, the data seems to shift, I have for example sometimes AAAA AAAA instead of AAAA 5555.

Do you have any idea why ?

See red arrow on picture below:

streamer.png

0 Likes

Hello,

Please try the same using the control center application and check if the data is still shifted.

If you see the same behavior in control center as well, please send us the firmware for review.

Thanks,

Yatheesh

0 Likes