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!
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
Das einfachste sollte eine RS485 sein. Kommt mit 2 Leitungen aus und ist ziemlich störfest. Halbduplex.
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.
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).
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.