FX3 CYUSB3014 -UVC mode USB3 issue

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

cross mob
JaAd_2497106
Level 2
Level 2
Welcome!

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

0 Likes
1 Solution

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

View solution in original post

0 Likes
14 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

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

0 Likes

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

0 Likes

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

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes
lock attach
Attachments are accessible only for community members.

Hi Yatheesh,

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

Jayaram

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes

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

0 Likes
lock attach
Attachments are accessible only for community members.

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.

pastedImage_4.png

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

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes
lock attach
Attachments are accessible only for community members.

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

0 Likes

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

0 Likes
lock attach
Attachments are accessible only for community members.

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.

pastedImage_89.png

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

Thanks,

Yatheesh

0 Likes

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

0 Likes

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

0 Likes