ATmega2560 SPI MISO Auswertung

OP #5526732
Hallo Leute,

ich bin gerade an einem Projekt und benutze dafür das erste mal die SPI 
Verbindung. Da dieser Bereich für mich Neuland ist, wollte ich vorab ein 
paar Versuche machen.
Mein Problem ist das ich nicht hinbekomme die Daten der MISO Leitung, in 
den ATmega2560 als Master wieder einzulesen bzw. auszuwerten.



Der Aufbau sieht folgender Maßen aus.
Als Software für benutze ich das Atmel Studio 7.0.
Den ATmega2560 habe ich auf einem Entwicklungsboard und möchte mit 
diesem als Master über MOSI Daten senden, über MISO Daten empfangen und 
anschließend im Programm auswerten.


Für den Slave haben ich kurzerhand einen Arduino Nano genommen, auf den 
ich ein Programm mit der Arduino Software und Library geladen habe. 
Dieser hat nur die Funtkion die Daten auf der MOSI Leitung auszuwerten 
und falls diese entsprechend dem Programm korrekt sind (0xae), soll er 
andere Daten auf der MISO Leitung rausschicken (0xcc).


Auf dem Oszi Bild kann man erkennen das der ATmega2560 die Daten korrekt 
auf auf der  MOSI Leitung herausschiebt, dass der Arduino diese richtig 
interpretiert und anschließend die korrekte Daten auf der MISO Leitung 
herausschiebt.

Was für mich noch etwas verwunderlich ist, ist die niedrige Spannung der 
SS Leitung.





Da ich gelesen habe das die Daten des MISO nach dem Senden anschließend 
in das Datenregister (SPDR) des SPI geschrieben wird, habe ich versucht 
das Register auszuwerten. Das habe ich leider mit meinen Mitteln nicht 
hinbekommen.



Anbei ist das Programm, dass ich mir durch lesen der Datenblätter und 
von Webseiten zusammengetragen habe. (Als Text und Programm)


Kleine Notiz zum Programm
Wenn ich im Programm in der IF Bedinung:
"received" einsetze und vergleiche, leuchtet keine LED
"tData" einsetze und vergleiche, leuchet es im Sendemuster 0b00110011 
(0xae)

Bei einem Versucht mit "Switch Case" bei der Verwendung mit "received" 
oder "SPDR", war default immer aktiv.



Ich hoffe mir kann jemand helfen.
Ich wäre sehr froh darüber, da ich jetzt schon drei Tage an diesem 
Problem sitze.
Angehängte Dateien:
Gast #5526841
Mit .rar kann/will ich nichts anfangen, und bei .txt sehe ich, zumindest 
auf den ersten Blick, nichts mit SS == PB0.

"When configured as a Master, the SPI interface has no automatic control 
of the SS line. This must be handled by user software before 
communication can start."
OP #5527838
Soweit ich mich noch erinnner kann habe ich "SS" schon mal als Ausgang 
konfiguriert "(1<<PB0)", aber keine Änderung gesehen. Ich werde das 
ganze aber nochmal ausprobierern und Rückmeldung geben.


Anbei ist jetzt die Main.cpp meines Programmes. Ich hoffe sie hilft zur 
Problemlösung.
Angehängte Dateien:
OP #5530498
Ich hab das ganze noch mit der konifiguration des Pins versucht, aber 
ohne Erfolg.

Stattdessen hab ich festgestellt das wenn ich SPDR versuche auszulesen 
erhalte ich nur 255 also 0xFF und im SPDR steht weiterhin 0x00. (Siehe 
Bild)

Woran könnte das liegen?
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.