14 Replies Latest reply on Jul 28, 2020 11:29 PM by YatheeshK_36

    FX3 CYUSB3014 -UVC mode USB3 issue

    JaAd_2497106

      We have designed custom board for camera video out  in UVC mode. Video out work fine USB2.0 but there is no video when connecting USB3,0 port but the device details PID,VID in device manager are correct. Please suggest steps to troubleshoot the issue.

       

      Thanks,

      Jayaram

        • 1. Re: FX3 CYUSB3014 -UVC mode USB3 issue
          YatheeshK_36

          Hello Jayaram,

           

          Can you please let me know which base firmware you are using for streaming in the video?

          Is it the firmware from AN75779 or the UVC class firmware in the FX3 SDK examples and are you modifying it?

          Please check the bcdUSB field in the device descriptors to confirm if the device is enumerating as 3.0, you can use the USB View application for this and check the composite device descriptors enumerated under "Universal Serial Bus controllers"

           

          Thanks,

          Yatheesh

          • 2. Re: FX3 CYUSB3014 -UVC mode USB3 issue
            JaAd_2497106

            Hello Yatheesh,

            I'm using a UVC example. We are using this for the last 2 years.

            Actually we have different variant products. So we will be designing a new interface boars with FX3  to provide USB video out.

            If I use the same Image file/Firmware file with one of the previously designed board it works fine for both USB2.0 and USB3.0 ports.

            When I use the same Image File/firmware file with a new design board Device is detected for both USB2.0 and USB3.0 but video out is seen only when I connect USB2.0.With USB3.0 port  Device is detected and PID w.r.t CyFxUSBDeviceDscrSS descriptor also matches but there is no video out(frame rate =0).We have never seen this type of Issue with our previous boards I suspecting if there could be an issue with Superspeed signals in design but if there is an issue with SS signals why there is no issue with PID and Device detection. Please let me know if you any inputs to debug.

             

            Thanks

            Jayaram

            • 3. Re: FX3 CYUSB3014 -UVC mode USB3 issue
              YatheeshK_36

              Hello,

               

              Thanks for the details.

              Looks like there is no signal quality issues. Else, the device will not enumerate with the proper descriptors on the Host PC.

              Do you have a UART debug port available on the board to get the debug logs?

               

              Provided that you are using the same firmware, can you please let me know the difference in hardware schematic between the old and the new board?

              If possible, can you please share the schematics of the old and new board, and also the firmware.

               

              Thanks,

              Yatheesh

              • 4. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                JaAd_2497106

                Yatheesh,

                I will share schematics soon. I have checked with Hardware design engineer he said w.r.t FX3 both designs are similar.

                Meanwhile, I'm sharing the  Firmware source code. Please check and let me know if any additional information required.

                Thanks,

                Jayaram

                • 5. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                  JaAd_2497106

                  Hi Yatheesh,

                  Please find attached the design files and let me know if you find any issue.

                   

                  Jayaram

                  • 6. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                    YatheeshK_36

                    Hello,

                     

                    The format used in the firmware you shared is Y16. Few Host application may not be able to stream this format.

                    Please use YUY2 by changing the first 4 bytes in the format descriptors and check if you can stream in the video using any host application and your new board.

                     

                    Also, please try the attached firmware image on your new board and check if you are able to stream in the video.

                     

                    Thanks,

                    Yatheesh

                    • 7. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                      JaAd_2497106

                      Hello Yatheesh,

                       

                      If the Issue is Y16 then I should not get USB2.0 as well right?

                      Anyhow, I have verified with by changing Y16 to YUY2 format also, the issue is the same.

                       

                      With UVC_AN75779.img video out is not there I mean the FPS=0 but I can see the resolution as 1280X720 with USB3.0 and 640X480with USB2.0. Please let me if it GPIO-8bit My FPGA code is compatible with 16bit and resolution is 640X480.

                      Have you found any issue in My source code or schematics?

                       

                      Thanks,

                      Jayaram

                      • 8. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                        YatheeshK_36

                        Hello Jayaram,

                         

                        I have gone through the schematic and did not find anything in specific.

                        Can you please let me know if there is a UART debug port available on your board and if you can connect it to a serial device to get the UART logs.  If yes, I will share you the firmware with the necessary debug prints.

                        The project you shared previously does not have a the gpif designer files. Please do share it.

                         

                        Please let me know the following:

                        1. Can you please detail the issue you are facing while trying to stream in the video with your default firmware? Are you able to get the video streaming started without any error from the application (i.e. the host displays a black screen)?  Please provide screen shots for better understanding.

                         

                        2. I see that with the previous image I shared you were able to select the resolution but could not get the video/image. What is the difference in functionality you observe between the previous firmware image i shared and your default firmware?

                         

                         

                        I have attached a firmware image which is similar to your firmware.  Do give it a try.

                         

                        Thanks,

                        Yatheesh

                        • 9. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                          JaAd_2497106

                          Hello Yatheesh,

                           

                          UART connections are there on board.

                          Video output is black(fps=0) most of the time but sometimes very rarely I see a video for a second and then immediately frame rate drops to 0

                           

                          With the latest share image file of your's, Initially it didn't after that I have done modification for timings in FPGA by double line_Valid time as your image file is compatible with 8bit I need to modify my timings after that I see video out in USB2.0 (resolution 384X288) but with USB3.0 issue is same I can see the resolution is 640X512 but no video

                          USB3_VidOut_ScreenShot.png

                           

                          Jayaram

                          • 10. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                            YatheeshK_36

                            Hello Jayaram,

                             

                            If you can connect a USB-Serial Device to the UART lines of FX3  to collect the debug logs, then:

                            1. Open the serial terminal window (like teraterm) for log collection.

                            2. Log the received data to a file File->Log.

                            3. Load the firmware attached to this response (this is your firmware-16-bit with debug enabled) to your board

                            4. Open Virtualdub and start capture using the capture pin and selecting the proper device.

                             

                            Wait for one or two minutes and close the virtualDub.

                             

                            Do this for both old and new board with the firmware attached to this response and please share the log files.

                             

                            Also, please provide your GPIF II designer project.

                             

                            Thanks,

                            Yatheesh

                            • 11. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                              JaAd_2497106

                              Hellow Yatheesh,

                               

                              With the attached image file Video out is not working even with USB2.0 

                              Regarding GPIF design file ,I will update by tomorrow.

                               

                              Thanks,

                              Jayaram

                              • 12. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                                YatheeshK_36

                                Hello Jayaram,

                                 

                                The debug logs in the UVCAppThread_entry for(;;) loop during streaming is interrupting the data flow in your case as the firmware is not capable to handle it.

                                 

                                To test, I have changed your firmware to stream in YUY2 at 640 X 480 (SensorScaling_VGA) in super speed and 320 X 240 (SensorScaling_VGA_320_240) in full speed using Super Speed Explorer Kit and Aptina image sensor board.

                                 

                                As your GPIF interface is 2 byte wide and my application (camera configuration) uses 1 byte wide data bus, in the sensor configuration (sensor.c file) I have changed the sensor to stream in:

                                1. 640 X 240 at super speed which uses SensorScaling_VGA() function  (should be changed to 640x480 when sensor is configured for 16 bit data output)

                                2. 320 X 120 at full speed which uses SensorScaling_VGA_320_240 function to configure the sensor.(should be changed to 320x240 when sensor is configured for 16 bit data output)

                                 

                                The above two changes were needed to sync in the frames to stream in YUY2 (2 bytes per pixel) between the host application and Sensor output.

                                 

                                I could stream IN video output in both 2.0 and 3.0. This is when the debug logs are not present in the UVCAppThread_entry.

                                When the debug logs are present, streaming fails because of commit buffer failures and the same is not handled in the firmware.

                                 

                                Please find the project attached and test the same on your board. I have added UART debug logs in such as way that the streaming is not interrupted. Please test the firmware and provide the UART logs if the streaming fails.

                                 

                                When using the firmware attached, if your FPGA is configures to stream 16 bit data data, then please make the required changes in the sensor.c file in the SensorScaling_VGA() and SensorScaling_VGA_320_240() functions. Refer to the comments in the respective function.

                                 

                                 

                                The discrepancy in the image color is because alternate bytes are lost due to miss match in the interface.

                                 

                                Thanks,

                                Yatheesh

                                • 13. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                                  JaAd_2497106

                                  Hello Yatheesh,

                                   

                                  I'm not able to program the shared image file even after reprogramming it is detecting as a bootloader device.

                                   

                                  We have found the issue Now it's working fine.

                                   

                                  Issue: Frequency selection configuration is wrong (001) which is invalid. But don't know why USB2.0 is working fine even the frequency selection circuit is not correct. Let me know if you have any ideas. While troubleshooting as USB2.0 working we didn't check for frequency selection circuit at initial steps of troubleshooting.

                                   

                                  Thanks for your help in troubleshooting.

                                  Jayaram

                                   

                                  • 14. Re: FX3 CYUSB3014 -UVC mode USB3 issue
                                    YatheeshK_36

                                    Hello Jayaram,

                                     

                                    The re-enumeration is due to the CyU3PDeviceReset() function called when the SensorInit() fails. This was used to check if the sensor was configured before streaming the video.

                                     

                                    Thanks,

                                    Yatheesh