3 Replies Latest reply on Sep 7, 2018 12:23 AM by lk960825_3660966

    Cx3 UVC - issue in UART comm



      I have been working with a camera. I have used the UART in the CX3 for communicating with another board (in Reg mode). The UART communication takes place in a separate thread with a timeout of 1 sec(set using the CyU3PUartSetTimeout() API). During successful UART communication no problem is observed. But  whenever there is a failure in the UART comm (i.e API returns TIMEOUT error) the streaming gets paused (or reduced to 1 r 2 fps in some cases) for 1- 2 secs and then continues normal operation. UART comm and UVC transfer are done in separate threads. Is there  any way to prevent the UART communication from affecting the UVC thread??


      Thanks in Advance,


      Ashlin Surey. A

        • 1. Re: Cx3 UVC - issue in UART comm

          If you check the API guide/comments just before the CyU3PUartSetTimeout() API, you will see this note:

          "The API keeps the CPU spinning until the data transfer is completed, or the specified timeout period has elapsed. Therefore, it is not desirable to set a very large timeout for these operations."


          It is not advisable to use this API with large timeout. One way to do this is to have a less timeout in CyU3PUartSetTimeout() API (Assume 10ms instead of 1 sec) and then do a CyU3PUartTransmitBytes/CyU3PUartReceiveBytes. If the API times out call CyU3PThreadSleep(10) and retry. This way your normal video stream won't stop.


          Please check if it helps.

          1 of 1 people found this helpful
          • 2. Re: Cx3 UVC - issue in UART comm

            Hi savj,

            Thanks for your reply. I will try this and get back to you.



            Ashlin Surey. A

            • 3. Re: Cx3 UVC - issue in UART comm

              Hi Ashlinsurey:


                   Has your problem been solved?

                   Now we seem to have encountered the same problem as you.After a few days analysis, we found that using CyU3PUartTransmitBytes will result in a long delay time.This directly leads to video transmission jams and dropped frames.In addition, I don't know how to get CyU3PUartTransmitBytes to return TIMEOUT error message.

                   Can you tell me how you solved this problem?Maybe I can get the right solution from your experience.Thank you!


              Best regards,