- What is the buffer size that is used in your firmware?
- The CyU3PDmaChannelCommitBuffer() API commits an entire buffer to the USB host. Depending on the USB bus speed, the transfer is split into multiple transactions each with a transfer size equal to the bMaxPcktSize parameter mentioned in the endpoint descriptor of the device firmware. So, for any transfer that is of size greater than the bMaxPcktSize parameter, it will be split into multiple transactions.
in the uvc.h file
CY_FX_EP_BULK_VIDEO_PKT_COUNT 0x12 //change from 0x10 to 0x12
By my underrstand, the buffer size = 18*1024 = 18432
In USB SuperSpeed, the maximum size of a BULK transfer is 1024 bytes and it can support a burst of 16 packets. So, the transfer (>16KB data) is split into multiple transactions with the last transaction being a short packet.