Reverse engineering a linear CCD board

One of my long overdue projects is to reuse a couple of linear CCD sensors from old flat bed scanners. This post is just the process of reverse engineer one of the pcb boards.

The CCD sensors doesn’t have any kind of markins on top, which is kind of obvious…you don’t wont to cover the sensor. I wasn’t very familiar with this kind of devices and with a quick googling around I found out that this kind of chips have the name underneath the package (oh, duhhh…) but I wasn’t comfortable desoldering the sensor, I was afraid I could damage it through the process.

I kept on looking for CCD images until I found one that looked like the one I have. It was an ILX524KA and the photo was from an ebay listing.

Google image search of CCD sensors with one quite similar to the one I have (red arrow).

The sensor is a Sony “reduction type CCD linear sensor developed for color image scanner”. I looked up for the datasheet and compared the pinout (mainly Vdd, GND and No Connection pins) with the board I have but unfortunately it was different. But with all that searching I found out that Sony has several of this ILXxxx CCDs so I went through a few of this devices datasheets.

Some of the candidates

The ILX518 and ILX718 have a different package. The ILX724 has the same pinout as the ILX524, so this wasn’t either. Finally I found one which seems to be the one I have, the ILX548K; a reduction type CCD linear sensor developed for color image scanner, capable of reading A4-size documents at a density of 600DPI and with 16020 pixels (5340 pixels for each color row).

The datasheet has an application circuit with the CCD sensor, three transistors, a 74AC04 (six NOT gates) and a bunch of passives components. The board I have has the transistors (PMSS3904) and the passives components used for signal conditioning the analog RGB outputs but it has a 74HC86 (four X-ORs) instead of the inverters. To see how the circuit was implemented and to find out how to hook up a microcontroller to the PCB connector I decided to try to reverse engineer the PCB. It isn’t a very complicated board but it was the first time I tried to do this so it was a nice little exercise.

I took photos of the board and used GIMP to align both sides of the PCB, after some spinning, mirroring, resizing and making transparent one of the sides. Pretty much the entire circuit was traced out only by visual inspection (as I said, it is not a very complicated PCB) and a few connection needed the use of a multimeter.

The final circuit looks something like this;

It doesn’t have some of the power stuff and the infrared sensor section.

I still have the controller PCB. I powered both boards and hooked up my oscilloscope to see If I could find any signal. Luckily the controller board was working and it showed activity even though the board itself wasn’t connected to a PC (It used a parallel port).

There were a lot of interesting signals but I only have a 2 channel osciloscope, so I used one channel as a reference (ROG) and with the other channel I probed the rest of the signals. I then stitched the images together and got something that resemble the graphs in the datasheet.

It seems that RS and CLP are inverted. The circuit in the datasheet uses inverters to drive the pins so I thought I probed the signal before the NOT-gate. The thing is my board doesn’t use inverters it uses an XOR gate but I don’t see how this could be doing the level inversion.

Some basic theory

I had to do some research in order to understand the signals and the pins functions (the datasheet wasn’t extremely helpful). I won’t pretend to understand all the ins and outs of CCD technology, this is just a basic sumary assembled from varios sources.[c1] [c2] [c3]

In the photo-sensitive area of each pixel, light is converted into electrons that are collected in a semiconductor “bucket.” The signal must move out of the photosensitive area of the chip, and eventually off the chip itself.

In a one-dimensional type CCD the charge is collected in an adjacent storage gate. The signal charge is then transferred to the horizontal shift register simultaneously for all pixels.  To move the charges the ΦROG signals are used.

Read out gate signal

In a 2-phase CCD, the signal charge (the “buckets”) is transferred by applying two clock pulses with different voltage levels (high and low level). Φ1 and  Φ2 serves for this purpose.

Charge transfer

The accumulated charge must be output as a voltage signal. The result of charge-to-voltage conversion is a very weak voltage that must be made strong before it can be handed off to the sensor. The most popular method for detecting the signal charge of a CCD is the Floating Diffusion Amplifier. It consist of two MOSFETs, one for reset and the other one for charge-to-voltage conversion. The charge transferred to the detection node is converted into a voltage by the amplifier MOSFET via the relation Q=CV.  To prepare for the next signal charge (againg, the next “bucket”), the floating diffusion is first drained of the previous charge using the reset MOSFET. This reset or zero signal level is converted to a voltage and immediately seen off chip which is processed as a reference level. The charge is then shifted from the last phase within the CCD and dumped onto the floating diffusion. The resulting change in potential is converted into a voltage and sensed off chip. The difference between the reference or reset level and the potential shift of the floating diffusion level determines the signal.  The ΦRS signal is used to reset the charge.

Reset transitor

Even after reset, some charge always remains in the floating diffusion storage region. This remaining charge represents noise and is eliminated using a method called CDS (Correlated Double Sampling).  The output is clamped to a known voltage, some of the references talk about clamping it to ground, SONY talks about a DC level. The ΦCLP pin serves this purpose.

Signal chain with clamp switch

In this particular CCD sensor the clamping part is internal but the sample-and-hold section is done externally. The main board uses a Wolfong WM8143-10 CCD signal processor,  integrates the analogue signal conditioning required by CCD sensors with a 10-bit ADC. It has the circuitry for sampling the signal and It even includes a section to implement Correlated Double Sampling with a clamp switch. This is probably for CCD sensors that don’t implement the clamping internally.

The next step It’s to hook up the CCD board to a microcontroller, replicate the driving signals and see what I get.