Electronics > Open Source Hardware

Raspberry PI Camera IMX219 MIPI CSI 4 Lane interface to Lattice FPGA USB 3.0

(1/4) > >>

RoadRunner:
Since quite some time i have been involved with different type of camera sensors and interfacing to to various processors. In my recent project i took Raspberry PI Camera Sony IMX219 MIPI CSI and interfaced to FPGA and streamed over USB3.0 Link.

There are many MIPI CSI to parallel bridge designs available from many FPGA manufacturer but none of them are open source they either have some blackbox modules or uses some very application specific processor. So i made this design with cheap Lattice MachXO3LF FPGA.

I made my own camera board around the sensor from raspberry pi. As turned out IMX219 is 4 lane camera but raspberry pi's board only uses 2 lane mipi and I wanted 4 so that i can run mipi clock slower but still get full performance out of the camera.

This project is still work in progress, Image Quality, Maximum frame rate and Max resolution need improvement.
Project has seen few improvents since start, Can capture From VGA to Full 8Mpixel Video Stream, Frame rate ranging from 15 to 1000 FPS.
Now auto exposure and auto white blance correction is the next target to further improve Image Quality.

more details about the project can be found on my blog

https://www.circuitvalley.com/2020/02/imx219-camera-mipi-csi-receiver-fpga-lattice-raspberry-pi-camera.html

https://www.circuitvalley.com/2020/02/diy-imx219-4-lane-mipi-breakout-board-raspberry-pi-camera-fpga-4-lane-mipi-csi.html


I have published few youtube videos, but i am still new bie to videos.  Test are shown sensor FPS from 15 To 1000FPS from this tiny camera







laugensalm:
That's some solid work, nice job! Good to see more MIPI implementations out in the open source..

Scrts:
Good job! If it was me, I would probable have gone with Cypress CX3...

RoadRunner:

--- Quote from: Scrts on March 03, 2020, 05:40:18 pm ---Good job! If it was me, I would probable have gone with Cypress CX3...

--- End quote ---

Yes I thought of doing that as well. But there are few issues.
I wanted to have this camera as UVC so that I need not to implement any custom solution on PC side.  As this camera only output raw and UVC does not support RAW. So if I would have gone with CX3. I need to implement a application on the PC side to convert from RAW to usable format. Then i would have also need to implement my solution for controlling  camera exposure and gain.

Second problem was availability of development board, FX3 board costs just a fraction of what a CX3 board goes for. Making custom board was a somewhat hassle with BGA and stuff.

But one very significant advantage CX3 would have offered, MAX theoretical bandwidth is higher compare to FX3. As with FX3 it is limited by 100Mhz 32bit GPIF,  while CX3 does have this bottle neck so can go higher up to what USB 3.0 Allows.

Regards

RoGeorge:
Nice!   :-+

Couldn't spot any, does your blog have an RSS/ATOM feed, please?  I would like to subscribe to it.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version