USB performance is not good in MANUAL DMA mode.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi.

   

I have to use MANUAL DMA mode. I referenced example source what "CyU3PDmaChannelDiscardBuffer " function in DMA callback function. 

   

USB working is good. but performance is very low. I think "CyU3PDmaChannelDiscardBuffer" function consume resources too much. 

   

I remove "CyU3PDmaChannelDiscardBuffer" function in DMA callback function. DMA callback function is worked just one time. 

   

I want to reuse DMA buffer without "CyU3PDmaChannelDiscardBuffer" function. 

   

Please Let me know how to do.

   

Regards.

   

Shin.

0 Likes
1 Reply
Anonymous
Not applicable

Once the FX3 receives the data, it is likely to be sitting in the DMA buffers. Unless you read the data (or consume is to some other port), the data will remain there. The buffers will be occupied and you will not get any further DMA callback. Similar is the situation here, the DMA buffer might have got full (as you are not discarding the data), so any further callbacks won't be generated. You have to use CyU3PDmaChannelDiscardBuffer if you are not consuming the data through any available port. 

   

What do you mean that you are getting performance issue. Please explain and share your firmware. Have you checked the USBBulkSourceSink firmware? There we are discarding every DMA buffer received from the host and we have not noticed any performance issues.

0 Likes