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


von Hendrik (Gast)


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

von Alex (Gast)


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 ...

von Hendrik (Gast)


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.

von Alex (Gast)


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.

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.