stm32f2xx: USART mit DMA sinnvoll ?

Gast #2961205
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!
Gast #2961381
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!
Gast #2961387
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.

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