Einpaar Fragen zur SPI

Gast #304070
Lesenswert?
• ▲
▼
Guten Tag allerseits,

Ich moechte 2 AVR's ueber SPI zusammenverbinden. Einsatzort: Motorrad,
Entfernung: 1Meter.
Kann es da zu Problemen kommen? Stoereinfluesse? Entfernung? I2C
besser?
Die AVR's sollen in beide Richtungen kommunizieren.  d.h.: Je nach
dem, soll jeder AVR eine Datenuebertragung starten koennen.
Wie mache ich das nun ? da es nur einen Master geben kann.. Wie geht es
in die andere Richtung? Kann man Master -Slave vergabe zwischendurch
auch aendern( ein anderer wird zu Master, wenn er was senden moechte)
?
Es sollen so wenige Leitungen wie moeglich verwendet werden. Also MOSI,
MISO, TAKT... Da ich nur einen Slave verwende und nicht zwischen denn
Slaves waehlen muss, kann man da auf die SS Leitung verzichten? Wie
beschalte ich die SS-Ein/Ausgaenge?

Danke voraus!
Gast #304071
Lesenswert?
• ▲
▼
Selbstverstaendlich kann und wird es da Probleme geben. Dabei ist es
aber vollkommen egal ob nun SPI, I2C oder RS232C. Entscheidend ist in
welcher Form die Signale ueber die Leitung gehen.
Das heisst du brauchst vernuenftige Bustreiber. Das allermindestes
waere z.B ein RS232 Treiber. Ich denke mal bei 1m sollte das gehen.
Ausserdem wirst du ja sicher in deinem Protokoll Pruefsummen z.B mit
CRC16 implementieren und kannst einen Datenblock nochmal anfordern wenn
er gelegentlich mal defekt ist. Reicht das nicht wuerde ich RS422
verwenden. Oder du schausst mal was bei CAN genutzt wird, schliesslich
wurde das fuer so eine Anwendung entwickelt.

Olaf
Gast #304074
Lesenswert?
• ▲
▼
SPI kennt auch Multimaster nur mus das Kommunikationsprotokoll eine
Kollisionserkennung beinhalten und der angerufene Master vorrübergehend
in den Slavemode gehen RS232 ist da toleranter. Bei einem Meter und
geringer Dataenrate geht es auch ohne Bustreiber  nur mit 5V UART und
xmodem (rx tx kreuzen).

Zum aussperren von Störsignallen solltest Du für das Gesamte System nur
eine gut gepuffertte und sternförmige verteilende Spannungsversorgung
wählen. Die UART verbindung sollte geschirmt oder noch besser doppelt
geschirmt sein aber nur einseitig mit masse verbunden werden. Bei einem
meter wäre auch Optokabel dennkbar aber für jede Richtung eines. Das
braucht dan aber die entsprechenden Treiber und Empfänger, und darf
nicht geknickt werden.

Ist es sehr unhöflich nach dem Zweck des Ganzen zu fragen? Ich habe
mich in meiner aktiven Motoraddzeit(12Jahre) auch oft mit dem Gedanken
getragen, ein bißchen mehr Elektronik an meine MZ zu basteln.
Gast #304076
Lesenswert?
• ▲
▼
Einfache bidirektionale Serielle mit 5V (evtl. RC-Filter und
Schmitt-Trigger auf der Empfängerseite) geht auf 1m sicher fehlerfrei.
Kommt auch auf die Geschwindigkeit im Verhältnis zur Grenzfrequenz des
Filters  an.
Trotzdem kann man ja CRC o.ä. vorsehen und die Fehlerrate anzeigen
lassen.
Std. SPI ginge auch, dann muss der Master regelmäßig den Slave abfragen
(pollen).
Gast #304077
Lesenswert?
• ▲
▼
Aus Erfahrung: im Kfz (Motorrad gehört für mich dazu) nichts ohne
externe Treiber für alle Signale, die die Platine verlassen.
Kann alles  ohne funktionieren, und für eine private Bastelei mag das
alles gehen.

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.