Hallo zusammen, ich versuche zur Zeit eine Schaltung zum Auslesen und Digitalisieren eines CCD-Zeilensensors (TCD1103gfg) zu entwerfen. Die benötigten Timing- und Taktsignale für den Sensor soll ein 8bit-MCU zur Verfügung stellen. Kopfschmerzen bereitet mir vor allem die A/D-Wandlung, da bin ich nämlich noch total unerfahren. Die Daten sollen vom ADC via SPI an einen Raspberry Pi geschickt werden. Ich habe mir folgendes Setup überlegt (siehe auch angehängtes Bild): * ADC ADS8329 (16bit, 1Msps ADC mit single unipolar input) * als Verstärker vor dem ADC hab ich den LT6220 gewählt. Die Widerstände hab ich so dimensioniert, dass das Sensor-Signal den ADC voll aussteuert (siehe angehängte Simulationergebnisse). * das Ausgangssignal des Zeilensensors hat eine Datenrate von 200kHz, 1 Msps Sampling rate vom ADC sollte also ausreichen Könnte das so funktionieren? Was haltet ihr von der Lösung? Hat jemand von euch vielleicht ein paar Tipps für mich? Viele Grüße Franz
:
Bearbeitet durch User
Hallo Durch den Sample-Hold im CCD hast du ein zeitdiskretes Signal. Du musst den CCD-Takt mit dem AD-Wandler-Takt synchronisieren. Es genügt mit dem Schiebetakt abzutasten. Abtastung in der Mitte des Pixels. Was willst du mit dem CCD machen? Der ist sehr lichtempfindlich.
karadur schrieb: > Der ist sehr lichtempfindlich. Das trifft auf alle CCD-Zeilensensoren zu, die ich kenne. Franz S. schrieb: > Könnte das so funktionieren? Was haltet ihr von der Lösung? Ja, was willst Du damit machen?
5.5 μm × 64 μm sind schon sehr groß und empfindlich.
Dieter F. schrieb: > Ja, was willst Du damit machen? Ich möchte ein DIY Spektrometer ähnlich zu diesem Projekt hier bauen: https://hackaday.io/project/10738-ottervis-lgl-spectrophotometer karadur schrieb: > Du musst den CCD-Takt mit dem AD-Wandler-Takt synchronisieren. Es genügt mit dem Schiebetakt abzutasten. Danke für den Hinweis! Aber wie mache ich das am sinnvollsten? Dazu müsste ich den Output vom ADC doch über den µC routen, da der AD-Wandler-Takt nur über die SCLK vom SPI extern vorgegeben werden kann, oder? Genau das wollte ich eigentlich vermeiden, da ich so einen sehr günstigen µC verwenden und die Daten direkt an den RPi schicken kann.
Ich würde die Kamera komplett vom RPi trennen. Wenn dein Controller schnell genug ist sollte er den AD-Wandler und den CCD steuern können und eine Zeile im RAM für den RPi puffern können. Du könntest das Signal auch vor verarbeiten um z.B. den Shutter zu verändern. Die von mir entwickelten Zeilenkameras hatten einen FIFO um die Kamera vom PC zu entkoppeln. PS: 16 Bit halte ich für optimistisch.
Franz S. schrieb: > Ich möchte ein DIY Spektrometer ähnlich zu diesem Projekt hier bauen: > https://hackaday.io/project/10738-ottervis-lgl-spectrophotometer Das habe ich mir gedacht. Ich spiele gerade mit dem TCD1304 und versuche mich am Shutter. Davor habe ich mit dem TCD1201 experimentiert - den aber wegen des fehlenden Shutters wieder verworfen. Mein erster Ansatz war einfaches "Bit-Banging" nach dem Datenblatt. Da dachte ich schon (nach einigen erfolglosen Abenden) dass ich das Datenblatt schlicht nicht oder falsch verstehe. Dem war aber nicht so - da hat mir die Empfindlichkeit des CCD einen Streich gespielt. Es hat funktioniert - nur habe ich viel zu viel Licht auf den Sensor kommen lassen und den vollkommen "übersteuert". Jetzt, mit dem TCD1304, arbeite ich mit Timern und CTC bzw. PWM. Das ist übersichtlicher und eigentlich auch einfacher. Wenn man genau nach Datenblatt vorgeht funktioniert es nach einer Erfahrung auch. Da schnelle ADCs relativ teuer sind und ich hier ein paar ATXMega der A-Serie liegen habe werde ich alles auf den XMega portieren und den ADC von dort nutzen. Was ich so an Software im Netz gefunden habe hat bei mir leider nicht so recht funktioniert. Macht aber nichts, ich will ja etwas lernen und herausfinden ob ich es hinbekomme. Mein Ziel ist übrigens nicht ein Spektrometer sondern eine genaue Positionsmessung (das Spektrometer nehme ich aber nach Möglichkeit auf dem Weg dahin mit :-) - die mechanischen Anforderungen stellen dabei für mich die größere Hürde dar). Ggf. kann Karadur (er hat wohl Erfahrung mit CCD-Sensoren) ja ein wenig aus dem Nähkästchen plaudern ... :-)
Hallo Vorweg: diesen CCD kenne ich nicht. Ich habe mit Sony CCDs gearbeitet. Aus dem Datenblatt entnehme ich das 2 Takte einem Pixel entsprechen. Am Ausgang sitzt eine Sample-Hold-Stufe zu der muss man den AD-Wandler synchronisieren. Es scheint so als wenn der Clock L ist der Hold-Zustand aktiv ist. ( Seite 8 im Datenbl. ) Um den Helligkeitswert ohne den Dunkelstromfehler zu bekommen muss man die Dummypixel D17-D30 messen ( Dunkelstrom des CCD )und vom Signalwert abziehen. Habe ich mit Correlated-double-sampling gemacht. Mit dem Shutter muss man experimentieren. Der CCD muss in ein innen geschwärztes Gehäuse und es darf kein Fremdlicht in den Aufbau. In einem Büroraum ist der CCD weit übersteuert. Den Fehler hatte ich auch gemacht. Erst nachdem ich eine Optik mit Blende vor dem CCD hatte konnte man sinnvolle Signale auf dem Scope sehen. Bei meinen Schaltungen kam nach dem Transistorpuffer ein Kondensator um den Gleichspannungsanteil zu trennen. Dann kann man den AD-Wandler besser ausnutzen.
Danke für eure Hinweise! > Am Ausgang sitzt eine Sample-Hold-Stufe zu der muss man den AD-Wandler synchronisieren. Es scheint so als wenn der Clock L ist der Hold-Zustand aktiv ist. ( Seite 8 im Datenbl. ) Dann werde ich wohl nicht umhin kommen, mir einen besseren µC zu suchen... > Um den Helligkeitswert ohne den Dunkelstromfehler zu bekommen muss man die Dummypixel D17-D30 messen ( Dunkelstrom des CCD )und vom Signalwert abziehen. Habe ich mit Correlated-double-sampling gemacht. Das hatte ich noch gar nicht auf dem Schirm, danke! > PS: 16 Bit halte ich für optimistisch. Warum hältst du das für optimistisch?
Bei 3V sind 16bit ca. 46uV LSB.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.