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
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 ...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.