Forum: Mikrocontroller und Digitale Elektronik Analogditigitalwandler für Kamerachip


von Thomas B. (t5b6_de) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,

Ich habe hier einen Kamera-chip welchen ich zu an den PC anschließen 
möchte,
vorerst an die parallele Schnittstelle des PCs, anschließend irgendwann 
mal über USB (eventuel FTDI FT245).

Bitte stellt dazu keine Fragen ob das Sinn macht oder ähnliches, es geht 
hier eher um den sportlichen Ehrgeiz.

Nun brauch ich einen 8 Bit ditital analogwandler, mit dem ich das 
analoge signal von dem Kamera Chip digitalisieren kann, dieser muss 
schnell genug sein.
Der Chip hat eine Auflösung von 384x288 Pixel,
einen Ausgang für den Pixeltakt, (ein impuls für jeden pixel),
einen Ausgang für den Bildtakt (ein Impuls je bildanfang)
einen analogen Ausgang.
Spannungsversorgung ist 5V.

Ich habe den Sensor ersteinmal aufgemotzt, (schnelleren Quarz 
drangemacht)
so kann ich den Analogen Ausgang direkt an die TV-Karte anschließen und 
verwenden, leider ist das bild nur dann nicht pixelgenau.
Somit ist eine Umrechnung á la Bayermatrix nicht möglich.

der Chip stammt aus einer Webcam, die mittlerweile 15 Jahe alt sein 
dürfte.

durch einen langsameren Quarz lässt sich der Pixeltakt beliebig weit 
herunterfahren ohne das das Bild überbelichtet wird. Nun benötige ich 
einen Analog Digitalconverter der eine einigermaßen zügige wandlerzeit 
hat, sodass ich 2-3 Frames/s hinbekomme. nur Leider finde ich bei 
Reichelt oder ähnlichem nichts brauchbares. Optimal wäre ein 
Flash-AD-Wandler, mit 8 Bit Parallelausgang (TTL), damit später auch mal 
höhere framerates drin sind.

Mikrocontroller ist ausgeschlossen, da ich hier keine Möglichkeit habe 
die zu programmieren.
Vorhanden sind: Elektroniker-Ausbildung, Lötwerkzeug 
(Temperaturgeregelt), Lochrasterplatinen, und div. Elektronikbauteile.



Gruß
Thomas

Edit:
Programmiermöglichkeit eines AVR Vorhanden, Kollege leiht mir sicher 
sein programmer.

dann wäre es natürlich schön wenn man nen AVR nutzen könnte um gleich 
von dem Bayermatrix Monochrombild in ein Farbbild umrechen könnte.
Problem dabei ist nur, das ich keinen µC gesehen habe, der solch eine 
menge an Daten speichern kann. (monochrombild + Farbbild + 
Zählervariablen... Grob aufgerundet ~450.000 Bytes)

Gruß
Thomas

von Magnus M. (magnetus) Benutzerseite


Lesenswert?


von Thomas B. (t5b6_de) Benutzerseite


Lesenswert?

Besten dank..
Ich habe dann einen von TI gefunden:
ADC 0820 CCN
auch bekannt unter
TLC 0820 CCN

Flash AD-Wandler, relativ einfache Inbetriebnahme...

Bezüglich der Verwendung eines µC,
Gibt es Mikrocontroller, welche 128kByte RAM haben? Gut, ich weiß, das 
ist für einen µC sehr viel, vorzugsweise Atmel. Google hilft mir da 
leider nicht wirklich weiter.

Achja, und nochmal zur Betonung, kein SMD (unpraktisch beim 
Prototypenbau auf Lochraster).


Gruß Thomas

von holger (Gast)


Lesenswert?

>Bezüglich der Verwendung eines µC,
>Gibt es Mikrocontroller, welche 128kByte RAM haben?

Ja.

>Gut, ich weiß, das
>ist für einen µC sehr viel, vorzugsweise Atmel. Google hilft mir da
>leider nicht wirklich weiter.

Ach mein Gott.

>Achja, und nochmal zur Betonung, kein SMD (unpraktisch beim
>Prototypenbau auf Lochraster).

Ohne SMD kannste gleich knicken.
Zum Echtzeitdigitalisieren mit 10FPS ;) wirst du was schnelles
so in Richtung ARM7 oder Cortex M3 brauchen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Thomas Berends schrieb:
> Gibt es Mikrocontroller, welche 128kByte RAM haben?
> Achja, und nochmal zur Betonung, kein SMD

