Macht hier ein EDMA Sinn?

Gast #2014557
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
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

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.