Hi,
ich versuche gerade einen linearen CCD Sensor auszulesen, genauer gesagt
einen TCD1304AP.
Hier ist das Datenblatt:
http://www.oceanoptics.com/technical/detectortoshibatcd1304ap.pdf
Von der Software her ist alles klar, jedoch habe ich eine Frage zur
Schaltung, welche auf Seite 12 erwähnt wird. Dort ist zwischen den
Eingängen des CCD Sensors und dem Mikrocontroller ein TC74HC04P, also
ein Inverter. Hat jemande eine Idee wieso? Soll das eine Art
Schmitt-Trigger darstellen, um steile Signalflanken zu haben?
Und der Transistor TR1 soll ein "2SA1015-Y" sein, kennt da jemand einen
gängigeren Ersatztyp? Eigentlich sollte dieser nicht kritisch sein oder?
Jz
Hi,
der 74xx04 wird gerne als Treiber verwendet. Auch hier ist die Kapazität
am SH-Pin 600pF. Das überfordert die meisten Steuer-ICs(µC). Das der
74xx04 invertiert ist eben so. Macht aber nichts aus. Der Transistor
kann bei der niedrigen Taktfrequenz auch z.B. ein 2N2369 sein. Kommt
nicht drauf an. Allerdings musst du das Timing genau einhalten. Einmal
einen Glitch in den Signalen oder zur falschen Zeit geschaltet und die
Ladungen im Sensor landen im Irgendwo; nur nicht mehr im
Ausgangsverstärker.
Hi,
danke für die schnelle Antwort. Das mit der großen Kapazität des SH Pins
habe ich nicht gesehen, das ergibt Sinn.
Hast du diesen CCD Sensor schon verwendet? Laut Datenblatt ist ja die
Versorgungsspannung typ. 4V, max. 5,5V. Sind 5V dann in Ordnung als
Spannung, oder nimmt einem der Sensor das auf Dauer übel? Falls nicht
wäre ein 74LVX04 als Treiber + Pegelwandler eine Idee, oder?
Wegen den Timings bin ich schon auf Assembler umgestiegen, sonst wird es
schwierig diese so genau einzuhalten....
hinz schrieb:> BC557C ist dann doch gängiger.
Das ist ein PNP-Transistor, der geht nicht. Es sollte schon ein
schneller NPN-Transistor sein. Wobei ich noch nie einen CCD bei so
geringen Frequenzen betrieben habe. Das waren immer deutliche 2-stellige
MHz.
>> BC557C ist dann doch gängiger.>> Das ist ein PNP-Transistor, der geht nicht. Es sollte schon ein> schneller NPN-Transistor sein. Wobei ich noch nie einen CCD bei so> geringen Frequenzen betrieben habe. Das waren immer deutliche 2-stellige> MHz.
Laut Beispielschaltung sollte es ein PNP Transistor sein, und ich wollte
den CCD bei 0,8 MHz betreiben, d.h. nur 0,2 MHz Datentakt.
Jz schrieb:> Hast du diesen CCD Sensor schon verwendet? Laut Datenblatt ist ja die> Versorgungsspannung typ. 4V, max. 5,5V. Sind 5V dann in Ordnung als> Spannung, oder nimmt einem der Sensor das auf Dauer übel? Falls nicht> wäre ein 74LVX04 als Treiber + Pegelwandler eine Idee, oder?
Hi,
nein, diesen nicht. Aber viele andere. Dieser Sensor ist auch ein wenig
was besonderes, da er nur mit einer Taktphase läuft. Das ist
ungewöhnlich. Meist sind das 2 oder mehr. Ausserdem hat er keinen Reset
für den Ausgangsverstärker, so dass eine CDS-Abtastung nicht möglich
ist. Vielleicht ist im dem 'Logic Block' eine entsprechende Schaltung
enthalten. Dazu steht leider nicht im Datenblatt.
Wenn im Datenblatt steht, dass er bis 5,5V funktioniert, dann ist das
auch so. Allerdings geht die Performance von CCDs schleichend in den
Keller. Mit jedem Parameter, der nicht 'nominal' entspricht handelt man
sich potentiell eine Verschlechterung ein. Mach doch einfach zwei
Schottkydioden in die Versorgungsleitung.
Der 74LVX04 ist eher ungeeignet, da er insgesamt nur wenig Strom liefern
kann. Besser ist ein HC-Typ. Wenn es noch viel schneller werden soll
kann man die AC-Typen nehmen und dabei mehrere Gatter parallel schalten.
Das würde ich auch bei dem HC-Typen am SH-Pin machen.
Jz schrieb:> Laut Beispielschaltung sollte es ein PNP Transistor sein, und ich wollte> den CCD bei 0,8 MHz betreiben, d.h. nur 0,2 MHz Datentakt.
Ja sorry,
da habe ich mich geirrt. An fast allen CCDs wird ein NPN-Transistor
verwendet. Dieser CCD ist anscheinend doch etwas 'anders'.
Hallo Jz,
Ich bin auch gerade dabei eine Ansteuerung für einen TCD1304 zu
entwickeln.
Das ganze soll dabei ein Arduino Mega2560 übernehmen. Vorerst habe ich
einmal versucht nur die Ansteuersignale über Portmanipulation zu
programmieren, um die Analogausgabe auf einem Oszilloskop darstellen zu
können. Dabei habe ich auch die Schaltung wie im Datenblatt beschrieben
verwendet und den CCD mit 1MHz CLK betrieben.
Jetzt bekomme ich zwar ein Signal am Analogausgang, das ganze sieht aber
so aus als würden sich alle Pixel wie 1 Pixel verhalten. Habe schon
alles mögliche probiert, Stundenlang in Google gesucht und weiß jetzt
nicht mehr weiter.
Du hast geschrieben das für dich von der Software her alles klar wäre.
Welches System verwendest du für die Ansteuerung?
Könntest du deinen Programmcode hier mal posten?
Hast du den TCD1304 schon erfolgreich auslesen können?
Wäre dir für deine Hilfe sehr dankbar!!!
Wenn keine Optik vor dem Sensor ist überblendet er meist, dadurch
springt die Ladung von einem zum nächsten Pixel (Blooming) und du
bekommst nur Müll.
Versuch den Sensor mal abzudunkeln, was dann passiert. Möglicherweise
ist auch ein Fehler in der SW (Timing).
Werner
Werner schrieb:> Wenn keine Optik vor dem Sensor ist überblendet er meist, dadurch> springt die Ladung von einem zum nächsten Pixel (Blooming) und du> bekommst nur Müll.> Versuch den Sensor mal abzudunkeln, was dann passiert.
Danke für deinen Hinweis. Der Sensor ist abgedeckt, ich habe einen
IR-Filter davor angebracht und leuchte dann mit einer IR-LED auf den
Sensor um in zu Belichten.
Mein Ziel ist es später zwischen IR-LED und dem Sensor, einen Bolzen zu
platzieren, um über den Schatten der auf dem Sensor entsteht den
Durchmesser des Bolzens zu ermitteln.
Werner schrieb:> Möglicherweise> ist auch ein Fehler in der SW (Timing).
Das mit dem Timing ist wirklich nicht einfach und ich habe schon sehr
viel probiert. Seit dem letzten mal als ich hier gepostet habe hat sich
auch etwas verändert. Am Oszilloskop erkennt man jetzt beim Belichten
eine Veränderung, die aussieht als wären es 2 Pixel. Der Rest verhält
sich so, dass sich der Spannungspegel durchgehend gleich erhöht.
Ich habe einmal ein paar Oszilloskopbilder erstellt, die das Timing von
ICG, SH, fM und den Analogausgang des Sensors zeigen.
Weiters ist mir noch aufgefallen das der Inverter den ich Verwende
(HEF4069UB) kein sehr schönes Signal liefert. Vielleicht ist das auch
ein Grund warum die Pixel nicht ausgelesen werden können? Werde mir auf
jedenfall noch den im Datenblatt des TCD1304DG vorgeschlagenen TC74HC04P
besorgen.
Michael schrieb:> Der Rest verhält> sich so, dass sich der Spannungspegel durchgehend gleich erhöht.
Was ich noch hinzufügen sollte, die Spannung sinkt erst wieder wenn der
Sensor ganz abgedeckt ist.
Also meiner Meinung nach sollte es sich so verhalten, dass wenn ich
etwas zwischen IR-LED und Sensor halte, z.B einen Kugelschreiber, sich
der Teil der Pixel die sich im Schatten befinden weniger Spannung
ausgeben sollten.
Das schließe ich daraus, weil ich das bereits mit einem TAOS TSL1406R
probiert habe und mit dem funktioniert es. Daher denke ich, sollte das
mit dem TCD1304DG, auch funktionieren. Oder liege ich da falsch??
Möglicherweise funktioniert auch das Löschen der Pixel nicht richtig.
Ich habe ein ähnliches Projekt mit einem ILX558K, bei dem ich den
Schattenwurf auswerte.
Ich belichte den Sensor nur kurz (ca. 50ms) mit einer roten LED und lese
dann aus, dannach lese ich ohne zu belichten aus, dadurch wird die
Ladung der Pixel gelöscht.
Das Signal nach dem Inverter sieht nicht so toll aus. Nimm doch mal
einen 74HC04 und versuch mal ein Oszibild mit einem kompletten
Auslesevorgang zu machen (ohne Belichtung, mit voller Belichtung und mit
einem Schatten)
Werner