Forum: Mikrocontroller und Digitale Elektronik Kamera OV2640


von Entwickler (Gast)


Lesenswert?

Guten Morgen,

das Kameramodul OV2640 wird mit einem STM32F2 Mikrocontroller 
angesteuert.
In einer Beispielapplikation von ST wird gezeigt, wie das aufgenommene 
Bild auf einem LCD-Display dargestellt wird. Dies funktioniert auch bei 
mir. Nun ist es so, dass ich die Daten nicht auf einem LCD-Display 
darstellen möchte, sondern im internen RAM Speichern möchte und im 
Anschluss per Ethernet zum PC übertragen möchte. Die Kamera liefert 
Bilder im JPEG 120x160 Format. Wie müsste ich dies auf dem STM32F2 
realisieren? Pro Bild ist ein echt großer Speicherbedarf notwendig - 
160x120 = 19200 Bytes. Der DMA vom STM32F2 kann der eine soe große 
Datenmenge aufnehmen?

von adenin (Gast)


Lesenswert?

Entwickler schrieb:
> Der DMA vom STM32F2 kann der eine soe große
> Datenmenge aufnehmen?

Nein. Aber er kann sie transportieren.

von Entwickler (Gast)


Lesenswert?

Ok. Wie müsste ich da genau vorgehen? Welche DMA Puffergröße ist da 
sinnvoll? Wie erhalte ich dann ein Bild?

von Entwickler (Gast)


Lesenswert?

Wird der DMA Interrupthandler n-mal ausgeführt?

Bildgröße in Bytes = 19200
DMA Puffergröße in Bytes = 512

--> 19200 / 512 = 37

Der DMA Interrupthandler müsste dann 37mal zuschlagen oder?

von Grundschüler (Gast)


Lesenswert?

Du kannst das LCD als Speicher benutzen, das dort angezeigte Bild 
auslesen und dann an den PC übertragen.

von Entwickler (Gast)


Lesenswert?

Die Adresse wo das Bild liegt ist 0x68000002.
Woher weiß ich genau, wann ein komplettes Bild im Speicher liegt?

von Entwickler (Gast)


Angehängte Dateien:

Lesenswert?

Die Reduktion mit JPEG funktioniert bei mir nicht. Wahrscheinlich liegt 
es an den EInstellungen für die Kamera. Gibt es im Netz eine 
funktionsfähige Lib?

von Grundschüler (Gast)


Lesenswert?

Entwickler schrieb:
> Bildgröße in Bytes = 19200
> DMA Puffergröße in Bytes = 512
>
> --> 19200 / 512 = 37

DMA-Transfer_Size muss ein Vielfaches der horizontalen Bildauflösung 
sein, da nur am Ende einer Bild-Zeile Zeit für Instruktionen besteht.

>Woher weiß ich genau, wann ein komplettes Bild im Speicher liegt?
Entweder href-Signale zählen oder vsync feststellen

von Entwickler (Gast)


Lesenswert?

Weiß jemand wie man den Sensor konfigurieren muss, damit im Speicher ein 
Bild im JPEG Format abgelegt wird? Hab sämtliche Änderungen ausprobiert 
leider ohne Erfolg.

von Lukas (Gast)


Lesenswert?

Entwickler schrieb:
> Weiß jemand wie man den Sensor konfigurieren muss, damit im
> Speicher ein
> Bild im JPEG Format abgelegt wird? Hab sämtliche Änderungen ausprobiert
> leider ohne Erfolg.

Wenn das Register 0xFF = 00, dann setzt du Register 0xDA = 0x18.
Somit hast du RGB565 als JPEG komprimiert...nur falls das mal noch für 
jemanden interessant ist.

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.