FX3 USB bidirectional traffic issues

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

cross mob
Anonymous
Not applicable

Hi,

   

I'm using Fx3 to stream UVC data successfully. I'm basing my program on Cx3UvcOV5640 sample.

   

In parallel I'm sending (very small and rare) control packets to the device on the EP0.

   

Sending these control packets sometimes sporadically cause the image to become vertically unsynchronized.

   

Sending a few more of the control packets sometimes sporadically restores the image to the normal state.

   

 

   

Digging a little deeper, I see that the function 
CyU3PDmaMultiChannelCommitBuffer returns 71 (CY_U3P_ERROR_INVALID_SEQUENCE) around the time where the issues begin.

   

Do you have an idea as to what might have gone wrong with the DMA, and how I should handle it ?

   

 

   

Thanks,

   

Roman

0 Likes
2 Replies
Anonymous
Not applicable

Hi,

   

This error is caused when DMA Channel is trying to commit  a buffer when there are no free buffers available. The PC must comsume the buffers more quicker or the processing speed should be increased. The data coming from the senor might be too fast for FX3 to handle. Please create a Tech Support case so that our engineers would look into this issue and recommend enhancement to your code.

   

Regards,

   

-Madhu Sudhan

0 Likes
Anonymous
Not applicable

Hi Madhu,

   

We're having the same issue. We're using CX3 to send camera image to the host over the usb. The image size is 16 bit VGA(600k) and the fps is 30. The DMA channel buffer size is 24 k and there are 8 buffers(4 in multi channel for 2 sockets).   We use some uvc controls to adjust the camera. Once we send  one byte to the host for usb GET request for the control over EP0 while streaming, the DMA calls to get or commit for video streaming DMA buffers fail. What may be the reason for such a failure?

   

Thanks,

   

Roman Tcharny

0 Likes