how to change DMA buffer size to 32K from original
16K? Seems that cannot implement large data transfer
using 16K buffer.
Thanks a lot!
Please change CY_FX_UVC_STREAM_BUF_SIZE to 32KB in uvc.h
and reduce the CY_FX_UVC_STREAM_BUF_COUNT to 2.
Open the GPIF designer project. Double click on LD_DATA_COUNT and LD_ADDR_COUNT and change counter limit value to 32751, as shown in the attached figure.
Thanks a lot! Sai
If you are using the project associated with the application note AN75779, then you need to add one more change in the project.
In the UVC.c file you can find one structure glProbeCtrl;
The last parameter of the structure is set to 0x00, 0x40, 0x00, 0x00 which corresponds to 16K. This parameter indicates the No. of bytes that device can receive in single payload. This need to be changed to 32K.
I use 16K buffer, so each usb transfer size should be 1024*16=16384byte, but I use bushound tool to see it's size was always 16380byte. I know the actually transferred size of the video is (16380-12)byte. My question is how can I get the transfer size to 16384byte at each usb transfer?