Linear CCD Array

Thread Starter

CVMichael

Joined Aug 3, 2007
419
Does anyone have any experience in connecting a Linear CCD array to a Microcontroller ?

I am looking for a Linear CCD Array with 2048 pixels, this is one I found just now, I need to process the readings extreemly fast, and pass the result to a computer.
http://www.dalsa.com/sensors/products/productdetails.asp?ProductID=IT-P1-2048

I only need to pass to the computer the position or the brightest pixel on the CCD array, and the computer will do further processing.

So anyone has a clue on how to do this ?
 

SgtWookie

Joined Jul 17, 2007
22,230
What do you call "extremely fast"?

The output dynamic range of that device is typically 7500:1. I'm thinking you'd need a 13 bit ADC in order to not lose resolution. The more bits, the longer it takes to get an output. I'm looking at a datasheet for an ST Microelectronics uC (STR71xF) that has a 12 bit ADC with a 1kHz conversion rate. That would take over 2 seconds to just convert the data from a single scan.

Most of Microchip's PIC uC's have 10-bit ADCs. Their PIC32 series can process up to 500ks/s, or perhaps scan your complete CCD 200 times/sec (this is a wild guess, your mileage may vary considerably).
But, there's that loss of resolution thing; going from 13 bits to 10 bits. Instead of 8192 discrete steps, you'd have 1024.

uC's don't typically have a lot of bits for their ADC's because they're pretty noisy internally. If you need more accuracy, you need to go with discrete ADC IC's, and separate the ADC's from the uC using optoisolators. They also need to have separate power supplies, or the digital noise will be coupled over to the analog ADC side. Sort of like inviting a punk band to perform in a public library.

No, I haven't coupled a CCD to a uC. Just throwing some ideas your way.
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
I wish there was more help for using this CCD array, since I made the first post, I've been searching on the net hoping to find something, but nothing...

If I could see a schematic where this CCD array is in use, maybe I can understand how to use it, and plug it in the device I need to build...

I was thinking to buy it, but if I can't figure out how to use it, then it's a waste of money...
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
I am still interesting in this...

Google started to give new results when I search for CCD Array.

I found this schematic for reading the analog output from the CCD Array, but i can't make heads or tails of it:
http://www.pjrc.com/tech/ccd/analog.html

I don't understand anything there... if anyone understands it, can you explain to me what is going on there ?

Thanks
 

SgtWookie

Joined Jul 17, 2007
22,230
He could only be talking about ON / OFF processing, not resolution - but basically, that's what you're looking for.

You're just looking for the brightest cell. This might be a decent approach. Somewhere, you'll need AGC to "weed out" the lower-intensity cells.

But we still really don't know what you're trying to do.
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
I am still trying make a device that would masure distance using laser.

Here is my original thread: Find distance using laser ?

But this time, I don't want to find the distance by measuring the time of return of the light, because light is too fast for something like this...

Instead I want to find the distance by getting the point on the CDD (where the laser dot is), and triangulate the distance like that..

I chose to do it with a CDD, because you read only one line (exactly paralel to the laser), and therefore you read less information.

I tried to do it with a web-cam, but I got it with 5 frames per second, and that is WAY to slow for what I need. Also because from the image from the web-cam, I actually read only one line of data from it, and the rest of the data is useless...

See this link for reading with web-cam: http://www.pages.drexel.edu/~twd25/webcam_laser_ranger.html

On top of that, a CCD array is also much faster in terms of MHz.... so very big difference compared to a web-cam...

So, I want to do the same thing as the we-cam one, except I have only one line on the CCD array, and reading that line much faster.

Also... the CCD array has 2048 pixels compared to a line in the 800x600 resolution of the web-cam.
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
OK... Let's do this step by step...

I am thinking to risk it, and buy the CCD array, once I have it, hopefuly I will be able to figure out how to read the data from it...

To start this... what tools do I need ? (I hope I won't need an oscilloscope cuz I don't have one)

By reading the datasheet for CCD143A, I saw that I have to give an impulse to Transfer Clock "x" pin 18, and give the Transport clock "t" pin 19, 1024 impulses for each pixel to output on "Out A" pin 2 and "Out B" pin 26

I still did not get what the other pins do, can you (or anyone else) help me on that ?

For example, what is:
VPG - Photogate
VDD - Output amplifier drain
VCG - Sample-on-hold clock ground
VRD - Reset transistor drain
VEI - Electrical input bias
VT - Analog Transport Shift Register DC Electrode
SHGA, SHCA, SHGB, SHCB - Sample-on-hold Gate & Clock
 

Attachments

scubasteve_911

