The issue as follows:
Develop with SDKv1.2.
I want to transfer data by USB3.0 with DMA mode. I create 3 DMA chanels.and two for data transfer the third for command transfer.
As we know just one DMA channel can work at the same time.But I want to transfer command during data transfer.Data transfer is not continue.So I want to transfer command in data transmission interval. So the DMA for command transfer must be CY_U3P_DMA_TYPE_MANUAL mode .Before command transfer I should check if other two DMA channels are busy or idle.
Is there any function to get the DMA status .Does somebody get me an sample .And does my scheme word?
check the function "CyU3PDmaChannelGetStatus" and compare the producer and consumer counts. If they are eqal, no data is in progress.
Why are you no using the control channel EP0? There you do not have to check if data is in progress. I think you also do not have to check if any data is in progress while you like to send control transfers. The dma should be connected to different sockets and they are connected to different endpoints. So the endpoint work for user like parallel.
If I may not understand you right then I am sorry, please try a exactlier explanation.
Can I use uart or i2c port to communicate with FPGA? FX3 receive control data from ep0,and translate control data,then communicate with fpga through uart or i2c port?
you can also use the UART port to communicate with the FPGA. That is a bit faster than the I2C port. It is a pitty that you can not use the really fast SPI port while you are using GPIF II in 32-bit mode.