FX3: data transmission error via GPIF II interface

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

cross mob
WeJi_4707326
Level 1
Level 1
5 replies posted First reply posted First question asked

Hi,

I prepared two FX3 development kits and wanted to test data transmission througn GPIF II interface. Refer to the following page:

https://www.cypress.com/documentation/code-examples/usb-superspeed-code-examples

I connected two FX3 development kits back to back over the GPIF II interface. Then downloaded firmware images without modification into RAM of the two FX3 devices.

I tried the following cases in USB Control Center:

1. Send data from Bulk out endpoint of slave board and receive data from Bulk in endpoint of master board

2. Send data from Bulk out endpoint of master board and receive data from Bulk in endpoint of slave board

For case 2, it seems OK. I can receive the same data as I sent from master board.

But For case 1, the data I received was different from I sent from slave board. The received data was same no matter what data I sent.

0 Likes
8 Replies
YashwantK_46
Moderator
Moderator
Moderator
100 solutions authored 50 solutions authored 50 likes received

Hello,

Can you please share screenshots of the case 1 for both the master and the slave?

Also, can you let me know if you have connected all the interface signals (FLAGS and data bus) properly?

Regards,
Yashwant

0 Likes

screenshot1.pngscreenshot2.png

I have added screenshots. Please check it.

About connection, I just followed the steps in document: https://www.cypress.com/file/124206/download

Use interposing connectors (Samtec part number SSW120-03-G-D) to connect two FX3 development kits back to back.

0 Likes

Hello,

Please try this as a test.
Let's say, you have Kit 1 as Master and Kit 2 as Slave and performed the above transfers for now.


Can you please swap these kits, making Kit 1 as Slave and Kit 2 as Master, and perform the same operations and the share the findings?

Please try it out and let me know of the results.


Regards,
Yashwant

0 Likes

screenshot1.png

screenshot2.png

I kept the hardware connection and just swapped the roles of these kits(Kit 1 as Slave and Kit 2 as Master), the result was same.

0 Likes

HI,

Do I need to open or short some of the jumpers on board?

https://www.cypress.com/file/136056/download

This document says that J5 need to be open when FPGA is interfaced to FX3 over the Slave FIFO interface.

So for my case, does the J5 of slave board also need to be open? How about my master board?

0 Likes

Hello,

Please keep the Jumper J5 as "OPEN" as mentioned in the app note while using the slaveFIFO interface on both the boards, the master as well as the slave.


Please try the transfers again with the Jumper OPEN in case you were using the setup with the jumper in place previously.


Regards,

Yashwant

0 Likes

HI,

Sorry, but the data was still error after I kept J5 open both master and slave board. The data read from master board was different from when J5 was short. But it was still error.

Let me describe the my steps:

  1. Set the jumpers for two boards: J2, J3, J4 short and J5 open

  2. Download images into RAM of two boards

  3. Write data from bulk out endpoint of slave board

  4. Read data from bulk in endpoint of master board

Is there any mistake of my steps?

0 Likes

Hello,


The latest response by you and the description of the thread a bit contradictory:

"But For case 1, the data I received was different from I sent from slave board. The received data was same no matter what data I sent."

=> This mentions the slave OUT and master IN had data corruption issue but the latest one says the master OUT and slave IN has issue of data corruption.

Can you please confirm which case has the issue of data corruption correctly?

Also, i can see the Bytes to Transfer is set as 512, which is when the device is working as a HS device.
Can you please confirm if you are using a SS capable host or if the device is enumerating as a HS device even when connected to a SS port of the host or if you had made changes to the CyU3PConnectState() API to force USB 2.0 connection?

- You can confirm this from the "BcdUSB" field in the 'Descriptor Info' tab of the "Control Center" after programming the device.

Also, after doing a BULK OUT, can you try doing BULK IN multiple times until you see an Error Code: 997 being displayed on the control center?
And share the number of bytes you are sending from OUT and how many times you are able to do IN before running into the error code.

Regards,
Yashwant

0 Likes