CMOS Camera

CMOS Camera Overview

In one of my personal pursuits, I wanted to experiment with CMOS cameras. I interfaced with a few different cameras and the project below is for the camera that gave the best result. The camera was interfaced with a Spartan 3 FPGA and streamed its output to a VGA port. The camera resolution is 640 X 480 and runs at 60 frames per second. The camera is an Omni-Vision OV7725.

The core of the project is controlled by the NMPSM3 soft processor that is discussed in its own project section. An I2C controller was created to configure the camera. Another control module was created to capture and buffer video data from the camera. It sends an interrupt to the processor when data is ready to be read. The video data is then stored in cellular RAM located on the FPGA development board. The cellular RAM is operated in burst mode and controlled by a dedicated control module developed for this project. There is also a VGA module that sends an interrupt to the processor when it is ready for data.

CMOS Camera Repository

CMOS Camera Pictures

CMOS Camera PCB, Top
CMOS Camera PCB, Top
CMOS Camera PCB, Bottom
CMOS Camera PCB, Bottom
CMOS Camera PCB Attached to FPGA Board
CMOS Camera PCB Attached to FPGA Board

CMOS Camera Image Captures

CMOS Image capture 1
CMOS Image capture 1
CMOS Image capture 2
CMOS Image capture 2
CMOS Image capture 3
CMOS Image capture 3

CMOS Camera Video Capture

CMOS Camera Schematics

The CMOS camera PCB was designed using Express PCB.

CMOS Camera PCB Source
CMOS Camera PCB Schematic
CMOS Camera PCB Schematic

CMOS Camera PCB Design

CMOS Camera PCB Top Layer
CMOS Camera PCB Top Layer
CMOS Camera PCB Bottom Layer
CMOS Camera PCB Bottom Layer
CMOS Camera PCB Top, Bottom and Silkscreen Layers
CMOS Camera PCB Top, Bottom and Silkscreen Layers

CMOS Camera HDL

The CMOS camera was based on a Digilent Nexys 2 FPGA development board. One of the unique parts of the project is the use of the on-board cellular RAM in synchronous (burst) mode. I could find no sample projects on the internet that used the RAM in its burst mode. A large portion of the project was dedicated to making the cellular RAM burst mode controller.

CMOS Camera HDL Source

The project was designed in Xilinx ISE. The project can be found here:

CMOS Camera FPGA Project

CMOS Camera Software

As with my other projects that use the NMPSM processor, assembly language had to be written to control the project.

CMOS Camera Software Source