PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SPI Slave senden Verständnisfrage



semicolon
22.06.2007, 22:06
Hardware: ATmega162

Ich habe mal generell eine Frage zur /SS Leitung. Ist sie bei logisch 1 auf LOW oder eben umgekehrt?

Dann noch was. Ich verbinde zwei ATmega's via SPI miteinander. Das funktionier soweit auch gut ausser, dass ich den ersten Wert, der vom Slave an den Master gehen sollte, nicht der ist, denn ich eigentlich erwarte.

Nun habe ich in mal gelesen, dass der Slave solange warten muss mit dem befüllen seines SPDR, bis der Master die /SS Leitung auf 1 gezogen hat. Stimmt das?

Ich habe dieses Problem folgendermassen. Ich schreibe via SPI vom Master 16 Charakters die ich im Slave empfang und in ein Array ablege. Das ganze läuft ohne Interrupt. Diese 16 Zeichen bearbeite ich im Slave und gebe dem Master via externern Interrupt ein Zeichen, dass der Slave fertig ist und parat für die Übermittung wäre.
Nun lege ich den ersten Wert meines Arrays beim Slave ins SPDR Register . Der Master seinerseits sendet 0x00 und liest das erhaltene Byte aus. Leider ist es nicht das, was es sein sollte, sondern noch das letzt Byte von der Übermittlung Maser -> Slave.

Weshalb kann ich nicht ins SPDR schreiben??

Danke für eure Hilfe

franzl
23.06.2007, 09:56
Hi,
ich will ja nicht unhöflich sein, aber für all deine Fragen findet man eigentlich im Datenblatt des Atmega die Antwort.

mfg franz

semicolon
24.06.2007, 16:43
Ja schade, wenn ichs nach dem Datenblatt verstanden hätte, würde ich wahrscheinlich mein Problem nicht posten. Aber danke dennoch für eure Hilfe.