Forum: Mikrocontroller und Digitale Elektronik OV9712 Register setzen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes M. (joo91)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.