www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnis SPI


Autor: Stephan R (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: slw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind deine 5 µC auf einer Platine oder im Raum verteilt?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.