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.
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
:)
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?
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²Chttp://www.nxp.com/documents/user_manual/UM10204.pdf
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
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.
Julian schrieb:> HSync und VSync würden mir sagen, wann eine Zeile/Spalte ausgegeben ist.
Nicht ganz. HSync wird einmal pro Zeile aktiviert, aber VSync nicht
einmal pro Spalte (das macht schon der Pixeltakt), sondern einmal pro
komplettem Bild.
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.)
Es wäre praktisch, wenn Du nicht nur Schnipsel des Datenblatts zur
Verfügung stellen würdest.
"Binning" dürfte hier das Zusammenfassen benachbarter Pixel zu einem
größeren bedeuten, das wird gemacht, um bei wenig Licht gegen das
Sensorrauschen ankämpfen zu können.
Rufus Τ. Firefly schrieb:> das wird gemacht, um bei wenig Licht gegen das> Sensorrauschen ankämpfen zu können.
... oder um zu Gunsten einer höheren Frame-Rate bei konstanter Datenrate
die Datenmenge pro Bild zu reduzieren.
Wenn "binning" im Zusammenhang mit "improved low-light performance"
erwähnt wird, wie im Datenblattschnipselchen ... dann ist die Reduktion
der Datenrate sicher nicht das erste, das einem einfällt.
Sieht mir wie ein DCMI Interface aus. Datenpins, H&Vsync und Pixelclock
brauchst du dafür. Das solltest du dann mit einem Mikrocontroller der es
verarbeiten kann nutzen STM32 z.B. (oder ein Raspberry Pi?).
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).
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=200072Meister 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.