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.
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."
Max B. schrieb: > Ich hoffe mir kann jemand helfen. > Ich wäre sehr froh darüber, da ich jetzt schon drei Tage an diesem > Problem sitze. SCK und SS irgendwie miteinander verbunden ?
Höchstwahrscheinlich ist SS ein unkonfigurierter Pin (also Eingang) und fängt sich per kapazitivem Übersprechen das Signal von SCK ein. Das Oszillogramm zeigt auch etwas Übersprechen von MOSI nach SS.
:
Bearbeitet durch User
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.
Marc V. schrieb: > Max B. schrieb: >> Ich hoffe mir kann jemand helfen. >> Ich wäre sehr froh darüber, da ich jetzt schon drei Tage an diesem >> Problem sitze. > > SCK und SS irgendwie miteinander verbunden ? Hardwaretechnisch sind die Leitung nicht miteinander verbunden. Alle verlaufen seperat voneinander.
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?
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.