We are trying to our development environment with FX3+Spartan6, but we got a problem with received data. We followed AN65974, and the example 0xa5 * 1024 worked well. But if we sent random data, the received data got bits errors. We tried other repeated data, 0xff * 1024, 0x37 * 1024, etc, they were worked. Yet, random data was not.
So, what could the problem be? Can you help us?
Can you share the screen shot of random data that you have sent and received data?
Also let us know the size of the data you have sent over OUT End point and size of data you requested to received on IN Endpoint?
Here is the data. They were all 1024 Bytes.
This following one is one of the results working at 100MHz.
This second one is the result working at 10MHz.
Can you probe the data lines over the GPIF Interface and check whether the FPGA is Looping back the data correctly?
What it is send to FPGA and what FPGA is looped back?
You can also do copying the 1024 packet that is send over BULK OUT EP to local buffer and print it over the UART Interface. For this, we have to use DMA manual channel,
and copy the DMA Buffer to a local buffer in the DMA PRODUCER Event Call back (CY_U3P_DMA_CB_PROD_EVENT).
Do the same for the buffer received on GPIF Side and print it over the UART.
This helps in understanding where it is going wrong either in FX3 or FPGA.
We checked the procedures and got this data. We send 512Bytes data by 7 MHz this time.
We found FX3 was sending correct data until the last 1 block(4Bytes), It sent the second last block instead.
Then the FPGA loop-back data lost the first 1 block(4Bytes), and unknown data on the last 1 block.
Is the same happening at 100 MHz too?
Can you share the schematic of FX3 part?
Please check whether you have followed Hard ware guidelines provided in the AN70707 App Note.
Especially, GPIF Part
We followed the schematic in AN65974
and connected all following pin(highlighted by red) with jumpers
In 100MHz, the received data got 6-15 bit-error at random positions.