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!
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.