Root/
1 | Programmer's View of Cpia2 |
2 | |
3 | Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a |
4 | division of ST Microelectronics). There are two versions. The first is the |
5 | STV0672, which is capable of up to 30 frames per second (fps) in frame sizes |
6 | up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version, |
7 | which can handle up to 30 fps VGA. Both coprocessors can be attached to two |
8 | CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will |
9 | be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors. |
10 | |
11 | The two chipsets operate almost identically. The core is an 8051 processor, |
12 | running two different versions of firmware. The 672 runs the VP4 video |
13 | processor code, the 676 runs VP5. There are a few differences in register |
14 | mappings for the two chips. In these cases, the symbols defined in the |
15 | header files are marked with VP4 or VP5 as part of the symbol name. |
16 | |
17 | The cameras appear externally as three sets of registers. Setting register |
18 | values is the only way to control the camera. Some settings are |
19 | interdependant, such as the sequence required to power up the camera. I will |
20 | try to make note of all of these cases. |
21 | |
22 | The register sets are called blocks. Block 0 is the system block. This |
23 | section is always powered on when the camera is plugged in. It contains |
24 | registers that control housekeeping functions such as powering up the video |
25 | processor. The video processor is the VP block. These registers control |
26 | how the video from the sensor is processed. Examples are timing registers, |
27 | user mode (vga, qvga), scaling, cropping, framerates, and so on. The last |
28 | block is the video compressor (VC). The video stream sent from the camera is |
29 | compressed as Motion JPEG (JPEGA). The VC controls all of the compression |
30 | parameters. Looking at the file cpia2_registers.h, you can get a full view |
31 | of these registers and the possible values for most of them. |
32 | |
33 | One or more registers can be set or read by sending a usb control message to |
34 | the camera. There are three modes for this. Block mode requests a number |
35 | of contiguous registers. Random mode reads or writes random registers with |
36 | a tuple structure containing address/value pairs. The repeat mode is only |
37 | used by VP4 to load a firmware patch. It contains a starting address and |
38 | a sequence of bytes to be written into a gpio port. |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9