MSP430: Blockiert DMA nur während Übertragung oder auch während Synchronisation?

Gast #2325818
Hallo liebes Forum,

ich habe mir die Aufgabe gestellt, ein Audiosignal mit der 
höchstmöglichen Qualität über einen CC1100-Transceiver rauszuschicken. 
Deshalb fange ich langsam an, Taktzyklen zu zählen... Modul ist ein 
MSP430F1612.

In der naiven Implementation wandelt der AD-Wandler timgetriggert in 
eins seiner Speicherregister. Die DMA holt sich das, wenn der Wandler 
fertig ist und füllt einen 64-Word-Buffer.

Jetzt habe ich in der Dokumetation gelesen, dass der DMA-Controller bis 
zu 5 MCLK-Zyklen braucht, um einen Transfer durchzuführen.

Meine Frage ist: blockiert der DMA-Controller während der gesamten 5 
Zyklen die CPU, oder nur während der 2 Zyklen, die er für den Transfer 
selbst benötigt?

Falls dem so wäre, würde das ja bedeuteten, dass der Transfer länger 
dauert, als wenn die CPU das machen würde (2 MOV mit jeweils zwei 
Takten).
Dann sollte ich vermutlich den AD-Wandler alle seine 16 "Register" 
befüllen lassen und diesen Block dann per DMA kopieren... das sollte der 
DMA-Controller ja dann schneller als die CPU schaffen.

Vielen Dank,
Maik Hoepfel

PS. Für Hinweise und Gedanken zu anspruchsvoller AD-/DA-Wandlung bin ich 
sehr dankbar. Mein Ziel ist, 12+2 Bit (4x Oversampling) bei 32 kHz zu 
schaffen.
Gast #2331676
Ob der CPU-Befehl zu Ende ausgefuehrt wird, wird doch durch das 
DMAONFETCH-Bit gesetzt, oder? Ausserdem gibt es Instruktionen, die 
alleine schon 6 Zyklen benötigen, deshalb bezweifle ich, dass das so 
stimmt...

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.