Joined Dec 27, 2007
1,203
I think the problem here is that there isn't a lot of ready-made schematics available for your reference. Also, it isn't that common for someone to know about these unless they worked with them in the past.

It is a lot to ask 'Show me how to use this sensor', since we'd have to comb through the datasheet and draw up a schematic.
 

Scanman

Joined Aug 30, 2008
4
Hi,

Are you still playing with this?
I am developing my own system based on Sony ILX554B and homemade acyrlic cylinder lens. Not so easy stuff.
I am using Xilinx FPGA for generating clock pulses and TI TLV990-21 AFE (Analog Front End) for correlated double sampling / 10 bit data conversion from CCD output.
The FPGA will read in all the pixels and do a parabolic curve fit to determine the sub-pixel centroid or peak. This is more complicated than I hoped and involves a lot of VHDL code for the FPGA along with some support electronics for the CCD chip.
I purchased a camera from Eureca for original experiments. It uses the parallel port.
I don't know how many scans per sec I'm getting, but approx rate for ILX554B is around 900 readouts per sec base on 2Mhz clock. Eureca can supply USB camera as well. I paid around $600 CAD for it.

http://www.eureca.de/pdf/optoelectronic/line-scan-camera-boards/LSO-2048SH1-8EPP.pdf

If interested I'll keep you posted on my progress.

Scanman
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
Everything you said is way over my head...

I want to do it as simple as possible (from hardware point of view).

If I can figure out how to comunicate with the CCD, then I want to interface it directly to a microcontroller, and program the microcontroller to read and output the results I need.

The problem with me, is that I'm a beginner in electronics (no school in electronics), but very good at programming (school + job in programming). Also, I don't know Assembly language (I never needed to learn it), so I have to program the microcontroller in C (I already purchased MikroC).

That's why I prefer to do it using software. I just need to know how to read the info, and the rest i can do it myself (I hope)

But eitherway, keep me posted with your progress, maybe I will find it usefull, or maybe you can simplify it for me ? :)
 

Scanman

Joined Aug 30, 2008
4
This is the simplest thing I could find:

http://electronicdesign.com/Articles/Index.cfm?AD=1&ArticleID=1315

You can maybe adapt the micro to communicate to it.

Sony chips like ILX511 and ILX554 are easiest to use compared to CCD143A. Fast chips need multi phase clocks and often have multiple outputs that need multiplexing to ADC.
This is tough for a beginner to attempt. You should have a digital scope to help verify everything before you plug in an expensive CCD chip.

How many scans per second do you need?
I assume you need high accuracy for triangulation. How accurate?
It might be possible to use a 512 pixel chip along with a simple math formula (sub pixel) to get 4 - 10 times the resolution close to 2048. Less pixels = faster readout time.

It may be easier and cheaper to buy a ready made linear camera with a fast SPI output for communication to the micro.

Regards,
Scanman
 

boff1

Joined Oct 15, 2008
26
Hi there,

A few years ago I had some success with linear CCD's using a pic to generate the clock and control signals. Are you still interested? If so I could dig out the code etc. I was making a simple spectrometer that was able to display the emission lines from a low energy light bulb onto a PC screen. Not very accurate but it did work! I used a Toshiba TCD 102D which has 2048 elements. The analogue output was fed to a Picoscope ADC and then to the PC via the printer port.
 

Thread Starter

CVMichael

Joined Aug 3, 2007
419
Hi boff1,

If you could, it would be nice... but if the code is in ASM, I won't understand it (I don't know ASM at all).

I'm mostly interested in the hardware part (the circuit schematic), I'm sure I can figure out the programming on my own.
 

boff1

Joined Oct 15, 2008
26
I use JAL for most of my pic programming - it's a bit like basic or pascal or somewhere in between.

I will try an send you a PM rather than clutter up the thread.

cheers
 

thingmaker3

Joined May 16, 2005
5,083
Boff1, if you would be so kind... there may be folk other than CVMicheal who are interested. I would like to read the exchange myself, though I might be a bit lost following the software. You could create a new thread for discussion of the code.
 

boff1

Joined Oct 15, 2008
26
Here is another suggestion. If you have a defunct scanner - I had a couple that failed to operate correctly - then you can use the output from the CCD.
You will need to investigate the board to find the output from the CCD and you will definitely need a 'scope for this!. These chips give an output for each colour Red Blue and Green but you only need to use one.
By modifying the optics I have been able to dispay an output on a PC screen.(Soundscope or similar http://www.oscilloscope-lib.com)

Some quite interesting effects can be observed particulary when a refraction grating or prism is used to split the light beam into its constituent colours.
 
Top