Forum: Mikrocontroller und Digitale Elektronik SPI Beispiele, Übungen.


von Maxim (Gast)


Lesenswert?

Leider gibt es auf mikrocontrolle.net nicht viel zu SPI. Ich bräuchte 
Beispiele in C. Als Übung bietet sich mir ein 24C08 an. Habe bis jetzt 
einige Artikel gelesen, aber keine konkreten Beispiele gefunden. Es 
klingt alles ganz einfach, nur ist das eben alles Theorie ...

Ich suche also GUTE Links.

von Maxim (Gast)


Lesenswert?

Pardon, habe gerade etwas in der Suche gefunden:
Beitrag "externes EEPROM mit AVR ansteuern"

:D

von Carlos (Gast)


Lesenswert?

Hallo,
habe Demo-Programme in C für 8051er für LED-Display-Treiber MAX7219 
(z.B. 4-fach Bargraph-Anzeige) und 8-fach Relais-Treiber mit MAX4820.

Gruß

Carlos

von Maxim (Gast)


Lesenswert?

Gibt es in C fertige Routinen oder hast du sie selber geschrieben?
Hardware- oder Software-Loesung?

Ich lese gerade das Datenblatt des ATMega8. Aber vielleicht waeren deine 
Beispiele auch hilfreich.

von Peter D. (peda)


Lesenswert?

Maxim wrote:
> Als Übung bietet sich mir ein 24C08 an.

Da kannste SPI probieren, biste schwarz wirst, der hat nämlich I2C.


Peter

von Maxim (Gast)


Lesenswert?

Hm, sind die Bussysteme nicht ähnlich?

von Maxim (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang ist eine Tabelle mit der Beschaltung des Evalutionboard 2.0 
von Pollin. Jeder Pin ist mit allen anderen in einer Zeile verbunden. 
Das Board bietet mehrere Sockel, unter anderem für ATMega8 und 
ATMega16/32. Kann ich zwei der genannten uCs gleichzeitig betreiben? 
Jeder uC hat einen eigenen Quarz. Bis jetzt habe ich das für sinnlos 
gehalten. Aber wenn es klappt, kann ich damit wunderbar mit der SPI 
rumspielen.

Ich will aber nichts verbraten.

von Peter D. (peda)


Lesenswert?

Maxim wrote:
> Hm, sind die Bussysteme nicht ähnlich?

Unterschiedlicher gehts kaum noch.

I2C: Multimaster, Arbitrierung, Adressierung, Acknowledge

SPI: nichts davon


Peter

von Maxim (Gast)


Lesenswert?

Habe zwei uCs gleichzeitig auf dem Pollin-Board ausprobiert und einen 
Pin am Mega16 verbraten weil an der selben Leitung ein Pin vom Mega8 
high war und beide Pins als Ausgang definiert waren.

Aber solange man vorsichtig ist, geht das.

Kann man durch SPI auch irgendwas kaputt machen indem man falsch 
anschließt oder konfiguriert?

von Peter (Gast)


Lesenswert?

SPI ist der primitivste und schnellste serielle bus, den es gibt. im 
einfachsten fall: der 'sender' gibt auf einem i/o port abwechselnd 
nullen und einsen aus (takt) und auf einem anderen gibt er synchron dazu 
die daten aus (auch einsen oder nullen, allerdings nicht abwechselnd, 
sondern entsprechend den datenbits). der 'empfänger' liest nun bei jeder 
änderung des taktsignals (z.b. von 0 auf 1) die datenleitung und 
-schwupps- hat er die daten erhalten.

von Maxim (Gast)


Lesenswert?

Es gibt also gar keine Fehlererkennung?

von Peter (Gast)


Lesenswert?

> Es gibt also gar keine Fehlererkennung?
nein, aber das ist kein problem. SPI wird normalerweise nicht über 
grosse entfernungen eingesetzt. du kannste natürlich alles mögliche 
damit machen, irgendwelche protokolle benutzen usw., der phantasie sind 
keine grenzen gesetzt.
http://www.mct.net/faq/spi.html

von Robert Teufel (Gast)


Lesenswert?

Fehlererkennung nur mit einem uebergeordneten Softwareprotokoll.

Solltest wirklich noch etwas an den Grundlagen arbeiten! Eines haben SPI 
und I2C gemeinsam, beides sind synchrone Schnittstellen.

Robert

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.