32bit Samples einlesen mit ADSP-2181

Gast #486570
Hi,

ich versuche, mit dem ADSP-2181 von Analog Devices ein 32bit-Sample über 
den SPORT0 einzulesen. Dazu benutze ich die Autobuffer-Funktion. Die 
Bitlänge ist 16Bit und der Buffer ist 2. Allerdings wird hier der 
Empfangsinterrupt schon nach den ersten 16Bit ausgelöst und nicht erst 
nach 32Bit, wie es eigentlich sein sollte.

Gruß
Hendrik
Gast #486621
Zumindest der ADSP-2191 sowie der ADSP-21992 können nur 16 Bit auf 
einmal via SPORT empfangen, bist du dir sicher, dass der ADSP-2181 ein 
32 Bit Empfangsregister hat (ist doch auch ne 16 Bit Architektur).

Bei Nutzung des DMA Controllers (falls er sowas hat) kann man nach einer 
fixen Wortanzahl erst einen Interrupt auslösen ...
Gast #486965
der ADSP-2181 ist auch nur ein 16Bit-Prozessor und das Empfangsregister 
damit 16Bit breit. Allerdings hat er eine Funktion Autobuffer, über die 
er beispielsweise 2x 16Bit einliest und sofort in den Speicher in 2 
Register schreibt. Und eigentlich sollte dann erst der Receive Interrupt 
ausgelöst werden.

Stimmt, der DMA-Port hat so eine Funktion, dass nach einer vorgegebenen 
Wortanzahl ein Interrupt ausgelöst wird. Da muss man allerdings das 
Register immer wieder neu beschreiben, soweit ich weiß.
Der Unterschied zum seriellen Port ist, dass der serielle Port im 
AutobufferMode in zyklische Speicherregister schreibt, die nach einem 
kompletten Auffüllen einen Interrupt auslösen sollte und anschließend 
wieder automatisch an den Anfang des BufferArrays springt und für den 
neuen Empfang eines quasi beliebig breiten seriellen Worts bereit ist.
Gast #487316
In der ADSP-21992 Hardware Reference findet sich:

"If enabled, the DMA controller generates interrupts at the halfway and
completion points in the transfer."

Der Unterpunkt heißt "Autobuffer-Based DMA Transfers".

Somit verhält sich der DSP ganz nach Spezifikation. Ich denke der 81'er 
verwendet einen ähnlichen Core und wird sich da nichts nehmen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.