FX2LP max camera resolution and driver

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

cross mob
AlDS_4485821
Level 2
Level 2
First like given

What camera resolution is supported by the FX2LP with a camera frame rate of 25 to 30fps, is 2MP camera resolution supported?

I intend to stream video from the camera module to an android device, is a driver necessary?

0 Likes
1 Solution

Hello,

In you are using UVC class, the device will bind to the native UVC driver in Android. So, you will not need to install any external driver.

The maximum through put that can be achieved through FX2LP alone can reach upto 43 MBps. Please refer to this document: https://www.cypress.com/file/139866/download

The overall application throughput will also depend on the Host controller and Host Application running (UVC application in your case).

The Host application may be a bottleneck in squeezing the maximum throughput from the device, this is because of the rates at with the host application requests data from the device may be lesser. Hence, you have to test the real time data rates achievable after implementing the prototype for your design.

Using different formats can improve the frame rates. It finally depends on the frame size that is being transferred from the image sensor to the host and the maximum throughput that the bridge device (FX2LP) can achieve.

Interfacing FX2LP™ with Image Sensor – KBA95736  uses vendor class for streaming IN the image/video data.

In this case a custom driver is need to get the data from FX2LP through APIs and a custom host application is needed to decode the incoming data from FX2LP, re-order/frame it and finally display the image/video.

Thanks,

Yatheesh

View solution in original post

6 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

FX2LP can achieve a bandwidth of around 30MBps on the host side when streaming 640x480 video resolution as per this KBA.

On the interface side between image sensor and FX2LP, the data rates can reach 48MBps (if 48MHz interface clock and 8 bit interface is used). Hence, considering the bottleneck from USB side, you can stream at a maximum of 7 to 8 fps (2M pixels x 2 Bytes per pixel).

If a 16 bit interface is used, you can stream around 15 fps.

Note: When UVC class is used which requires frame headers, FX2LP cannot add headers in between frames and hence an FPGA must be used in between FX2LP and the image sensor to stream in Video. Refer to this KBA: Interfacing FX2LP™ with Image Sensor – KBA95736

Thanks,

Yatheesh

Hello,

Thanks for the information, it was very very useful.

FX2LP can achieve a bandwidth of around 30MBps on the host side when streaming 640x480 video resolution as per this KBA.

So 30MBps is 35% slower than UB2.0 max of 48MBps.

Why can't FX2LP achieve closer to the max speed of USB2.0 that is 480Mbps  or approx 48MBps?

If we use compressed formats like MJPEG are used can higher frame rates be achieved?

I intend to use UVC because that would be globally supported by android phones, do we need a driver on android for this or the OS driver would work?

The example that you indicated where the FX2LP is not used with any FPGA, what class of devices does that fall under?

Thanks in advance!

0 Likes

Hello,

In you are using UVC class, the device will bind to the native UVC driver in Android. So, you will not need to install any external driver.

The maximum through put that can be achieved through FX2LP alone can reach upto 43 MBps. Please refer to this document: https://www.cypress.com/file/139866/download

The overall application throughput will also depend on the Host controller and Host Application running (UVC application in your case).

The Host application may be a bottleneck in squeezing the maximum throughput from the device, this is because of the rates at with the host application requests data from the device may be lesser. Hence, you have to test the real time data rates achievable after implementing the prototype for your design.

Using different formats can improve the frame rates. It finally depends on the frame size that is being transferred from the image sensor to the host and the maximum throughput that the bridge device (FX2LP) can achieve.

Interfacing FX2LP™ with Image Sensor – KBA95736  uses vendor class for streaming IN the image/video data.

In this case a custom driver is need to get the data from FX2LP through APIs and a custom host application is needed to decode the incoming data from FX2LP, re-order/frame it and finally display the image/video.

Thanks,

Yatheesh

Thanks again, this answer clears many doubts.

So if I understood it correct for UVC we cannot use the FX2LP standalone with the image sensor, we need an additional FPGA.

Can we use the EZ-USB FX3 standalone with the image sensor in UVC mode?

Or do you have any other USB2.0 chip that can interface directly to a image sensor?

0 Likes

Hello,

We do not have any other 2.0 chips where the device can directly be interfaced to a camera and work in UVC class efficiently.

The UVC class required headers and 8051 cannot add headers to the frames at the desired rates at which UVC streams the video.

Yes, FX3 can standalone be interfaced to a Camera in UVC class and the require throughput can also be achieved. The headers will be added in the FX3 firmware.

Please refer to  this Application note: https://www.cypress.com/documentation/application-notes/an75779-how-implement-image-sensor-interface... https://www.cypress.com/documentation/application-notes/an75779-how-implement-image-sensor-interface...

Thanks,

Yatheesh

Thanks for your all your inputs.

0 Likes