Nein. Keine Chance.

Du kannst allerdings so viel externen Speicher wie Du willst an einen µC 
im für Dich bastelfreundlichen Gehäuse anschließen, wirst allerdings 
einiges an Bankswitching betreiben müssen, weil der Adressraum der 
bastelfreundlichen µC beschränkt ist.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Thomas Berends schrieb:
>> Gibt es Mikrocontroller, welche 128kByte RAM haben?
>> Achja, und nochmal zur Betonung, kein SMD
>
> Nein. Keine Chance.

Du hast den tiny128 übersehen ;)
Beitrag "Re: Elektronik-Fotos"

von Max D. (Firma: No RISC, no fun.) (metalfan)


Lesenswert?

Wo kriegt man so einen Chip (also den Chip vom TO)?
Der klingt ideal als AVR-Kamera Opfer (und ein Xmega macht bis zu 2 
Megasamples mim ADC)....

von Max D. (Firma: No RISC, no fun.) (metalfan)


Lesenswert?

Nachtrag: Größere Xmegas ham ein Memory interface für einen externen 
RAM....

von Thomas B. (t5b6_de) Benutzerseite


Lesenswert?

Ich denke ein atmega32 mit externem RAM-IC, und genügend IO-Pins dürfte 
genügen,
Echtzeitdigitalisierung, nur im begrenztem Umfang,
15Mhz Quarz reichen bei dem CCD-Modul aus, um auf 54FPS zu kommen,
wenn ich jetzt Sparsam bin, und möchte auf 1FPS runter, benötige ich 
rund 278kHz.
Der Kleinste Quarz ist 1MHz den ich jetzt so finde und auf die Platine 
passt,
das macht dann 3,6fps, entsprechend rund 400.000 Bytes/s

nun eine Frage, ist das mit einem ATMega32 machbar?

Daten vom Port holen,
wenn Pixeltakt auf High ist,
Adresse des SRAMs Berechnen und auf 3 Ports geben (Adresse 17Bit = 3x8 
Bit Ports)

Daten auf port legen, CS und WR schalten,

und das so lange bis ein Bild komplett übertragen wurde.

ob das in ein paar Taktzyklen möglich sit, weiß ich so nicht.
Je höher der Takt des µC desto sicherer dürfte das funktionieren.

Gruß
Thomas

von Frank K. (fchk)


Lesenswert?

Thomas Berends schrieb:
> Hallo,
>
> Ich habe hier einen Kamera-chip welchen ich zu an den PC anschließen
> möchte,
> vorerst an die parallele Schnittstelle des PCs, anschließend irgendwann
> mal über USB (eventuel FTDI FT245).

