www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI oder I2C


Autor: peter_klein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo!

mir gefällt euer forum sehr gut und hoffe ihr könnt mir weiterhelfen:

ich benötige in einem projekt ein kleines uC netzwerk aus 2-3 uC.
ich möchte eine sehr einfache übertragung von daten realisieren
(master sendet zB 10001 - slave empfängt dies und ruft dementsprechendes 
unterprogramm auf..)

meine frage ist nun:
was soll ihc machen, I2C oder SPI?

da dieses projekt sehr kritisch beurteilt wird bitte ich um pro und 
kontra für beide varianten 
(preis,verkabelung,einfachheit,"reichtweite"....)

wäre sehr sehr dankbar für informationen und tipps.

liebe grüße,
peter

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SPI ist (Clock, DataIn, DataOut und ChipSelect), waehrend I2C aus (Data, 
Clock und Direction) besteht. Dh I2C schaltet die Richtung des Datenpins 
um. SPI ist daher sehr viel schneller. Davon abgesehen haben die meisten 
Controller ein SPI port.

rene

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank!

würde mich sehr freuen wenn auch noch andere ihr wissen einbringen 
könnten

Autor: KlaRaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
SPI ist wohl schneller als I2C aber nur etwas für kurze Strecken.
I2C kann bis 100 KHz, bzw. 400 KHz, über einige Meter betrieben werden. 
Wird ein CAT5-Kabel verwendet geht es auch noch weiter. Mit Repeatern 
und Extendern kann man noch höhere Reichweiten erzielen.
Wird der Takt z.B. von 100 KHz auf 10 KHz verringert, so erhöht sich 
ebenfalls die Reichweite, hier um den Faktor 10.
Die I2C-Bausteine haben alle eine Adresse, so dass der Bus mit SDA und 
CLK auskommt. SPI benötigt, so glaube ich, je Client eine 
Select-Leitung.

Zum I2C-Bus siehe auch http://www.cc2net.de/Tips/tips.html, I²C als 
Feldbus (I²C-Bus mit langer Leitung). Hier gibt es auch einigen 
qualifizierten Support.

Gruss Klaus.

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde definitiv SPI bevorzugen - gerade für längere Strecken.
I2C/TWI benutzt Pull-Ups, da Master- und Slavegeräte den Pegel senken 
können müssen (OpenCollector).

Meiner Meinung nach ist SPI deutlich störunempfindlicher (da "Push-Pull" 
und extra Takt).

Dazu kommt noch, daß SPI deutlich einfacher als die TWI/I2C zu 
programmieren und debuggen ist (bei SPI sieht man mit dem Osci, wer 
gerade sendet).

Ach ja... SPI runtertakten geht dank ClockPrescaler auch.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Entfernung ?
Was für MCs ?


Bei >1m würde ich das gute alte RS-485 als single Master nehmen, ist am 
einfachsten.


Bei den AVRs würde ich das SPI nicht nehmen, ist leider ungepuffert.
D.h. Du kriegst massive Schwierigkeiten im Slavemode mehrere Bytes zu 
senden, wenn Du nicht ellenlange Wartezeiten oder ein cleveres Handshake 
einbaust.

Z.B. die AT89LP4052 (8051-Derivat) haben dagegen gepuffertes SPI und 
Interruptprioritäten, damit kriegt man dann full-Speed-Slaves hin.


Peter

Autor: Andreas Hoffmann (andreas1993)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich hätte damal eine Frage. Ich bin am überlegen, ob ich einen SPI oder 
I2C-Schnittstelle nehmen soll. Hab schon viel über die Vor- bzw. 
Nachteile gelesen.

Meine Frage wäre jetzt, warum ist die I2C-Schnittstelle 
störempindlicher?

Gruss
Andreas

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.