www.mikrocontroller.net

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


Autor: Maxim (Gast)
Datum:

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

Autor: Maxim (Gast)
Datum:

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

:D

Autor: Carlos (Gast)
Datum:

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

Autor: Maxim (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maxim wrote:
> Als Übung bietet sich mir ein 24C08 an.

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


Peter

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, sind die Bussysteme nicht ähnlich?

Autor: Maxim (Gast)
Datum:
Angehängte Dateien:

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

Autor: Peter Dannegger (peda)
Datum:

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

Unterschiedlicher gehts kaum noch.

I2C: Multimaster, Arbitrierung, Adressierung, Acknowledge

SPI: nichts davon


Peter

Autor: Maxim (Gast)
Datum:

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

Autor: Peter (Gast)
Datum:

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

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt also gar keine Fehlererkennung?

Autor: Peter (Gast)
Datum:

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

Autor: Robert Teufel (Gast)
Datum:

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

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.