2
\$\begingroup\$

I have been trying to incorporate CCD linear array into my circuit. However, I have never dealt with electric shutter functions which are necessary to operate the CCD. Here is the link to the datasheet (pg 2,6-8): http //oceanoptics.com/wp-content/uploads/Toshiba-TCD1304AP-CCD-array.pdf

Here are the parts that I'm struggling with. From the figure shown below, I know I need to have some sort of "function generation" for three inputs.

enter image description here

Here is the waveform as a function of time, which has to be maintained.

enter image description here

Well, I have never done anything as complicated as before, I don't know where to start, any pointers would be good. I'm hoping to do this in raspberry pi 3.

\$\endgroup\$
4
  • \$\begingroup\$ I done, some years ago, a similar task to drive a Sony CDD. I built the logic circuit with a PLD. \$\endgroup\$
    – Antonio
    Commented Dec 5, 2016 at 13:15
  • 1
    \$\begingroup\$ @Antonio Do you think I can achieve this sort of shutter responses with fast inverter IC chips (nxp.com/documents/data_sheet/74HC_HCT04.pdf). Your help in this would be immense. \$\endgroup\$
    – pozza
    Commented Dec 11, 2016 at 22:06
  • \$\begingroup\$ The logic gate you linked may be good, but take care about the propagation delay. You can try. \$\endgroup\$
    – Antonio
    Commented Dec 12, 2016 at 15:45
  • 1
    \$\begingroup\$ You'll probably want an oscilloscope or logic analyzer, and be familliar with writing low level drivers \$\endgroup\$
    – Voltage Spike
    Commented Jan 5, 2017 at 17:44

2 Answers 2

1
\$\begingroup\$

You should be able to do this directly by connecting Master clock, shift gate and integration clear gate directly to the GPIO on the PI. The 3.3V signal from the GPIO should be within the limits stated in the CCD datasheet.

Write a loop that does the low level switching of the GPIO to mirror the required waveforms from the datasheet.

See this article on tips on getting good performance when using the GPIO: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

And also this article for code-examples for direct access to the GPIO: http://elinux.org/RPi_GPIO_Code_Samples#Direct_register_access

The main challenge is to switch the GPIO fast enough for the master clock, but this can be solved by writing directly to the low-level GPIO registers. The hardest part might be to synchronize the switching of ICG and Master clock to keep the signal within the 20ns limit, but this can be done by switching Master Clock and ICG in a single write to the GPIO-registers. Or you can simply perform the switching of Master Clock after you have flipped the ICG.

\$\endgroup\$
1
\$\begingroup\$

I won't say it can't be done with the rpi, but using the PRU on beaglebone or simply an MCU with timers will make your life much easier.

Have a look at tcd1304.wordpress.com for driving and reading a TCD1304AP or TCD1304DG with an STM32F4 ARM processor. The site should have most everything to get you started.

If you're more an arduino/atmel kind of person take a look at:
http://davidallmon.com/pages/ad7667-spectrograph
I didn't look to closely at the code, but I think he drives the TCD1304 by carefully adjusting the number of instructions in his program loops (please do correct me if I'm wrong).

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.