3 Replies Latest reply on Sep 18, 2020 1:34 AM by RashiV_61

    EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

    EsPo_3827446

      Hi,

       

      I referred AN75779, I interface FX3 Superspeed Explorer kit with my custom sensor. 

      I tried with UART debug port and I got following log

       

      UsbEventCB: SUSPEND encountered...

      Entering USB Susp –‹ j½‘•5Leaving Suspend Mode

      UsbEventCB: Detected HS USB Connection

      UsbEventCB: SUSPEND encountered...

      Entering USB Suspend<00>j½‘•5Leaving Suspend Mode

      Application Started

      DMA Reset Event: Frame timer overflow, time period = 400

      Application Stopped

      Application Started

      DMA Reset Event: Frame timer overflow, time period = 400

      Application Stopped

      Application Started

      .........

      .....

      ...............

      DMA Reset Event: Frame timer overflow, time period = 400

      Application Stopped

      Application Started

      DMA Reset Event: Frame timer overflow, time period = 400

      Application Stopped

      Application Stopped after 30 Commit buffer failures

      Clear feature request detected...

      Application Stopped

      UsbEventCB: SUSPEND encountered...

      Entering USB Suspend<00>j½‘•5Leaving Suspend Mode

      UsbEventCB: SUSPEND encountered...

       

      May I know about UVC.c   and why these log print and I also verified the custom sensor data signals with oscilloscope and these signals are valid.

      I want to debugprint for sensor slave address, I2C initialization ,GPIO and DMA endpoint....

       

      Thanks & Regards

      Esakki

        • 1. Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779
          RashiV_61

          Hello Esakki,

           

          The DMA reset events due to the timer overflow. The timer overflow when the video buffers are not received within the time period set.

          In the default AN75779 firmware, the timer period is set to 400 ms when the device is a high-speed device. The frame timer value is set as 400ms when the frame time 66ms (15 fps).

          If in your application the frame  rate is less then 15 fps you can try increasing the timer period to a value greater then 400ms (eg. 1000ms)

          If this still doesn't solve the issue, please share the FV, LV, and PCLK traces with us to check if the video signals are as expected.

           

          - Please let me know if you are able to see the video stream on the host (with these errors)

          - Also, let me know the video frame size and frame rate at which you are trying to stream the video.

           

          Regards,

          Rashi

          • 2. Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779
            EsPo_3827446

            Hi Rashi,

             

            I am trying to stream the video VGA 640x480 at 30fps.

            May I know How to calculate timer interval and time period.  Please explain.

             

            In uvc.c

            0x15, 0x16, 0x05, 0x00,     /* Desired frame interval in the unit of 100ns: 30 fps */

            0x2A, 0x2C, 0x0A, 0x00,     /* Desired frame interval in the unit of 100ns: 15 fps */

             

            0x00, 0x6F, 0x09, 0x00,     /* Max video frame size in bytes */     -    640x483x 2    -   May I know Why Height is 483? for USB 3.0.

             

             

            and also I tried with super speed device usb 3.0   DMA Reset Event: Frame timer overflow, time period = 200

             

            Please explain for calculating time period.

             

            Thanks & Regards,

            Esakki

            • 3. Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779
              RashiV_61

              Hello Esakki,

               

               

              To calculate frame interval

              30 FPS : 1/30 * 10^7   = 333,333 (dec) =  51615 (hex) \\ ( 10^7 to make the interval in unit of 100ns)

              Writing this from Lowest significant byte to Most significant byte it becomes 0x15, 0x16, 0x05, 0x00,

               

              15 FPS: 1/15 *10^7 = 666,666 = A2C2A (hex)

              It becomes 0x2A, 0x2C, 0x0A, 0x00,

               

              In the default firmware, the probe control glProbeCtrl20 structure mentions

              0x00, 0x60, 0x09, 0x00,     /* Max video frame size in bytes */   // 640*480*2 = 9600 (hex) which is again written from LSB to MSB

               

              Please let me know if any queries on this

               

              Regards,

              Rashi