Forum: Mikrocontroller und Digitale Elektronik SPI Slave


von ubootfanat (Gast)


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

von Simon Küppers (Gast)


Lesenswert?

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

von Alex (Gast)


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

von Peter D. (peda)


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

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.