Maximum DMA Buffer sizes for USB 2.0 and USB 3.0 different? | Cypress Semiconductor
Maximum DMA Buffer sizes for USB 2.0 and USB 3.0 different?
According to my understanding there is 256 kB memory available for DMA buffers by default. In my application I create two DMA channels each with count=1 and size = USB packet size. In addition, I want to create a MultiDMA upstream channel (2 to one) that uses all the remaining memory available. For USB 3.0 I am using count=126 and size=1024 (126*1024*2=252 kB) for the MultiDMA channel, which is working. However, when connected to a USB 2.0 host, I would like to use count=252 and size=512 (252*512*2=252 kB) but the DMAMUltiChannelCreate function returns "16" which means "CY_U3P_ERROR_MEMORY_ERROR". After some try and error, I found that maximum count value for USB 2.0 seems to be around 80, which results in only 82 kB buffer size. What can be the reason for this?