Gast
#2084154
Hallo zusammen, ich hätte mal eine Frage zum Datenempfang per SPI auf dem AT91SAM7X256 von Atmel. Vielleicht hat ja jemand von euch Erfahrung damit und kann mir weiterhelfen. Folgendes Problem: Es geht um die SPI Kommunikation mit einem externen AD-Wandler. Der SPI Controller ist auf 16 Bit Datenwörter eingestellt (passend zur Spezifikation des ADC). Ich sende jetzt die Anfrage per SPI raus, und warte eine gewisse Zeit. Dann muss ich ja, aufgrund der Funktionsweise mit Shift-Registern erneut etwas senden (bzw. zumindest für eine Clock sorgen), um die Antwort des ADC zu empfangen. Der ADC schickt auch die richtige Antwort raus (habe das mit einem Logic Analyzer geprüft). Ich warte nun, dass mir das RDRF-Bit im Status Register anzeigt, dass der Empfang abgeschlossen wurde. Danach lese ich das Receive Data Register aus. Aus irgendeinem Grunde stehen hier aber nicht die soeben empfangenen Daten drin (die ich ja über den Logic Analyzer sehen konnte), sondern die Daten vom Empfang davor. Die richtigen Daten kommen erst beim wiederum nächsten Sendevorgang rein. Ich könnte jetzt jedesmal noch einen zusätzlichen Sendevorgang einbauen, aber das ist ja nicht Sinn der Sache. Hat von euch jemand eine Idee, woran das liegen könnte? Danke schonmal! Viele Grüße Florian