www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Slave


Autor: ubootfanat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab folgendes Problem:

es geht darum, in einem µC (SPISlave) daten bereitzustellen, welche
sich der zweite µC (SPIMaster) bei bedarf holen kann.

Wie kann ich nun ein Datenbyte im SPISlave zur Verfügung stellen?

danke

mfg florian

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab hier nen PC aber find nicht den passenden Treiber, kann mir
jemand helfen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst: RTFM

Danach: Einfach auf Slaveseite das Datenbyte in das Datenregister
schreiben. Indem Moment wo der Master was sendet, empfängt dieser
gleichzeitig das Byte.

Das Tutorial dieser Seite ist auch zu empfehlen.

Alternativ ein simples Beispiel:
http://www.mc-project.de/Pages/AVR/Software/SPI_ATMega8.zip

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der SPI-Slave schreibt einfach das Byte in das Datenregister und der
Master holt es ab, wann er lustig ist.

Der SPI-Slave kriegt dann einen Interrupt, wenn das Byte abgeholt wurde
und kann erst dann ein neues Byte reinschreiben.

Blöd ist nur, daß bei den AVRs das SPI keine Puffer hat, d.h. der
Master muß nach jedem Byte eine Wartepause einlegen, damit der Slave
genügend Zeit hat, das nächste Byte bereitzustellen.

Einige neuere Atmel 8051-er haben deshalb einen SPI-Sendepuffer, d.h.
man kann zu Anfang gleich 2 Bytes reinschreiben und hat dann immer
genügend Zeit bereits das nächste Byte zu schreiben, während das
vorhergehende noch gesendet wird.


Peter

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.