Leitungslänge mit SPI Bus

Gast #262170
Lesenswert?
• ▲
▼
servus,

hat jemand erfahrungen mit der möglichen leitungslänge bei einem SPI
bus?! wieviel m sind möglich, und gibt es evtl auch für SPI einen
treiberbaustein/bus buffer um die störanfälligkeit und leitungslänge zu
erhöhen?
wie könnte man theoretisch die max. länge errechnen?

danke im voraus!

mfg
Gast #262171
Lesenswert?
• ▲
▼
hmm spi ist eher für kurze leitunslängen gedacht... also im bereich
einer platine.. mit ganz normalen leitungstreibern kannst du natürlich
die max. länge erhöhen.. habe selbst schon eine anzeigetafel mit 16
slaves zum laufen gebracht ( max. Leitunslänge war hier ca. 1-2m ) (mit
leitungstreibern!)
Gast #262172
Lesenswert?
• ▲
▼
danke. welche treiber hst du genommen?
und weiss jemand, ob die max. leitungslänge wie bei I²C von der
leitungskapazität, oder eher wie bei CAN, von der laufzeit abhängt?!

zu SPI findet man leider sehr wenig, da keine konkrete spezifikation
vorhanden ist. wie sieht das protokoll, bzw. der rahmen aus?
und gibt es etwaige sicherungsmechanismen der zu übertragenden daten?

mfg
Gast #262173
Lesenswert?
• ▲
▼
soweit ich weiß, gibts da gar nix: kein protokoll, kein rahmen, keine
fehlerkorrektur. spi definiert nur die steuerung der übertragung. also
wer sagt, wanns losgeht, wer nimmt entgegen bzw. sendet, mit welchem
takt wird getimet. das ist alles, was bei spi festgelegt wird.
Gast #262174
Lesenswert?
• ▲
▼
SPI ist kein genormter Bus wie z.B I2C. Es ist letztlich nur eine
syncrone serielle Schnittstelle. Deshalb gibt es z.B in den
Microcontrollern auch immer so tolle Einstellmoeglichkeiten wie z.B
Ruhepegel oder mit welcher Flanke die Daten uebernommen werden sollen.
Das kann naemlich jeder Hersteller anders machen.

Natuerlich gilt aber fuer SPI genauso wie fuer I2C die Physik.
Selbstverstaendlich gibt es daher Leitungslaengen die man nicht
ueberschreiten sollte. Nur haengen die halt vom Kabel, den Treibern,
der Terminierung, der Anzahl der Devices und der GEschwindigkeit ab.

Allerdings ist SPI eher unproblematisch weil es keine bidirektionalen
Leitungen gibt und der Bus eben synron ist. Ich hab z.B an meinem R8C
den SED1520 mit 1.6Mhz CLK und etwa einem Meter Flachbandkabel laufen.
Dabei habe ich nur die CLK Leitung mit 100pF+100R terminiert. Geht sehr
gut.
Wenn man ein ordentliches Flachbandkabel nimmt, jede zweite Leitung
Masse ist, alle Leitungen richtig terminiert sind, am Controller wie
auch am Slave richtige Bustreiber verwendet werden dann wird es
sicherlich auch ueber viele Meter gehen. Da tritt dann eher das Problem
auf das man so ab 5-10m mal ueber potentialfreie Leitungen nachdenken
sollte. Aber auch das geht wegen der unidirektionalitaet noch recht
gut. Jedenfalls wenn man mit dem CLK unterhalb dessen bleiben kann was
ein Optokoppler so mitmacht.

Olaf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.