FX3 IN endpoint stall | Cypress Semiconductor
FX3 IN endpoint stall
Hi Every body
i have a small camera where FPGA collects data from CCD and streams this on FX3 device, which is working in 32 bit slave fifo mode. I have 2 flags.
FLAG A -> IN RDY
FLAG B -> IN Watermark set to 6 ( i just follow the sample from Cypress)
Now on my FPGA i have implemented a counter to see how many 32-bit data i can write to FX3 before my FLAG_B fires and i see that it is roughly 16360. If i write 5 more 32-bit data the FLAG_A fires. From application note on slave fifo i think this is ok. I have confirmed this with writting the received data on host to file and examining the file.
On my host PC i run my software and i see that in a single packet 77824 data is begin received (thats the nLen from FinishDataXfer function).
After receiving approximately 2MB of data from the device the IN endpoint stalls. At this point both flags are down (mening that no new data should be written to FX3). The only thing that helps is to send a Device Reset command from Host. While this helps it severily reduces the speed of transfere, and it also compromises the data that is being transfered. I have to drop almost 50% of my frames.
Did any one had similiar issues. How did you solve them?