Früher (also so Ende der 80'er) haben wir Videobilder über den 
Parallelport gegrabbt. Standbilder, hat etwas gedauert, aber es ging 
auch, und es gab sogar vernünftige Ergebnisse. Auf dem Amiga hatten wir 
den Vorteil eines vernünftigen Parallelports, bei dem man die 
Datenrichtung jedes Portpins bitweise umschalten konnte, und die 
CIA-Portbausteine hatten sogar Schieberegister eingebaut.

Das funktionierte so:
Warten auf den HSYNC, dann sounssoviele Pixelclocks warten bis zum 
linkesten Pixel, ab in den Ad-Wandler mit untegriertem S&H, wandeln, 
lesen, dann warten auf den nächsten HSYNC etc. Ist ein Frame durch, dann 
das Delay zwischen HSYNC und dem zu grabbenden Pixel um einen Pixeltakt 
erhöhen und nochmal das ganze.

So hat sich dann das Bild von links nach rechts aufgebaut - für jede 
Spalte brauchte man 1/50s, für 320*240 also 320/50 s = 6.4s

Der AD-Wandler musste dabei noch nicht einmal wirklich schnell sein, 20 
ms reichten vollkommen.

Wie gesagt - so haben wir das früher gemacht.

fchk

von holger (Gast)


Lesenswert?

>Ich denke ein atmega32 mit externem RAM-IC, und genügend IO-Pins dürfte
>genügen,

Wenn man weiss was man macht vieleicht. Du weisst es jedenfalls nicht.

>Daten vom Port holen,
>wenn Pixeltakt auf High ist,

Woher weisst du wo dein Bild anfängt und aufhört?
Wo kommt dein Pixeltakt her?

Schau dir das analoge Signal deiner Kamera mal
auf dem (nicht vorhandenen vermutlich) Osci an.

von Thomas B. (t5b6_de) Benutzerseite


Angehängte Dateien:

Lesenswert?

@ Holger, siehe ersten Beitrag von mir:

>Der Chip hat eine Auflösung von 384x288 Pixel,
>einen Ausgang für den Pixeltakt, (ein impuls für jeden pixel),
>einen Ausgang für den Bildtakt (ein Impuls je bildanfang)
>einen analogen Ausgang.
>Spannungsversorgung ist 5V.


Das Analoge Videosignal Entspricht dem eines BAS, jedoch mit anderer 
Geschwindigkeit, Vermutlich wird der Sensor nicht nur in einer webcam 
eingesetzt.
Das Oszilloskop ist vorhanden (etwas älter aber es tut es noch, Hameg 
HM205-3).


Ich habe mal eine Schaltung entworfen, wie ich mir vostelle, wie man es 
machen könnte.

Ich habe das Ganze nochmal ein wenig überdacht,
Ich nutze den µC nur noch zum steuern der Kommunikation zwischen ADC und 
Ram, und PC und RAM.

In dem Plan sind nur die Signalverbindungen, Spannungsvers. etc. habe 
ich erstmal weggelassen.

Clock als Takt zum byteweise lesen des RAMs,
Sample_to_ram um dem µC zu sagen, jetzt bild vom sensor holen und in ram 
stecken.
Ready gibt an, das ein Bild im RAM liegt.
Clk out für bereitschaft neue adresse für ram liegt an.

das ist jetzt erstmal nur eine Überlegung.

So, nun erstmal gute Nacht

Gruß
Thomas

von Rolf Magnus (Gast)


Lesenswert?

Thomas Berends schrieb:
> Besten dank..
> Ich habe dann einen von TI gefunden:
> ADC 0820 CCN
> auch bekannt unter
> TLC 0820 CCN
>
> Flash AD-Wandler, relativ einfache Inbetriebnahme...
>
> Bezüglich der Verwendung eines µC,
> Gibt es Mikrocontroller, welche 128kByte RAM haben? Gut, ich weiß, das
> ist für einen µC sehr viel, vorzugsweise Atmel.

Egal was für ein Atmel? Oder speziell AVR? Bei denen ist bei 64k Schluß 
(so groß ist der  Adressraum) und das gibt's auch nur, wenn du den 
Speicher extern erweiterst. Der ist aber langsamer als der interne.

von Max (Gast)


Lesenswert?

Xmega kann über 64k.....
Und mit dem richtigen externen RAM is der dank des hohen IO-Taktes (2x 
cputakt) auch rel. schnell..

von Thomas B. (t5b6_de) Benutzerseite


Lesenswert?

Das weiß ich mittlerweile, das der mega32 nicht mehr als 64k drin sind.

Das ist auch irrelevant.
Ich Nutze den µC nur noch als Steuerung für den Speicherchip,

um die Richtige Adresse anzulegen, und um Ein-/Ausgabe der Chips zu 
steuern.
Der µC sieht garnichts von den Daten.

Wie ich das realisiere, das lasst mal meine Sorge sein.

Trotzdem Danke!


Gruß
Thomas

von Thomas B. (t5b6_de) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nachtrag,

V-Sync ist bei dem Chip leider nicht ausgeführt, jedoch leicht über 
HSync rekonstruierbar. (Große Pause vor Bildanfang)

Anbei Drei Bilder,

Bei jedem Bild ist oben das Analoge Bildsignal zu sehen.

Beim Bild Pixeltakt ist auf dem Unterem Diagramm der Pixeltakt zu sehen, 
5V/div

Beim Bild H-Sync (Zeilentakt) ist im Unterem Diagramm der Impuls zum 
Zeilenwechsel zu sehen. 2V/Div

Beim dritten Bild ist im unterem Diagramm ebenfalls H-Sync zu sehen, 
2V/div
Hier kann man vor allem die große Pause vor dem Beginn erkennen, möglich 
ist es nun darauf zu warten, und schon hat man den Bildanfang.

Soweit dazu,
Gruß Thomas

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
Noch kein Account? Hier anmelden.