Forum: Mikrocontroller und Digitale Elektronik Verständnis SPI


von Stephan R (Gast)


Lesenswert?

Moin!

Meine Zusammenschaltung von 5 Atmegas soll über ISP vonstatten gehen, 
wobei nacheinender vom Master Solldaten an die Slaves und Istdaten 
zurück zum Master gesendet werden soll. Standard halt.

Dazu versuche ich derzeit, mich in SPI einzulesen.


Was ich nicht verstehe: (Unzutreffendes bitte streichen)

Sende- ist gleich Empfangsschieberegister. Was bei M raus geht, geht bei 
S rein. M macht das so lange, bis er nix mehr zu senden hat, er hat 
schließlich die MACHT, den SCK. So weit so gut.

Wenn aber der Slave etwas senden möchte? Woher weiss M, dass S noch was 
zu sagen hat und daher noch bissel weiterclocken muss??

von TestX .. (xaos)


Lesenswert?

Stephan R schrieb:
> Sende- ist gleich Empfangsschieberegister. Was bei M raus geht, geht bei
> S rein. M macht das so lange, bis er nix mehr zu senden hat, er hat
> schließlich die MACHT, den SCK. So weit so gut.
>
> Wenn aber der Slave etwas senden möchte? Woher weiss M, dass S noch was
> zu sagen hat und daher noch bissel weiterclocken muss??
schau dir mal die tutorials hier an und SPI auf wikipedia

die übertragung zwischen master und slave läuft SYNCHRON. der master 
sendet ein byte und empfängt simultan eines.
der slave kann also nur senden wenn er etwas vom master empfängt. also 
nicht eigenständig

von slw (Gast)


Lesenswert?

sind deine 5 µC auf einer Platine oder im Raum verteilt?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stephan R schrieb:
> Sende- ist gleich Empfangsschieberegister.
Logisch ja.
Das ist aber nicht zwingend auch physikalisch so aufgebaut. Es können in 
Slave und/oder Master durchaus 2 getrennte Schieberegister sein. 
Allerdings werden die dann mit dem selben Takt angesteuert.

> Wenn aber der Slave etwas senden möchte?
Dann muß er warten, bis der Master das abholt. Der Slave könnte mit 
einer zusätzlichen Leitung seinen Übertragungswunsch ankündigen, aber 
üblicherweise werden SPI-Slaves (z.B. AD-Wandler) einfach schnell genung 
gepollt... ;-)

> Woher weiss M, dass S noch was
> zu sagen hat und daher noch bissel weiterclocken muss??
Das steht im Datenblatt des Slaves. Und wenn du selber den Slave 
programmierst, weißt du ja, welche Wortlänge übertragen werden soll.

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
Noch kein Account? Hier anmelden.