You are here

Indicating the USB IN request arrival using a GPIO | Cypress Semiconductor

Indicating the USB IN request arrival using a GPIO

Summary: 2 Replies, Latest post by Pradeepa Senanayake on 17 May 2016 11:04 PM PDT
Verified Answers: 0
Last post
Log in to post new comments.
Pradeepa Senanayake's picture
15 posts


In my FX3 firmware we have an issue with Slave FIFO data correctness. We feel that the reason for the data correctness issue is that the PC is not starting the transfer quickly enough. Therefore, we would like to visualize the time we got USB IN transfer and compare that with FPGA signals.

Therefore, I want to toggle an IO pin when the USB IN packet reaches the FX3. Then I can trigger to that signal and determine the time between USB IN arrival and FPGA data arrival.

Or is there any better way to do this?

We have 128 x 1024 buffers configured for DMA channel between Thread0 and USB endpoint 0x82. We have 2kB FIFO in FPGA. When we read data from the PC, we can see that once we got 130kB (which is 128kB + 2kB FPGA buffer) we lose some amount of data. After that rest of the data received in that transfer is correct. 

For example: 

If I read 10MB of data using XferData function in PC side. First 130kB of buffer is correct. Then we lose some data. After that the rest of 10MB data is correct. 

We believe that the reason for this is that eventhough we call XferData function in PC, it takes some considerable time to reach the IN transfer to FX3. Because of that the FPGA FIFO is overflowed.

Please let me know the way to visualize when the IN transfer reaches the FX3.

Thank you.

kash's picture
Cypress Employee
112 posts

How many buffers are you using? Are you using a single buffer of 128 K? Can you create a technical support case for this?

Pradeepa Senanayake's picture
15 posts

I'm using 128 buffers with 1024Bytes in each one of them.

Log in to post new comments.