Ansteuerung Kameramodul

Gast #4126647
Lesenswert?

Hallo,

ich hab ein Kameramodul gekauft und will da jetzt Bilder rausbekommen. 
Das Problem ist nur: Ich weiß nicht wirklich wie ich weitermachen soll. 
Das Modul ist ansich echt super. Hat Autofokus und Zoom und sogar n Sync 
zum Blitz (was ich nicht brauche). Ich habe bisher alle Pins, die 
einfach nur auf Spannung sitzen müssen dran (also Pins 
1-6,19,20,24,25,30,33,34). Im Anhang dazu mal die Pinbelegung.

Ich würde jetzt noch folgende Pins anschließen:
- Einen Taktgeber an 27
- DigitalOut an die 10 Datenpins

Meine Fragen wären:
- was muss ich an SCL und SDA (31/32) geben?
- was muss ich an PCLK (28) übergeben?
- Sehe ich das richtig, dass ich 21,22,26 und 29 eigentlich nicht 
zwingend brauche?
- Wie muss ich die Daten die über Data0-9 kommen entschlüsseln?

Ich bin über jeden Tip sehr dankbar.
Angehängte Dateien:
Gast #4126661
Lesenswert?

Du musst die Daten entschlüsseln, wie im Datenblatt beschrieben.
..und ja, auf HSync und VSync kannst Du verzichten,
wenn Du eine intelligente Bildverarbeitung verwendest.
Irgendwo hast Du dann starke Gradienten, die Dir die Bildgrenze anzeigen
:)
Gast #4126681
Lesenswert?

Wow, das ging ja echt fix. Danke schon mal soweit.

Also wenn ich das richtig verstanden habe, dann kommen die gesamten 
Bildinformationen über Data0-9, HSync, VSync und PCLK (also Pins 
7-14,17/18, 21/22 und 28), wobei mit PCLK die Pixel-Output-Rate (woraus 
ich die Framerate errechnen kann) gibt. HSync und VSync würden mir 
sagen, wann eine Zeile/Spalte ausgegeben ist.

Im Datenblatt steht nur, dass eine "RAW 10-bit Bayer data" Bild 
geschickt wird. Ich finde nur was zu einem Bayer Filter. Wie muss ich 
die Daten interpretieren?

Searial Control Data (SDA) und Searial Control Clock (SCL) können beide 
jeweile lesend und schreibend betrieben werden und schicken "nur" 
Datenbefehle hin und her, wobei SCL den SDA "freischaltet", oder?
Gast #4126732
Lesenswert?

Julian schrieb:
> Im Datenblatt steht nur, dass eine "RAW 10-bit Bayer data" Bild
> geschickt wird. Ich finde nur was zu einem Bayer Filter. Wie muss ich
> die Daten interpretieren?

http://de.wikipedia.org/wiki/Demosaicing
und einfach mal nach "Bayer demosaicing" suchen

>
> Searial Control Data (SDA) und Searial Control Clock (SCL) können beide
> jeweile lesend und schreibend betrieben werden und schicken "nur"
> Datenbefehle hin und her, wobei SCL den SDA "freischaltet", oder?

Aua, sich erstmal mit den Grundlagen zu beschäftigen hat noch nie 
geschadet:
http://de.wikipedia.org/wiki/I²C
http://www.nxp.com/documents/user_manual/UM10204.pdf
Gast #4127562
Lesenswert?

Irgendwer schrieb:
> http://de.wikipedia.org/wiki/Demosaicing
> und einfach mal nach "Bayer demosaicing" suchen

Ok super, ich habe schon ein bisschen dazu gelesen. Ich denke, dass 
bekomme ich hin. Die 10-bit Bildinformation kommt dann quasi über die 10 
Datenleitungen gleichzeitig?

Irgendwer schrieb:
> Aua, sich erstmal mit den Grundlagen zu beschäftigen hat noch nie
> geschadet:
> http://de.wikipedia.org/wiki/I²C
> http://www.nxp.com/documents/user_manual/UM10204.pdf

Ja, im prinzip ja das was ich gesagt hatte. Ich kannte I2C halt bisher 
nur aus der Anwendersicht. Vielen Dank für den netten Hinweis, dass das 
genau die beiden Kanäle sind. Mit denen kann ich dann also umgehen.

Lg Julian
Gast #4127597
Lesenswert?

Schiko schrieb:
> Du musst die Daten entschlüsseln, wie im Datenblatt beschrieben.

Ohne Datenblatt geht natürlich garnichts. Was hast du denn genau für 
einen Sensor ? (Bezeichnung)

> ..und ja, auf HSync und VSync kannst Du verzichten,
> wenn Du eine intelligente Bildverarbeitung verwendest.
> Irgendwo hast Du dann starke Gradienten, die Dir die Bildgrenze anzeigen
> :)

Das ist natürlich hanebüchener Unsinn. Den Gradienten kann es überall im 
Bild geben. H- und V-Sync haben schon ihre Berechtigung ausser man weiß 
genau was das Kameramodul macht, wie es Eintaktet, etc. Da muss man 
schon arg auf Pixelzählen stehen ... Unsinnige Arbeit.

Julian schrieb:
> Also wenn ich das richtig verstanden habe, dann kommen die gesamten
> Bildinformationen über Data0-9, HSync, VSync und PCLK (also Pins
> 7-14,17/18, 21/22 und 28), wobei mit PCLK die Pixel-Output-Rate (woraus
> ich die Framerate errechnen kann) gibt. HSync und VSync würden mir
> sagen, wann eine Zeile/Spalte ausgegeben ist.

Ganz genau so ist es.

