3 Replies Latest reply on May 18, 2015 5:55 AM by userc_41310

    CyUSB FX3 frame rate [FX2G2UVCDemo/USBVideoClassBulk example]

        Hello. I'm using Cypress EZ-USB FX3. 


      I want to increase the frame rate of the fx3 to 120 hz. I changed the descriptors of the example USBVideoClassBulk, what else do I have to change. Actually I get 15 hz with this example, so more than that would be an achievement.
      I guess there have to do some changes in cyu3dma.h, right? 
      I also tried to compare to Fx2g2UvcDemo, an old FX2 Example, which at least transfers with 30 hz. 
      But I cant find the differences in the GPIF/DMA settings between these both examples. 

      Can you help me, please? Thank you.

        • 1. Re: CyUSB FX3 frame rate [FX2G2UVCDemo/USBVideoClassBulk example]



          In addition to changing the descriptors (Frame interval, Min Bit Rate, max Bit rate), you also need to change the "Frame interval" field in the glProbeCtrl structure in the uvc.c file.


          Also, what is the resolution you are planning to stream? Make sure that the resolution is not too hight for 120 Hz frame rate. We have so far tested 720p at 50 Hz and 1080p at 30 fps. For streaming 120 Hz, the resolution should be less.


          If the throughput is very high, then the streaming might not be possible. The throughput has a direct relation with the frame rate and resolution.




          - Madhu Sudhan

          • 2. Re: CyUSB FX3 frame rate [FX2G2UVCDemo/USBVideoClassBulk example]

            Thank you so much!!
            Finally, an achievement!!!! :) 
            It's so easy, if you just know where and what you gotta change.


            I'm just stream 480x640 now. In future maybe 720p and 50Hz is also great for that!


            THX. :D

            • 3. Re: CyUSB FX3 frame rate [FX2G2UVCDemo/USBVideoClassBulk example]

              Do I have to change sth else in USBVideoClassBulk example for the 120Hz?? 
              The maximum I get is 60Hz. It's just a resolution of 640*480.

              I changed in glProbeCtrl the frame interval to: 


              0x85,0x45,0x01,0x00,            /* Desired frame interval in 100ns */




              and my desriptor got the following changes:


                   //0x00,0xC0,0x5D,0x00,             /* Min bit rate bits/s 768 KB/s*/
                    0x00,0x80,0xBB,0x00, // 1536 KB/s


                   //0x00,0xC0,0x5D,0x00,            /* Max bit rate bits/s 768 KB/s */
                     0x00,0x80,0xBB,0x00, // 1536 KB/s


                   0x00,0x58,0x02,0x00,            /* Maximum video or still frame size in bytes 19.200KB*/


                   //0x2A,0x2C,0x0A,0x00,            /* Default frame interval 66ms=15fps*/
                   0x85,0x45,0x01,0x00, //8ms=120fps


                   0x01,                            /* 1 Frame interval type : No of discrete intervals */


                   //0x2A,0x2C,0x0A,0x00             /* Frame interval 3 66ms=15fps */   
                     0x85,0x45,0x01,0x00, //8ms=120fps




              Thank you.