Forum: Mikrocontroller und Digitale Elektronik Xmega DMA und SD


von Florian_unbekannto (Gast)


Lesenswert?

Hey Leute,

arbeite mich jetzt mal in den DMA des Xmegas ein. Ist es richtig, dass 
wenn ich zum Beispiel Daten, die ich per SPI von einer SD-Karte lese, 
direkt per DMA auf einen UART weiterleite, der Prozesor  im Hintergrund 
weiter andere Dinge erledigen kann? Weil ich haab irgendwoe gelse, dass 
der DMA auch den Bus blockiert, somit ist der Prozessor ja auch 
blockiert..Kann mir da jemand klarheit reinbringen?

Als großes Ganzes will ich später damit mal einen Webserver bauen. Ich 
nutze da einen xmega128A1 mit einem ENCJ6080 netzwerkchip. Ich mrine 
denkweise, das so zu realisieren richtig? Also Daten per DMA vom SPI der 
SDKarte direkt auf den SPI des Netzwerkschips zu legen?

von Jim M. (turboj)


Lesenswert?

> [...] einen Webserver bauen [...]
> Also Daten per DMA vom SPI der SDKarte direkt
> auf den SPI des Netzwerkschips zu legen?

Leider geht das nicht, denn Du musst IMO auch noch die Checksumme des 
TCP Pakets berechnen. Dazu musst Du die Daten anfassen können, was bei 
direktem DMA SPI->SPI nicht geht.

Üblicherweise nutzt man überschneidendes DMA, d.h. ein Puffer geht via 
DMA vom RAM zum Netzwerk während der nächste von SD ins RAM gelesen 
wird.

Die dabei auftretenden RAM-Zugriffe des DMA bremsen den Prozessorcore 
normalerweise nur sehr wenig aus - i.d.R. kaum meßbar.

von Max (Gast)


Lesenswert?

Berechnet der enc die checksumme nicht selber?
Mir war so als hätte ich da mal was gehört....

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.