cancel
Showing results for 
Search instead for 
Did you mean: 

USB Low-Full-High Speed Peripherals

koka_4806451
New Contributor

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
Reply
1 Solution
YatheeshD_36
Moderator
Moderator

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
Reply
7 Replies
YatheeshD_36
Moderator
Moderator

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
Reply
koka_4806451
New Contributor

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
Reply
YatheeshD_36
Moderator
Moderator

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
Reply
koka_4806451
New Contributor

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
Reply
YatheeshD_36
Moderator
Moderator

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
Reply
koka_4806451
New Contributor

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
Reply
YatheeshD_36
Moderator
Moderator

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
Reply