STM32F4 DMA verhalten bei unterschiedlichen Datenmengen

Gast #3936319
Lesenswert?

Hallo,

ich will mit dem DCMI Interface Daten abfischen und über DMA ablegen.
V & H Sync sind parallel geschaltet.
Im Normalfall kommen pro Übertragung 640Byte an.
Aber im Fehlerfall weniger.

Die verhält sich nun der DMA wenn ich im Fehlerfall weniger Daten 
ankommen?

Kommt dann trotzdem ein Interrupt vom DMA?
Merke ich überhaupt das weniger Daten angekommen sind?
Und kann ich dann entsprechend reagieren?

Grüsse, Marco
#3936345
Lesenswert?

Vom DMA kriegst du nur einen Interrupt, wenn dessen Zähler abgelaufen 
ist. Aber wenn ich das richtig verstehe (nie was von DCMI gehört und das 
was Wikipedia dazu auswirft passt nicht so ganz), dann hast du 
Sync-Signale, die deine Übertragungen trennen. Und die sollten sich in 
Interrupts ummünzen lassen.
Gast #3936390
Lesenswert?

DCMI ist das Kammerainterface.

Das ERROR Flag habe ich und könnte ich auf einen INT legen.
Wobei ich das Frameende mit Sicherheit auch intern auf einen Interrupt 
legen kann und nicht über die Externeleitung gehen muss.

Aber dann muss ich irgendwie sicherstellen das im Normalfall alles 
eingelesen wird.

Hatte gehofft das bei einem Frameende der DMA sich meldet, egal wie viel 
der drin hat und ich dann abfragen kann ob alles drin ist.
#3936405
Lesenswert?

Ein DMA Controller ist ein generisches Gebilde, das in gleicher Weise 
diverse verschiedene I/O-Module bedienen kann. Aufgrund welcher Magie 
sollte der wissen, dass keine Daten kommen, wenn der Zähler noch Luft 
hat? Ist bei DMA nicht vorgesehen, mehr als das Request-Signal gibts 
zwischen DCMI und DMA nicht.

Das DCMI hingegen weiss es und hat eine Handvoll möglicher Interrupts. 
Also wo ist das Problem?
Gast #3936429
Lesenswert?

Probleme gibt es keine wirklichen, es wäre halt nur schön gewesen wenn 
alles mit dem DMA alleine gehen würde.
Besonders da ich auch mit einem double-buffer arbeiten muss.

Aber da es anscheinend nicht geht, muss ich halt mehrere Interrupts 
abarbeiten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren