Development of a USB camera using a general purpose
Abstract: The aim for this project has been to develop a low cost USB camera, that
uses a general purpose microcontroller to control the image sensor. The
camera is intended to be used in a general purpose development platform at
Optronic AB. The development platform is designed to be used in many various
projects and thus the camera also has to be as flexible as possible. The
origin of the project is an existing product that needed improvements. The
predecessor of this camera employed a Complex Programmable Logic Device
(CPLD) to generate the control signals to the image sensor, an IBIS5-B-1300
from Cypress semiconductor.
In this design, an EZ-USB FX2LP microcontroller, also from Cypress
semiconductor, will be responsible for generating the necessary control
signals for the image sensor. The microcontroller was chosen mainly because
it is a high-speed USB microcontroller and that it has a General
Programmable Interface (GPIF). The GPIF excludes the need for any
additional logic that interfaces the microcontroller to the image sensor.
This reduces the total cost of the camera. The microcontroller also has up
to four large endpoint First In - First Out (FIFO) queues. The endpoint
FIFOs and the GPIF makes the microcontroller suitable for controlling
peripheral devices and handling high speed data transfers. The GPIF of the
EZ-USB FX2LP microcontroller has never been used to control this kind of
image sensor before and therefore the aim of the project is also to examine
if the microcontroller is up for the task. In case of success the
construction will become more cost effective than its predecessor. The
switch from CPLD to microcontroller should not have an impact on the quality
of the images produced, but will reduce the cost and increase the
flexibility of the system. Even though only one main component is replaced
it is necessary to develop a completely new design, for both hardware and
Mainly in software since code for a CPLD is written in hardware
description language such as VHDL or Verilog, and the code for a
microcontroller is written in C. But also the hardware is an entirely new
design using only small blocks such as power supply from the old design.
The work done and considerations made during development of this
camera is treated in detail in this report.
To facilitate this work a development kit from Cypress semiconductor
have been used (CY3684). The kit includes a development board that
employs the EZ-USB FX2LP microcontroller and a software development
environment including example code.
CLICK HERE TO DOWNLOAD THE WHOLE ESSAY. (in PDF format)