Macht hier ein EDMA Sinn?

Gast #2014557
Lesenswert?

Hallo allerseits.

Mal eine generelle Frage zum EDMA beim TMS320C6416T.

Macht es Sinn, den Prozessor einen Wert erst in den Speicher schreiben 
zu lassen und von dort an einen DAC zu übergeben? Schneller wäre es doch 
sicher, den Wert ohne Umwege direkt auf den DAC zu schreiben? Ohne EDMA?

Kann die Frage überhaupt so generell beantwortet werden?

Gruß,
Christian
#2014808
Lesenswert?

Hi,

Der DMA kostet dich ansich nix an Zeit. Das Problem ist beim direkten 
Registerzugriff, dass du meistens noch ein "TX Empty"-Flag abfragen 
musst, bevor du den nächsten Wert schicken kannst. Dazu kommt, dass dein 
DAC schnell einen Underrun erleiden kann (-> Knackser im Audio). Das 
kann dann passieren, wenn irgend ein anderer Prozess (Interrupt) beim 
Register-Schreiben dazwischenfunkt.
Ganz abgesehen davon ist es fuer einen DSP guenstiger, erst einen Puffer 
mit Werten zu verarbeiten (-> Pipelining) und dann per DMA rauszuhauen, 
waehrend der naechste Puffer schon simultan verarbeitet wird.
Deswegen gilt fast ausnahmslos das Prinzip der verketteten DMA-Puffer 
("buffer queue") beim Streamen auf/von DAC/ADC, wenn Du stabilen 
Datentransfer anstrebst.

Gruss,

- Strubi

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