www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP 32bit Samples einlesen mit ADSP-2181


Autor: Hendrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ...

Autor: Hendrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.