Where are you committing the buffer? Is it in the application thread or in the DMA Callback? What is the error that you are getting? Create a technical support case on Cypress.com and provide additional details for us to check?
It is in the DMA callback to commit the buffer.
I use the usb bushound to capture the streaming data,when the fps is 30, the amount of data is less than 1080*1928*4, so PC cannot see the image with uvcviwer.
But when the fps is 20, the amount of data capturing from usb bushound is euqal to 1080*1928*4,so PC can see the image with uvcviwer.
Is there some problems with DMA?
There are no issues with the DMA . What is the PCLK value you are using? This error will happen if the host is not asking data fast enough and buffer overflow happens.
The PCLK is 74.25Mhz.
This may be due to backflow error. In this high resolution streaming the buffers are getting filled fast than the rate at which host is requesting for data. This is why once you reduce the frame rate, the issue is not observed. In our UVC example firmware , we are detecting this backflow error and have a debug print to check this error. Implement the same and check if this is the error you are getting.
Have you checked with an Intel Host Controller and a different host application? Also disableLPM in the firmware while streaming.
I have checked. When the fps is 30, FX3 prints the backflow error.
Using the different application, the error still exit. DiableLPM while streaming doesn't solve the problem.
Is there some other sulutions to backflow error???