USB interface for FPGA

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

cross mob
koka_4806451
Level 1
Level 1

Hello.

We are looking for a way to add USB interface on an FPGA board to connect the board to a commercial USB3.0 camera directly.

Could you tell me if EZ-USB FX3 controller is the best solution for our purpose?

Thank you

Kawakami

0 Likes
1 Solution

Hello,

In this scenario the FX3 is expected to act as a host and send the data received from camera (USB interface) to FPGA (through parallel interface).

Please correct me if my understanding is wrong.

Fx3 can act as a high speed host (USB 2.0) and not a super speed host (USB 3.0).

If the application needs camera to work as a 3.0 device (with SS phy, speed of 5Gbps) then FX3 cannot be used in this application.

In the other case, if the camera is working in 2.0 speeds (using 2.0 phy, speed 480Mbps), then FX3 can be used in for your application mentioned.

Thanks,

Yatheesh

View solution in original post

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

Hello Kawakami,

Yes, EZ-USB FX3 is the best suitable product for the mentioned application.

You can make use of the GPIF II interface (with required data bus width) available on FX3 to configure it as a bridge between FPGA and the USB host.

Also, you can implement UVC class on FX3 firmware (refer to application note: 2 below), else you can use the vendor class and develop your custom host application using the CyUSB.dll and CyAPI.lib which is provided with the FX3 SDK.

Please refer to the below related application notes:

1. https://www.cypress.com/documentation/application-notes/an75705-getting-started-ez-usb-fx3

2. https://www.cypress.com/documentation/application-notes/an75779-how-implement-image-sensor-interface...

3. https://www.cypress.com/documentation/application-notes/an84868-configuring-fpga-over-usb-using-cypr...

Thanks,

Yatheesh

0 Likes

Thank you for your reply, Mr. Yatheesh.

In the first document, it says "As a peripheral, FX3 is capable of super-speed, high-speed, and full-speed functionality. As a host, it is capable of high-speed, full-speed, and low-speed functionality. (page 4)"

In our case, I think the USB camera is the USB host.

Then, is TX3 used as a peripheral?

My concern is whether super-speed communication is possible for our case(USB3.0 camera----FX3----FPGA with no USB interface).

Thank you.

Kawakami

0 Likes

Hello,

For Superspeed communication with FX3 an external USB host is needed.

Can you please let me know the data flow and the end application?

I had assumed as below:

Camera ---> FPGA ---> FX3 ---> USB host (PC/mobile)

In majority cases, the FPGA is used for image processing and the FX3 acts like a bridge between the (camera --> FPGA) and the USB host to stream the video (UVC or vendor class).

You can also retrieve the image data from the camera and send it to the FPGA using interfaces such as I2C. Here a USB host is not needed as the FX3 can operate in self powered mode and a data channel is directly created between the GPIF (camera interface) and the FPGA interface.  

Please let me know the application. A block diagram will be really helpful.

Thanks,

Yatheesh

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

Thank you for your rapid reply.

We are working on developing low-latency video streaming system.

Video images captured by a high-speed USB3.0 camera (for example, 500fps) is sent to a controller of a spatial light modulator, DLP4100 (Texas Instruments).

The most important thing is to transfer camera images in real-time (with minimum latency).

Since PC creates delay, we want to connect the USB cable directly to the programable FPGA in DLP4100.

The problem is the FPGA has no interface for high-speed data transfer.

Thank you.

Kawakami

0 Likes

Hello,

In this scenario the FX3 is expected to act as a host and send the data received from camera (USB interface) to FPGA (through parallel interface).

Please correct me if my understanding is wrong.

Fx3 can act as a high speed host (USB 2.0) and not a super speed host (USB 3.0).

If the application needs camera to work as a 3.0 device (with SS phy, speed of 5Gbps) then FX3 cannot be used in this application.

In the other case, if the camera is working in 2.0 speeds (using 2.0 phy, speed 480Mbps), then FX3 can be used in for your application mentioned.

Thanks,

Yatheesh

0 Likes

Thank you Mr. Yatheesh,

I see that FX3 cannot be used for our application.

Do you know if there is any alternative product or method?

Thank you.

Kawakami

0 Likes

Hello Kawakami,

We do not have any USB 3.0 host. FX3 can be used as a USB 2.0 host.

Thanks,

Yatheesh

0 Likes