Forum: Mikrocontroller und Digitale Elektronik OV7670 settings


von H. D. (lactobacillus)


Lesenswert?

Hallo,
ich schlage mich seit einiger Zeit mit einer OV7670 (ohne FIFO) herum.

Der Datasheet is leider nicht sehr selbsterklärend. Hier ist die Verion 
1.4 zu finden: http://web.mit.edu/6.111/www/f2015/tools/OV7670_2006.pdf

Es geistert auch noch die 1.01 im Netz herum, die fast nur aus Fehlern 
besteht, weshalb ich auch Version 1.4 nicht sehr vertrauenserweckend 
finde.

Ich hätte gerne RGB565 in den Auflösungen VGA und QVGA bei möglichst 
niedrigen fps and pixel per second. XCLK füttere ich mit etwa 11MHz 
(niedrig aber innerhalb der Spezifikationen (10-24 MHz)).

Ich stoße allerdings auf merkwürdige Probleme:

Erst einmal VGA + RGB565 [write(Register, Wert)]:
write(0x40, 0xD0);//RGB565//00-FF
write(0x12, 0x04);//RGB

Steigende Flanke VSYNC 13.67*s (passt, da 11 statt 24 MHz)
Steigende Flanke HREF etwa 510*VSYNC (passt)
Zwischen zwei steigenden Flanken HREF etwa 784 PCLK (passt)

Bisher alles so wie es soll. Verlangsame ich mal PCLK:
write(0x40, 0xD0);//RGB565//00-FF
write(0x12, 0x04);//RGB
write(0x11, 0x9F);//CLK div 32

Steigende Flanke VSYNC 0.43*s (passt)
Steigende Flanke HREF etwa 510*13.67*s (passt nicht! Erwartet hatte ich 
510*0.43*s)
Zwischen zwei steigenden Flanken HREF etwa 784 PCLK (passt)

Es gibt noch einen PCLK divider:
write(0x3e, 0x14);//Scale enable, Div16
Keine Wirkung. Zusätzlich:
write(0x73, 0x0C);//Div16
Bringt auch nix.

Kann mir jemand auf die Sprünge helfen?

von H. D. (lactobacillus)


Lesenswert?

write(0x6B, 0x8A);//CLK Multiplier

Funktioniert um HREF um Faktor 6 zu beschleunigen.

Warum geht dann die Verlangsamung nicht?

von grundschüler (Gast)


Lesenswert?

ich war mit den ov's vor einiger Zeit relativ weit gekommen. Die 
Einstellung des ov7670 war nicht das Problem. Es gibt im Netz dazu 
diversen funktionierenden 
code:http://embeddedprogrammer.blogspot.de/2012/07/hacking-ov7670-camera-module-sccb-cheat.html
Die scbb Einstellung hatte ich aus einem Arduino-Projekt übernommen. Das 
hat gut funktioniert. Auch mit der Veränderung der Taktrate.

Verrate doch ein bischen mehr zu deinem Projekt, mcu?, Speicher?

von H. D. (lactobacillus)


Lesenswert?

Hauptziel ist eigentlich nur etwas zu Lernen.

Fernziel ist eine möglichst minimale Zeitrafferkamera mit einem MSP430.

Im Moment benutze ich einen MSP430G2553 (TSSOP28). Das Bild soll an ein 
Display gesendet werden (320x240, SPI, 16 MHz)

Der ist MSP430 natürlich nicht gerade überdimensioniert, aber um ein 
Minimalsetup geht es ja auch. Wenn ich die Taktrate der PCLK auf 1-2 MHz 
senken könnte, müsste das auch funktionieren.

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.