• Stars
    star
    774
  • Rank 58,703 (Top 2 %)
  • Language Verilog
  • Created over 2 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Source and Documentation files for USB C Industrial Camera Project, This repo contains PCB boards, FPGA , Camera and USB along with FPGA Firmware and USB Controller Firmware source.

USB C industrial camera with Interchangeable C mount Lens, Interchangeable MIPI Sensor with Lattice Crosslink NX FPGA Cypress FX3 USB 3.0 controller

FPGA ISP Pipeline Specifications

MPI CSI receiver ISP has No virtual restriction on supported frame rate or resolution. Tested more than 4K with IMX477 4056x3040. Can do 8K with around 30FPS or even higher than that as long as FPGA is fast enough for needed frame rate and FPGA/Board has enough memory to be able to store minimum 4 Line worth of pixels. Output Clock is independent of MIPI clock. Easily Portable code to Xilinx or any other FPGA, No Vendor specific components has been used except for the PHY itself which can be replaced by other vendor's DDR phy and Embedded Block RAM. Only Debayer/Demosaic and Output reformatter need Block RAM. Block ram can also be replaced vendor's RAM. Auto detection of RAW pixel width supporting different camera sensors and sensor modes without FPGA reconfiguration.

Speed

  • Supports MIPI bus clock 900Mbitsps Per lane with upto 4 Lanes, Total 3.6Gbitsps Sensor bit stream, Has been Tested upto 900Mbitsps with 8x Gear.
  • Pixel Processing pipeline with 2,4 or 8 Pixel per clock can reach more than 110Mhz with Lattice Crosslink-NX LIFCL-40 High Speed, So basically Can process upto 880 MegaPixels per second. With this can reach Around 120FPS with 4K resolution and around 30 FPS with 8K. Or even 3000 FPS with 640 x 480 as long as Camera and MIPI Wire allows. With Different Faster FPGA speed will be more.
  • FPGA Oputput Pipeline is decoupled from MIPI clock, runs on output clock, It feeds into Cypress FX3 32bit GPIF can do Max 160Mhz. Cyress FX3's specs limits max GPIF clock to 100Mhz.

Configurability

  • Selectable max RAW pixel width
    FPGA Design is configurable with parameters to support pixel depth from RAW10 to RAW14 or Virtually any bit depth even 16bit RAW when it becomes a MIPI Specs. Parameter specify maximum pixel width that is supported while module auto detect package type at runtime with RAW14 selected as max pixel width, RAW10, RAW12 and RAW14 will be automatically detected and processed
  • Selectable number of MIPI lanes
    With just definition of Parameter value number of lane is also configurable between 2 or 4 MIPI lanes.
  • Selectable Pipeline Size
    Pipeline is Configurable with a parameter to Process 2,4 or 8 Pixel. 2 Pixel Per Clock is only available with 2 Lane MIPI, while 8 Pixel Per Clock is only available with 4 Lanes.
  • Selectable MIPI Gear Ratio
    User can select weather to operate MIPI/DDR phy in 16x or 8x Gear ratio. Most DDR/MIPI phy supports 8x Gear while few do support 16x gear.
    Block RAM and DDR PHY IPs need to be manually regenerated if Gear, pixel width , lane or PPC is changed.
  • Selectable MIPI continuous clock mode
    User and select between MIPI clock lp based Frame sync or Frame start and frame stop packt based frame sync. Some MIPI cameras do not support going to LP mode while frame blank occur, With this option user can enable Frame Start and Frame stop detection, to have a frame sync.
  • Selectable ROM based Sample Generator
    For ISP debuging ROM based sample generator can be activated. Two ROM lines are there have both even and odd line to full image test.

Tests

IMX477

  • 4 Lane 12 bit IMX477
    4056x3040 15 FPS Full Sensor
    2028x1520 60 FPS Full Sensor Binned 2x2
    2028x1080 100 FPS

  • 4 Lane 10 bit IMX477
    1332x990 150 FPS Binned 4x4
    640x480 400 FPS Binned 4x4
    640x128 2400 FPS Binned 4x4

  • 2 Lane 12 bit IMX477
    4056x3040 10 FPS Full Sensor
    2028x1520 35 FPS Full Sensor Binned 2x2
    2028x1080 50 FPS

  • 2 Lane 10 bit IMX477
    1332x990 100 FPS Binned 4x4
    640x480 200 FPS Binned 4x4
    640x128 1200 FPS Binned 4x4

IMX219

  • 4 Lane 10 bit IMX219
    3280x2464 30 FPS
    1280x720 240 FPS
    1920x1080 120 FPS
    640x480 400 FPS
    640x128 1300 FPS
    640x80 2000 FPS

  • 2 Lane 10 bit IMX219
    3280x2464 15 FPS
    1280x720 60 FPS
    1280x720 120 FPS
    1920x1080 60 FPS
    640x480 30 FPS
    640x480 200 FPS
    640x128 600 FPS
    640x80 900 FPS

