Forum: Mikrocontroller und Digitale Elektronik XMega - DMA-Controller


von Stefan (Gast)


Lesenswert?

Moin!

Bei der Verwendung des DMAC sind 2 Fragen bei mir aufgetaucht. Vllt kann 
einer von euch sie mir beantworten.

1. Welchen Vorteil gibt es bei einem 8 Byte Burst-Mode? Ich finde, dass 
der 1 Byte Burst-Mode deutlich mehr Vorteile bietet, denn der Datenbus 
wird nicht so lange durch den DMA-Transfer belegt ... dafür aber 
natürlich öfter. Ich erkenne den tieferen Sinn der Skalierbarkeit der 
Bursts nicht. Hat ihn einer von euch erkannt?

2.Hat schon mal einer das Double-Buffering benutzt? Ich habe jetzt 2 
Kanäle über das DMA.CTRL Register verbunden. Beide Kanäle haben die 
gleichen Parameter ... aber trotzdem schreibt Kanal 1 zur gleichen Zeit 
in den zugehörigen Speicherbereich wie Kanal 0, dabei sollte er doch das 
erst machen wenn Kanal 0 fertig ist. Übersehe ich da eine 
Registereinstellung? Ich kann doch nur in DMA.CTRL das Double-Buffering 
aktivieren und mehr nicht!

Vielen Dank für eure Hilfe!
LG Stefan

von Sebastian (Gast)


Lesenswert?

Wenn du deinem DMA eine hohe Priorität "zuweisen" willst kannst du dafür 
die Burst-größe höherstellen. Bei 1-Byte-Bursts kann dir der DMA halt 
gut ausgebremst werden, wenn die CPU auch grad viel drauf zugreift. Bei 
8-Byte-Bursts sind die Daten viel schneller durch, dafür wird die CPU 
ausgebremst.

Sebastian

von Stefan (Gast)


Lesenswert?

Vielen Dank Sebastian.
Deine Begründung hört sich logisch an.

Meine zweite Frage habe ich inzwischen selbst beantwortet. Man darf den 
zweiten Kanal nicht händisch aktivieren, das wird dann automatisch 
gemacht.

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.