Forum: Digitale Signalverarbeitung / DSP / Machine Learning Macht hier ein EDMA Sinn?


von HF-Querulant (Gast)


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

von Martin S. (strubi)


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

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.