GPIF EOP does not terminate current USB transaction using Auto DMA | Cypress Semiconductor
GPIF EOP does not terminate current USB transaction using Auto DMA
Our basic system has a FPGA that controls a CCD imager. The video data is transferred to the FX3 via the GPIF. We are streaming the data to the PC via a USB 3.0 Bulk Endpoint.
I have based our code on Cypress's "SYNCHRONOUS SLAVE FIFO PROTOCOL EXAMPLE". We are using AUTO DMA to support our bandwidth ( 350 mega bits per second).
We are using CYUSB overlapped IO on the PC side.
The FPGA continuously sends 18.75 * 16K data and asserts the EOP on the GPIF interface on the last byte. I am able to see the EOP asserted in the DMA channel on the FX3.
Each queued request is for 16K of data. on the PC side. The issue is that I always receive 16K data on the PC side. I would expect to receive .75 * 16K bytes at some point.
How can I set up the DMA channel to terminate the current transaction when the GPIF receives an EOP?