www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP SPI Status Bit ADSP21262?


Autor: nides (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich arbeite dzt. mit dem ADSP 21262 (SHARK) an einer SPI-Übertragung.
Diese soll ohne Interrupt oder DMA laufen.
Allerdings möchte ich durch pollen des SPIF-Bit im SPISTAT Register 
prüfen, ob gerade eine Übertragung läuft.

Lt. Datenblatt sollte dieses Bit 1 sein sobald ein Transfer 
abgeschlossen ist. Das Bit ist read-only und nach dem Reset auch 1.

Ich nehme daher eigentlich an, dass wenn das Bit 0 ist, gerade eine 
Übertragung läuftn (sonst würde es keinen Sinn ergeben).

Bei meinem DSP wird das Bit allerdings nie 0.
Die Übertragung (MOSI, SCK) läuft aber korrekt, wurde mit OSZI geprüft.

Hat jemand schon mal dieses Problem gehabt?

Danke für Hinweise,

Nides

Autor: nides (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem hab ich mittlerweile gelöst:

Mein code sah so aus:

*pTXSPI = data;  // daten ins transferregister schreiben
while ((0x01 & *pSPISTAT) == 0); // warten bis fertig gesendet
...
...

Die while-Schleife wurde jedesmal übergangen, obwohl die Übertragung 
noch nicht fertig war.

Der Grund ist, dass es vom Schreibzugriff auf das Senderegister bis zum 
löschen des SPIF-Bits mindestens 2 Zyklen dauert.
Da ich mich mit verschiedenen Takteinstellungen nichtmehr rumplagen 
wollte kann ich nicht sagen ob es bei anderen Einstellungen schneller / 
langsamer geht. (4MHz SPI, 16Bit, ~190MHz core)
Jedenfalls hab ich das Problem durch einfügen von
asm volatile("nop;nop;nop;nop;");
vor der Schleife beheben können.

Laut Email-Support von Analog Device exisitiert das Problem nicht! 
nerv


Vielleicht ist ja mal wem mit der Info geholfen.

Grüße,

Nides

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.