Forum: Mikrocontroller und Digitale Elektronik STM32 OV2640 BFAF im Header von JPEG


von Sonke A. (soeni)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe die OV2640 Kamera an meinen STM32f407 angeschlossen. Nachdem 
ich diverse Probleme hatt, (Es funktionierte immer nur die Auflösung 
320x240).

Nun habe ich das ganze auf JPEG umgestellt. Nun bekomme ich aus der 
Kamera einen für mich nicht zu identifizierenden Binärblob. Wenn ich die 
auflösung ändere, verändert sich die Größe wie zu erwarten.

Anscheinend wird an den Beginn der Datei ein fixer Header geschrieben. 
Da wo bei einer jpeg JFIF steht steht in dieser angeblichen JPEG datei 
BFAF. Sagt jemandem von euch das was? Ist das vielleicht gar kein JPEG 
sondern was anderes? wenn dann was?

Habe mal eine solche Datei angehängt.


Gruß


EDIT: Bitte die .dat datei nehmen, das jpeg kann man nicht öffnen

von soso (Gast)


Lesenswert?

So habe nun rausgefunden, das das 4. bit von 16 Bit immer 0 ist. Dachte 
zuerst an einen HW defekt und habe ein weiteres Board von ST 
ausprobiert. Hier kam ich zum gleichen Ergebnis.
Hat jemand ne Idee woran das liegen könnte?

von Strubi (Gast)


Lesenswert?

Hi,

manche Sensoren spucken ja einen rohen JPEG-Stream aus, aber ich glaube 
mich zu erinnern, dass dem beim OV2640 nicht so war, sondern im Header 
einige Stream-Infos standen, dann die Quantisierungstabellen und der 
rohe JPEG-Stream nachgeliefert wurden.
Erstere sieht man im Hexdump immer schnell an aufsteigenden 
Zeichenfolgen.
Steht im Datenblatt nix zu?
Grüsse,

- Strubi

von soso (Gast)


Lesenswert?

hm das Problem ist ja, dass der Header bereits fehlerhaft ist. Wie 
gesagt, immer das 4. Bit von 16 Bit ist 0. Dadurch steht im Header dann 
nicht wie normalerweise JFIF sondern BFAF. Ich denke eher, dass hier ein 
generelles Übertragungsproblem vorliegt. Kann man so was irgendwo 
einstellen?

Mein Problem ist, dass im Datenblatt was ich habe nur sehr wenige 
Register beschrieben sind. Die vorgefertigten Blöcke, die ich in die 
Kamera schiebe enthalten jedoch Register, die im Datenblatt als Reserved 
markiert sind. Wenn ich jetzt diese aus dem Datenblop lösche, 
funktioniert garnix mehr, sie sind also notwendig. Das macht es für mich 
schwehr das zu durchsteigen.

von Verwirrter Anfänger (Gast)


Lesenswert?

Rohe Daten mit 320x240 scheinen ja zu funktionieren. Kannst du mal 
kontrollieren, ob das Verhalten (4. Bit immer Null) da auch auftritt? 
Dann lässt das ja schonmal auf ein generelles ÜBertragungsproblem 
schließen.

von soso (Gast)


Lesenswert?

Ja das tritt da auch auf in den Rohdaten.
Ich dachte zuerst auch, dass es dann ein HW Problem sein muss. Habe 
jetzt das Board getauscht. Gleiches verhalten.
Dnn habe ich die Datebusleitungen mit dem Oszi angeguckt. das sieht 
soweit auch ok aus. Komisch ist, dass der Datenbus 8 Bit breit ist, das 
Phänomen aber nur alle 16 Bit auftritt. Ich nutze zum Auslesen einen DMA 
Stream. (DMA2_Stream1) und speichere alles in ein externes RAM.

von soso (Gast)


Lesenswert?

So habe die Lösung, Der DMA2_Stream1 hat en Problem mit dem externen 
RAM. Das ist auch so im Errata dokumentiert. Speicher ich das Bild im 
internen Ram dann geht es.

Gruß

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.