cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

Anonymous
Not applicable

 Hello. I'm using Cypress EZ-USB FX3. The following is my problem.

   

An FPGA is sending data ranging from 1 to 255 to FX3. The GpifToUsb firmware (located in Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxgpiftousb) is adjusted, where the data bus is 8 bits and the clock is 12MHz. I add a line in the Streamer C# program to write the data sent from FX3 to PC into a txt file so that I can check whether the data received is right.

   

The data is right in the most time, but sometimes I can find data missing. For example, this byte is 120, the next byte is 147, not 121.

   

I store the positions where the data misses and find the periodity. If X stands for the CY_FX_DMA_BUF_SIZE in the GpifToUsb project, then the two continuous positions' difference is X. For example, if CY_FX_DMA_BUF_SIZE is 8192, the positions can be 1, 8193, 16385... The number of data missing at each position varies, usually 26 or 27.

   

So how can I solve the data missing problem? Thank you! 

0 Likes
3 Replies
Anonymous
Not applicable

 And, the FPGA is driven by the GPIF clock on FX3. On the posedge the 8 bits output of FPGA changes, and on the negedge the GPIF reads the data.

0 Likes
Anonymous
Not applicable

I wonder how your verilog writes, In cyfxgpiftousb example DMA_RDY_TH0 signal does not work as a signal to notifiy your FPGA to write data, so I think the data lost may cause by PIB thread 0  not ready for read your FPGA still write data to PIB_SOCKET_0.

   

I suggest you use our Slave fifo example for your specific application use. Link: http://www.cypress.com/?rID=51581

   

If you have any further questions, please feel free to create a technical support case, our Cypress expert will be glad to help you.

0 Likes
Anonymous
Not applicable

 Thank you! 

0 Likes