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.
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
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.
Maxim wrote:
> Als Übung bietet sich mir ein 24C08 an.
Da kannste SPI probieren, biste schwarz wirst, der hat nämlich I2C.
Peter
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.
Maxim wrote:
> Hm, sind die Bussysteme nicht ähnlich?
Unterschiedlicher gehts kaum noch.
I2C: Multimaster, Arbitrierung, Adressierung, Acknowledge
SPI: nichts davon
Peter
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?
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.
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.