![]() |
SCAMP-5c Vision System
1.0.0
An image sensor with a parallel processor on focal plane
|
All information in this documentation is obsolete. For recent information, Please visit: https://scamp.gitlab.io/scamp5d_doc/
SCAMP-5 is a vision chip built in 0.18 um CMOS technology with 256x256 processing elements (PEs). Each element incorporates 7 analogue memories and a relative plethora of digital memories, while reducing the processing element size to less than half its area. A diagram of the functional elements of the system and processor array is shown in figure 1. Within a single processing element, the process of reading or writing these memories to common buses allows sequential, simple computations that can implement complex algorithms. With many PEs operating in parallel in an SIMD (single instruction multiple data) architecture, high speed image processing is made possible.
Documentation of the SPI library for the arm linux environment: Here
The SCAMP-5c system has its own programming language with a customized toolchain. The toolchain compiles source code into machine code (ICW file). A software called APRON is used to load the machine code into the system as well as host the system on PC through a GUI. Alternatively, a source code can be executed as a simulation in APRON directly. The source code is edited using Crimson Editor as it has the shortcut for the toolchain. The hardware implemention of SCAMP-5c is partially based on a FPGA development board from Opal-Kelly, so the coresspoonding driver is required.
One can follow the steps in Development Environment Setup to setup the development environment.
Development Environment Guide introduces the development environment.
The following program simply makes the SCAMP-5c into a webcam, which sends every frame captured to the host PC without any significant image processing.
To run this program, following these steps:
As indicated by the comment lines, there are two sections in the sourcecode: the host configuration and the scamp5c program. If modification has been done to the host configuration section, APRON need to be restarted. If only the program section has been changed, APRON will automatically update the program for the system when the compilation (Ctrl-3) is finished.
Note, the location of the bit file and template file can be varied, as long as they are correctly located in line #5 and line #6 in the above code.
Example Guideline introduces all of the examples provided in the repository. To learn the functions in the source code , it is recommanded to search the function name with '.' replaced by '_'. For example, to get an idea of what "usb.aout" is, search for "usb_aout". For those functions with no perfix (e.g. "rpix"), one should search for "pe_" + the function name (e.g. "pe_rpix").