IMX290/IMX327/IMX462

  • 4 Lane 12 bit
    1280x720 120 FPS
    1920x1080 120 FPS

  • 2 Lane 12 bit
    1280x720 60 FPS
    1920x1080 60 FPS

IMX219

Project Blog post

https://www.circuitvalley.com/2022/06/pensource-usb-c-industrial-camera-c-mount-fpga-imx-mipi-usb-3-crosslinknx.html

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

alt text

alt text

alt text

alt text

alt text

alt text

More Repositories

1

mipi_csi_receiver_FPGA

MIPI CSI-2 Camera Sensor Receiver verilog HDL implementation For any generic FPGA. Tested with IMX219 on Lattice MachXO3LF. 2Gbps UVC Video Stream Over USB 3.0 with Cypress FX3. This is now Legacy Version!
C
378
star
2

mipi_dsi_bridge_fpga

Source code of MIPI DSI Bridge Published on https://www.circuitvalley.com
C
100
star
3

ttyMAY_linux_board

PCB Hardware/ Design Document For ttyMay DIY linux board
52
star
4

E-ink_ED060SC4_driver_msp430

Basic Amazon Kindle Eink Display Driver
C
46
star
5

USB3_MIPI_CSI2_RX_V2_Crosslink_NX

MIPI CSI-2 Camera Sensor Receiver V2 Verilog HDL implementation For any generic FPGA. Tested with IMX219 IMX477 on Lattice Crosslink NX with Hard MIPI PHY. Gbps UVC Video Stream Over USB 3.0 with Cypress FX3, Currently WIP
Verilog
43
star
6

USB-Video-Class-Stack-PIC32-UVC

USB Video Class (UVC) Driver Implementation on Microchip USB Stack
C
24
star
7

Solar_LED_MPPT_Charger

Solar MPPT Charger Implemented with BQ24650 MPS430 MCU
C
17
star
8

IR-Remote-Control

NEC IR Decoder/ Reciver Libarary in C For Microcontroller
ActionScript
16
star
9

agilent_53131A_53132A_options

Source and Gerber Files for HP Agilent Keysight 53131A/53132A DIY upgrade published on www.circuitvalley.com
16
star
10

PE1005_USB3_camera

Source and Hardware file of PE1005S camera Module interfacing with Cypress FX3 USB 3.0
C
14
star
11

adf4351_usb_rf_gen_qt

Cross platform USB RF Signal Generator implemented with PIC16F1459 and Analog device ADF4351 , Qt.
C
13
star
12

trueposition_gpsdo_usb_oled

Open Source 10Mhz Isolated Distribution Amplifier. PIC18F25K50 TruePosition GPSDO Controller Firmware with USB and OLED Display.
C
13
star
13

LM399_Voltage_reference

Simple LM399 Voltage Reference board
11
star
14

Crosslink_NX_USB3_Boards

This repo contains source, Documentation/reference PCB boards for USB3 camera interface with Lattice Crosslink NX FPGA
11
star
15

E-ink_pic32_Clock

PIC32 Based E-Ink Display clock
C
10
star
16

Cypress-FX3-USB3

Project related to Cypress FX3 USB 3.0 Controller published on
C
10
star
17

USB-IO-Control-Board

USB HID Based Basic USB IO Board with Analog/Digital and PWM IO
C++
9
star
18

microzed_carrier_board

Repo for Source files of Avent miroZed Carrier Boards
8
star
19

WireFrame-FPGA

Source files Related to WireFrame FPGA Board published on www.circuitvalley.com
HTML
8
star
20

USB_IO_Board_V3

HID USB IO Board V3 with Adance analog and Digital IO
C
5
star
21

Mains-TrueRMS-Meter

Mainline TrueRMS Voltage Meter implemented with MSP430 Microcontroller
C
4
star
22

Pickit2-Clone

Pickit2 Clone
4
star
23

TMS320_DSP

C
4
star
24

Agilent_1152A_Smart_Probe_Patch

PCB, EEPROM file for converting 1152A into smart probe
3
star
25

old_project_support_files

This Repo contains binary, source and document files for old projects published on
3
star
26

TLV320AIC23B-Audio-codec

3
star
27

LCD-Drivers

2
star
28

PM6680_PM6681_OCXO_time_base_option

This Repo contains Schematic and PCB Design file for DIY Fluke Philips PM66xx PM6680 PM6681 Ultra High Stability Oven Time Base Option
2
star
29

Zwei2_Breadboardable_PIC32MZ_Board

Files for PIC32MZ Devlopment board
C
2
star
30

low_power_wireless_sensor_MSP430_NRF

C
1
star
31

IR-Dimmer-Relay-Control

C
1
star
32

RF-Remote-Control

Source files for RF Remote control published on www.circuitvalley.com
Assembly
1
star