I successfully finished transfering YUV -format data in UVC BULK mode on cypress FX3，I tested the data transfering speed by printing the DMA buf counts per second ，and it almostly reach to 200MB/S more.
max burst size = 16
DMA BUF size = 16*1024
DMA BUF counts = 10
however，the frame rate is far away from the theoretical value，I watched the frame rate using debut capture，and framerate is at most up to 10fps when the resolution is 2592x1944， namely，the actual speed at PC is less than 100MB/S. then I changed the args to test，and when DMA BUF size = 6*1024，the speed is about 100MB/S，and framerate can be up to 10fps when the resolution is 2592x1944. even when the DMA BUF size = 32*1024, DMA BUF counts = 5 ,framerate is still 10fps when the resolution is 2592x1944. but the data transfering speed can be up to 250MB/S .
so I guess that the speed of PC processing UVC data is too low! Maybe it's restricted by UVC driver or decoder or something else!
at last, I wanna improve the speed by using BULK stream protocol,but it failed ! (it can start the mulitiple DMA channels to transfer datas,but the speed is always about 7MB/S,and the data size every times is always 1024B) I referred the example cyfxbulkstreams in FX3 SDK, I dont know whether UVC bulk mode can support the stream protocol! can anyone tell me the answer?
thx! and sorry for my mistakes and unclear expressiong!
From what I'm aware of Bulk streams is still not properly supported by host controllers. Please let me know your setup configuration (esp the host controller and whether it claims complete support for bulk stream)
thx for ur answear!
I found that someone at this community said the usb3.sys of windows xp maybe not support the bulk streams, and I also identified the example cyfxbulkstreams from CYPRESS FX2 SDK can not work normally,I suppose it can not enumerate successfully because I can not see any device info ,interface,and endpoints in USB controller center after download.
srry about no understanding what u said about my setup configuration clearly, for 4 IN treams, I config the endpoint as 1 bulk IN ep with 4 streams ,and the streams in ep companion descriptor is 2(2^2=4) . I also config the 4 DMA channels with the same callback function, I just do everything referring the cyfxbulkstreams example .
For host controllor , I m not sure which is the propor one, there are two ,ASMedia XHCI Controller and Standard Enhanced PCI to USB Host Controller.
The xHCI one would be the one for USB3.0. I'm not too sure if the ASMedia one supports stream. Please create a tech support case (MyAccount -> MyCases) so that our guys can look into this and suggest suitable way of testing Bulk stream.
i have created a new mycase！I correct a mistake above，the example that I try to identify is cyfxbulkstreams from CYPRESS FX3 SDK. and I found the presentation "programing successful"at the bottom of USB Control Center after download the image into RAM although it dont present any information about interface and endpoint，so I suppose that maybe I just need a software in PC to identify it！
I want to see the same result, but I can't get it. I want to get the UVC firmware(fx3) src pgms.
Please, could yos upload the pgms?, thanks.
the tech support gave me the answer,its the same as what u said,but it needs to pay for the MCCI stack or somthing,and the host controllor driver based on window 8 can support the bulk streams . Thx for ur help!