www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einpaar Fragen zur SPI


Autor: Heinz Peters (Gast)
Datum:

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

Autor: Olaf (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das einfachste sollte eine RS485 sein. Kommt mit 2 Leitungen aus und ist
 ziemlich störfest. Halbduplex.

Autor: Heinz Peters (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Olaf

SPI 5 volt  kann ich direkt vergessen oder wie?

Autor: Winne (Gast)
Datum:

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

Autor: Winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry ich meinte TWI (two wire Interface) siehe Datenblatt

Autor: Profi (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

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

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.