forwarded message from MIHL@wvnvm.wvnet.edu

Forwarded with permission.

------- start of forwarded message (RFC 934 encapsulation) -------
To:         <nelson@crynwr.com>
Subject:   qcam
Date:      Fri, 12 Jan 1996 17:52:31 -0500 (EST)

I have seen your page about QuickCam. This is more technical,
but it may be useful for someone.

Both Mac and PC versions of the camera use CDD sensor
which seems to be compatible or at least very similar to
Texas Instruments TC255 CCD. Full description can be found in
'Area Array Image Sensor Products' by TI.

This chip has two 336x243 arrays.
One is the sensing area exposed to light.
Another one is the storage area protected from light.

Light produces charges that accumulate in the sensing array.
The content of the sensing array is then moved to the storage area
one line at a time. Light spoiles the image in the sensing array
during the transfer, so it needs to be fast. In the transfer all
the carges from the sensing area are removed. Thus the exposure
is time between two successive transfers. Once the image is in
the storage area it can be moved out of the chip pixel by pixel
and it takes much longer which is ok, because now light does not
affect those charges.

The pinout of the TC255 is:

      (top view)

|     -------     |
>    |       |    |
|     -------     |

1 IAG  Image Area Gate
2 ADB  +12V
3 GND    0V
4 OUT  pixel output
5 SRG  Shift Register Gate
6 SAG  Storage Area Gate
7 IAG  (same as 1)
8 ABG  Antiblooming Gate

 SRG, SAG, IAG clock signals swing from -10 up to +2 V.
 ABG swings -7..+4, and must be held at -2.5 during frame transfer
 Output amplitude is approximately 1V.
 Power consumption is about 5 mA.

To transfer frame from sensing to the storage area:

IAG  _____/-------\_______/-------\_______... 244 cycles...___
SAG  _/-------\_______/-------\_______/---...              ___
SRG  _/-\_/-\_/-\_/-\_/-\_/-\_/-\_/-\_/-\_...              ___
ABG  -2.5V

To read the line

SAG  __/-------\______________________________________________
SRG  ___________________/-\_/-\ .. 339 cycles .._/-\_/-\______
ABG  -7V
OUT  becomes valid when SRG goes high, it takes <30 ns for it to settle

Frequencies are not very critical. SRG can not go higher 7 MHz,
others are limited by 4 MHz. Very low frequencies will result in
image smearing.

When idle, i.e. no transfers, ABG should be pulsed -7/+4 V with the
frequency about 1 MHz. It is used to help charge dissipation in very bright
areas to prevent spilling in the surrounding pixels. This signal is optional.

- --------------

In the PC version, body of the camera contains only CCD, charge pump to
produce +-12 V, CCD driver to make those wierd votages from TTL levels and
repeater to send CCD output down the cable. That means that it
receives 5V power and TTL signals from the shell ( all the clocks ) and
sends back votage proportional to pixel value. There is an ADC in the
shell right next to PIC which is used to sample and digitize that voltage.
In Mac version everything is pretty much the same, except that PIC is
in the body and instead of one-chip ADC they use a successive approximation
ADC made from a simple logic chips.

BTW, Commands 0xD and 0xF set how many pixels have to be skipped
from the top and left respectively. 0xD sets number of lines skipped,
0xF sets number of quadruples of rows to be skipped. In general qcam
handles pixels in groups of four, probably loops are unrolled in PIC
program to improve speed.

- --gene
------- end -------