Bussystem Microcontroller

Gast #4651845
Lesenswert?

Hallo,

ich habe einen Master Microcontroller.
Die Slave Mikrocontroller sind jeweils ca 5m voneinander entfernt 
(draußen im freien) welches Bus-system ist dafür am besten geeignet? auf 
die Geschwindigkeit kommt es dabei nicht an. (Keine Kritischen 
Anwendungen, nur Messwerte erfassen)

vielen Dank im voraus
Gast #4651908
Lesenswert?

Heutzutage ist immer mehr CAN zu empfehlen.
Wird immer günstiger und hat schon viele wichtige Features spezifiziert.
Würde ich in Erwägung ziehen.
Wenn dein Controller außer für den Bus keinen U(S)ART benötigt, brauchst 
du nur einen.
Zusätzlich Transceiver deiner Wahl.
#4651917
Lesenswert?

Susanne schrieb:
> ist i2C kein Platinenbus?
 Doch

Susanne schrieb:
> wie groß ist da die Reichweite?

Das hängt von diversen Faktoren ab, ist aber für den Vorhaben auf jeden 
Fall ungeeignet.

Am besten nimmst du eine RS-485 oder CAN. Beides wurde im Gegensatz zu 
I2C und RS-232 für genau solche Anwendungen entwickelt.

Falls du dich für eine RS-485 entscheidest, ist das oben bereits 
genannte MODBUS-Protokoll (MODBUS RTU) auch sehr zu empfehlen. Dieses 
ist ein Standard und du kannst neben deinen selbstgebauten Geräten auch 
gekaufte Geräte an den BUS hängen.
#4652089
Lesenswert?

I2C ist meiner Meinung nach nur bedingt geeignet. Du müsstest dir 
durchrechnen, welche Kapazität deine Leitung mit den verwendeten Kabeln 
hätte. Die darf einen bestimmten Wert nicht überschreiten, dass das 
ganze noch funktioniert (das waren glaube ich um die 400pF).
Bei 30m wird das vermutlich kritisch
#4652563
Lesenswert?

Sehr interessante Ideen für Bussysteme werden hier gepostet Ironie.

I2C oder SPI sind nur für Anwendungen auf kurze Distanz (Platine) oder 
mit viel Schirmung über etwas längere Distanzen gedacht. Klar könnte es 
mit einem entsprechend geschirmten Kabel (HDMI /DVI) auch über 5m 
funktionieren, aber warum nimmt man nicht gleich die dafür vorgesehenen 
Bussystem RS485 mit Modbus oder CAN?
Bei CAN bräuchte man halt für den Atmega noch einen Controller (falls 
der Atmega keinen intern hat) und Transceiver.
Bei RS485 reicht doch ein Transceiver aus. Gibts für 2€.

Aus meiner Sicht würde ich hier ganz klar auf RS485 setzen.
Gast #4652570
Lesenswert?

SPI ist durchaus auch für 5 bis 30m geeignet wenn man darauf achet die 
rücklaufende Welle beim Sender zu Terminieren (Serien-Terminierung) und 
eine Leitung mit definiertem Wellenwiderstand nimmt. (bitte beide 
Begirffe googeln, dann gibts auch eine ausführlichere Anleitung)

Also auf der sendenen Seite (Clk,MOSI) einen 30-70 Ohm Widerstand in 
Reihe, dann auf ein verdrilltes Adernpaar einer twisted pair Leitung 
gehen (CAT5 oder einfach ein verdrilltes Adernpaar einer Telefonleitung)
Welcher Widerstand für die Serienterminierung passt kann man mit einem 
Oszilloskop überprüfen.

 Master                                                    Slave
 Pin -> 50 Ohm Widerstnad -> Verdrillte Leitung (1.Ader)  -> 
Empfänger-Pin
                    GND   -> Verdrillte Leitung (2.Ader)  -> GND

Für die Rückleitung (MISO) den Widerstand auf die rechte Seite (d.h. 
immer auf die Seite die das Signal sendet)
(Firma: Schweigstill IT) Persönliche Seite #4652576
Lesenswert?

Christian M. schrieb:
> Susanne schrieb:
>> ist i2C kein Platinenbus?
>  Doch

Jein. I2C wurde damals (Anfang 1980er Jahre) von Philips eingeführt, um 
damit z.B. die Komponenten in Fernsehgeräten anzusteuern. Grundig usw. 
nutzten auch die I2C-tauglichen Bausteine von Philips, z.B. Tuner, 
Videotextdecoder, usw.. Der I2C-Bus wurde aber auch auf einer 
vierpoligen Buchse aus dem Fernseher herausgeführt, um einen 
angeschlossenen Videorecorder ansteuern zu können. Ich gehe davon aus, 
dass Philips bei der Definition von I2S auch schon solche Szenarien 
bedacht hatte.

Auf Grund der recht hochohmigen Pull-Up-Widerstände, die überhaupt 
nichts mit den zu erwartenden Wellenwiderständen der 
Verbindungsleitungen zu tun haben, ist I2C eigentlich nicht für größere 
Strecken geeignet.
Gast #4652611
Lesenswert?

IIC geht schon, insbesondere wenns eine einmalige Bastelei ist.

Und wenn keine Vorkenntnisse vorhanden sind, was ja schon die 
Fragestellung nahelegt, würde ich nicht im Traum daran denken mich 
deshalb in die komplexen Protokolle von CAN & Co einzuarbeiten, dauert 
ja Monate bis das einwandfrei läuft...

Man könnte sich ggf. auch selbst etwas ausdenken, was zur Anwendung 
passt. Wenns nicht zeitkritisch ist kann man doch die Daten + Prüfsumme 
beliebig langsam über 2 Drähte von Station zu Station "morsen".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren