Forum: Mikrocontroller und Digitale Elektronik stm32f2xx: USART mit DMA sinnvoll ?


von Leo (Gast)


Lesenswert?

Guten Abend,

bezüglich der USART Kommunikation mit DMA zwischen Mikrocontroller 
stm32f2xx und PC hätte ich eine Frage. Würde es Sinn machen, wenn für 
eine USART Kommunikation (2MBit/s Datenrate) auf dem stm32f2xx ein DMA 
benutzt wird ? Die Puffergroße des DmaRxBuffer würde 4 Byte groß sein.

Vielen Dank im Voraus!

von MAD DMA (Gast)


Lesenswert?

Leo schrieb:
> Guten Abend,
>
> bezüglich der USART Kommunikation mit DMA zwischen Mikrocontroller
> stm32f2xx und PC hätte ich eine Frage. Würde es Sinn machen, wenn für
> eine USART Kommunikation (2MBit/s Datenrate) auf dem stm32f2xx ein DMA
> benutzt wird

Natürlich. Erst recht bei dieser Datenrate.
Wenn der DMA Controller programmiert ist, kann die CPU
was Sinnvolleres tun, als Daten zu bewegen.

> ? Die Puffergroße des DmaRxBuffer würde 4 Byte groß sein.

Das wiederum weniger. Du würdest für die Programmierung des 
DMA-Controllers
ein Mehrfaches dieser 4 Bytes bewegen. Also sehr nicht sehr effizient.

Sinnvolle Puffergrössen pro DMA Transfer fangen bei einem
halben KByte an, 16 oder 32k wären besser (sofern der STM32 DMA
Controller überhaupt so viele Daten in einem
Rutsch bewegen kann.


>
> Vielen Dank im Voraus!

von MAD DMA (Gast)


Lesenswert?

Des Weiteren ist es sinnvoll, wenigstens dann, wenn Deine
Daten von aussen in einem stetigen Strom ankommen, mit 2 - oder
auch mehr Puffern - zu arbeiten.

In den einen schreibt der DMA Controller, den anderen barbeitet
die CPU, wenn beide Puffer erledigt sind, wechselt das Spielchen,
d.h. die CPU liest den vorher vom DMAC gefüllten Puffer aus,
während der DMAC in den anderen schreibt.

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.