Forum: Mikrocontroller und Digitale Elektronik STM32 Maximale DMA Transfer Größe


von DraconiX (Gast)


Lesenswert?

Ich bin gerade auf der Suche nach einer Lösung für mein Problem und 
stoße da gerade auf ein kleines Hindernis:

Wie groß darf der maximale DMA Transfer sein? Liegt der bei 1024 Byte? 
Wie kann ich diese "Limitierung" umgehen? Ich müsste ca. 8600 Byte 
übertragen.

µC ist ein STM32F1

von Oberlehrer (Gast)


Lesenswert?

DraconiX schrieb:
> Ich bin gerade auf der Suche nach einer Lösung für mein Problem
> und
> stoße da gerade auf ein kleines Hindernis:
>
> Wie groß darf der maximale DMA Transfer sein? Liegt der bei 1024 Byte?
> Wie kann ich diese "Limitierung" umgehen? Ich müsste ca. 8600 Byte
> übertragen.
>
> µC ist ein STM32F1


Schau ins Manual.
Alternativ Google. Dauert keine Minute.

von Carl D. (jcw2)


Lesenswert?

Das Register, das die Bytes zählt ist 16Bit groß. Was könnte da hinein 
passen?

von DraconiX (Gast)


Lesenswert?

Oberlehrer schrieb:
> DraconiX schrieb:
>> Ich bin gerade auf der Suche nach einer Lösung für mein Problem
>> und
>> stoße da gerade auf ein kleines Hindernis:
>>
>> Wie groß darf der maximale DMA Transfer sein? Liegt der bei 1024 Byte?
>> Wie kann ich diese "Limitierung" umgehen? Ich müsste ca. 8600 Byte
>> übertragen.
>>
>> µC ist ein STM32F1
>
> Schau ins Manual.
> Alternativ Google. Dauert keine Minute.

Google gibt mir da keine Hinweise, oder ich bin weißgott zu blöd zum 
suchen, aber unter "STM32 DMA transfer size" spuckt er nur müll aus der 
nicht zum Ziel führt. Unter einem der 5 verschiedenen Datenblaettern, 
dem Programming Reference Guide bin ich nun aber mit einem Einzeiler 
fündig geworden:

"Programmable number of data to be transferred: up to 65536"

Macht ja eigentlich auch Sinn, da der Bufferlength im DMA_SxNDTR 
Register 16 Bit breit ist. Ich hatte mich nur sehr gewundert, da ich 
hier ein Source vorliegen habe wo explizit darauf hingewiesen wurde das 
die Bufferlength für den DMA maximal 1023Byte lang sein darf.

von meckerziege (Gast)


Lesenswert?

DraconiX schrieb:
> Ich hatte mich nur sehr gewundert, da ich
> hier ein Source vorliegen habe wo explizit darauf hingewiesen wurde das
> die Bufferlength für den DMA maximal 1023Byte lang sein darf.

naja in irgend einem Buffer oder Speicher müssen die Daten liegen. Und 
DORT kann es solch ein Limit geben.
Aber solang du hier keinen Code zeigst, ist alles nur Spekulation.

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.