Forum: Mikrocontroller und Digitale Elektronik OV9712 Register setzen


von Johannes M. (joo91)


Lesenswert?

Hallo zusammen,

bevor ich zu meinem Problem komme, eine kurze Zusammenfassung von dem 
Ist-Stand:
Ich arbeite mit dem STM32F4-Discovery Board und habe mit diesem bereits 
das OV9655-Kamermodul unter Verwendung der HAL-Lib so angesteuert, dass 
per DMA ein laufendes Bild an ein 320x240 LCD-Display übertragen wird.

Nun habe ich mir für ein Projekt ein Kameramodul besorgt, auf welchem 
sich ein OV9712 Sensor befindet. Ich habe die Konfiguration, die mit dem 
OV9655 funktioniert, beibehalten (sprich die Konfiguration für DCMI, 
DMA, GPIO usw.) und eine Initialisierungsdatei für die OV9712-Kamera 
erstellt, welche zunächst bei den Register-Settings die Default-Werte 
enthält.

Mit den Default-Werten bekomme ich ein buntes Rauschen auf dem Display 
(vermutlich ein Timing-Problem). Meine Fragen sind folgende:

1) Ich brauche eine Auflösung von 320x240 um eine vernünftige Ausgabe 
auf dem LCD-Display zu bekommen. Welche OV9712-Register müssen hier 
verändert werden? Ist überhaupt eine solche Auflösung mit dem Sensor 
möglich? (Im Datenblatt taucht unter features die Info auf: "supports 
image sizes: WXGA (1280x800) and 640x400). Sollte tatsächlich die 
gewünschte Auflösung nicht möglich sein, dann ist die Frage: Wie 
wechsele ich, zwischen den beiden im Datenblatt erwähnten Auflösungen? 
(Hier finde ich kein Register welches für die Auflösung zuständig ist)

2) Ich habe die Vermutung, dass die Register HSTART, AHSize, VSTART und 
AVSize eine sehr wichtige Rolle spielen. Ich habe mir die Default-Werte 
angeschaut, sowie auch die Settings dieser bzw. ähnlicher Register für 
den OV9655, um zu sehen in welchem Verhältnis sie stehen. Leider werde 
ich daraus nicht schlau genug, dass ich sagen könnte: Jetzt weiß ich wie 
ich die besagten Register richtig setzen muss.
Kann mir jemand vielleicht erklären was genau es mit diesen Registern 
auf sich hat?
Meine Vorstellung:
HSTART gibt an wo das horizontal frame beginnt
AHSize gibt an wie weit das horizontal frame geht
VSTART gibt an wo das vertical frame beginnt
AVSize gibt an wie weit das vertical frame geht.

Somit müsste doch zum Beispiel bei einer Auflösung von 320x240 gelten:
HSTART: 0
AHSize: 320
VSTART: 0
AVSize: 240

oder haben diese Werte rein gar nichts mit der Auflösung zu tun?

Vielleicht hat jemand ein Beispiel für mich, in dem ein 
OV9712-Kameramodul angesteuert wird. Danke schonmal im Voraus.

Gruß
Johannes

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.