Julian schrieb:
> Searial Control Data (SDA) und Searial Control Clock (SCL) können beide
> jeweile lesend und schreibend betrieben werden und schicken "nur"
> Datenbefehle hin und her, wobei SCL den SDA "freischaltet", oder?

Über das serielle Interface setzt du Auflösung, Weißabgleich, 
Wiederholrate, AGC, ... und einige hunderte mehr Einstellungen. Eben 
alle Einstellungen die man an der Kamera einstellen kann. Wie genau und 
in welchen Registern das geht, das steht im Datenblatt.

Julian schrieb:
> Irgendwer schrieb:
>> http://de.wikipedia.org/wiki/Demosaicing
>> und einfach mal nach "Bayer demosaicing" suchen
>
> Ok super, ich habe schon ein bisschen dazu gelesen. Ich denke, dass
> bekomme ich hin. Die 10-bit Bildinformation kommt dann quasi über die 10
> Datenleitungen gleichzeitig?

Genau so ist es.
Gast #4127880
Lesenswert?

WOW, vielen herzlichen Dank an Peter. Das is echt mal eine sehr gut 
brauchbare Antwort (nicht, dass die anderen nicht brauchbar gewesen 
wären, aber das finde ich musterhaft). Vielen Dank dafür!

Natürlich auch vielen Dank an Rufus!

Peter schrieb:
> Ohne Datenblatt geht natürlich garnichts. Was hast du denn genau für
> einen Sensor ? (Bezeichnung)

Ich hab auf Amazon eine Modul (oder besser mehrere) von ner Firma die es 
nicht mehr gibt gekauft. Die hieß glaub ich mal DIS oder so.
Ich hab das Datenblatt nochmal durchgesehen und ich finde nur das im 
Anhang (mit Binnig hat das nichts zu tun, oder? Das ist ja nur, um die 
output-größe zu reduzieren. Da steht, man kann es einschalten, muss man 
aber nicht.)
Angehängte Dateien:
Gast #4128265
Lesenswert?

Meister schrieb:
> Das solltest du dann mit einem Mikrocontroller der es
> verarbeiten kann nutzen STM32 z.B. (oder ein Raspberry Pi?).

STM32Fxx ist das sicher gut geeignet. Evtl gibt es auch schon eine 
Codebasis auf der man aufbauen könnte.

Der Rapsberry Pi ist m.Mn. nicht geeignet. Der hat ein CSI (Camera 
Serial Interface) in Version 2. Bei diesen Kameras werden die Daten 
nicht parallel (D0-D9) sondern seriell ausgegeben. Bei der parallelen 
Ausgabe wird immer ein gesamtes Pixel (10 Bit) pro Takt ausgegeben.

Beim CSI wird pro Takt immer ein einziges Bit ausgegeben. (Aka. 10 Takte 
= 10 Bit = 1 Pixel). Außerdem findet die Übertragung über differentielle 
Signalpegel (D+ und D-) statt. Das beim Raspberry Pi verwendete CSI hat 
2 Datalanes (Datenleitungen) und die passende Taktung heißt MIPI Clock 
und ist ebenfalls differentiell. Ein Begriff der zwar nicht 100% passt 
aber mit dem man etwas anfangen kann ist LVDS. Das hat man vielleicht 
schon einmal gehört. Danach kann man googeln.

@ Julian: poste bitte doch mal das ganze Datenblatt und die Bezeichnung 
des Kamerasensors. (evtl. OVxxxx)

Für deine Kamera würde ich dir die Nutzung des DCMI empfehlen. Aber dazu 
musst du die ziemlich in die STM32F4 Serie einarbeiten. Das ist schon 
heavy metal dann. Da reizt man den Controller voll aus.

Meister schrieb:
> Sieht mir wie ein DCMI Interface aus.

Ich bin mir nicht ganz sicher, was dieses DCMI überhaupt ist. Ich 
glaube, dass ST so einfach das parallel "Quasi - Standartinterface" von 
Kameras nennt. Und getreu dem Motto: Gib dem Kind einen Namen haben die 
es halt DCMI getauft. Ist aber genau das richtige (@Julian).
Gast #4128500
Lesenswert?

Rufus Τ. Firefly schrieb:
> Es wäre praktisch, wenn Du nicht nur Schnipsel des Datenblatts zur
> Verfügung stellen würdest.

Ist im Anhang. Ich dachte, es wäre sinnvoller nicht gleich alles zu 
posten.

Rufus Τ. Firefly schrieb:
> "Binning" dürfte hier das Zusammenfassen benachbarter Pixel zu einem
> größeren bedeuten

Genau so ist es. Alternativ kann man noch Skipping anschalten. Per 
default sind aber beide aus. Ich denke ich brauche das (zumindest für 
den Anfang) auch nicht.

Meister schrieb:
> Das solltest du dann mit einem Mikrocontroller der es
> verarbeiten kann nutzen STM32 z.B. (oder ein Raspberry Pi?).

Ok cool. Meines Erachtens nach ist der Pi auch nicht geeignet, weil die 
Taktrate sehr instabil ist. (Nach meinen letzten Messungen hängt das 
sehr davon ab was im Hintergrund noch alles läuft.) Zusätzlich zu den 
oben genannten Argumenten, die mir einleuchten.

Ich werde dann wohl versuchen mich in den STM32F4 einzuarbeiten. Kann 
ich dazu das kaufen oder gibts da billigere Alternativen:
http://shop.mymcu.de/index.php?sp=article.sp.php&artID=200072

Meister schrieb:
> Jupp es gibt eine Codebasis dazu:
> http://mikrocontroller.bplaced.net/wordpress/?page_id=1115

Sehr cool, dass schaue ich mir gleich mal an. Vielen Dank euch, ihr seid 
super.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren