Forum: Mikrocontroller und Digitale Elektronik ATmega Netzwerk - welches Bussystem?


von Manu B. (Gast)


Lesenswert?

Hi,

ich möchte zwischen mehreren ATmegas ein Netzwerk aufbauen.
Im Grunde handelt es sich um ein Netzwerk mit einem Master und mehreren 
Slaves.
Die Slaves haben zu Master einen Abstand von bis zu 20m.
Welches Bussystem bietet sich hierfür am besten an?
Ich befürchte, dass I2C bei diesen Entfernungen nicht mehr so 
zuverlässig ist. Dachte schon an CAN, aber das wird von den ATmegas 
nicht ohne weiteres unterstützt. Wie schaut es mit RS485 aus?

Ich kenne mich mit der ATmega Programmierung aus, mit PICs (haben 
integrierte CAN Driver) habe ich bisher nicht gearbeitet. Deshalb dachte 
ich, es würde mir Zeit sparen auf der ATmega Plattform zu bleiben.
Wie kompliziert ist eine RS485 Implementierung?

Habt ihr andere Ideen/Empfehlungen?

Vielen Dank!

Gruß,
Manu

von Purzel H. (hacky)


Lesenswert?

Wenn's bidirektional Master slave sein soll, waere auch RS422 eine 
Alternative. Das ist ein RS485 aber bidirektional, mit 4 Leitern
plus GND. Die Implementation ist einfacher, das die Richtungsumschaltung 
des RS485 entfaellt.

Interessant waere auch welchen Baudrate, und ob Master-Slave oder 
Multimaster.

von Manu B. (Gast)


Lesenswert?

Ich habe nur EINEN Master.
Allerdings soll der Master einigen Slaves Kommandos senden und von 
anderen Slaves Informationen empfangen. Also Bidirektional.

Gruß,
Manu

von Purzel H. (hacky)


Lesenswert?

Das nennt sich dann Master-Slave. Dafuer waere RS422 geeignet.Ein 
Leiterpaar vom Master weg an alle Slaves, und ein Leiter Paar von allen 
Slaves zum Master. Der Master darf immer senden. Dann muss man nur 
definieren wer wann antworten darf, ueberlicherweise der Angesprochene.

von Manu B. (Gast)


Lesenswert?

Das heißt, ich kann das auch Sternförmig verkabeln?
Ein Leiterpaar vom Master zum Stern und von da an die Receive-Anschlüsse 
der Slaves. Von den Send-Anschlüssen der Slaves an den Stern und von da 
an den Receive-Anschluss des Masters.

Richtig?

von Manu B. (Gast)


Lesenswert?

Da würden sich ja RJ-12 Telefonkabel und Buchsen anbieten :-)

von Norbert T. (atos)


Lesenswert?

Hi!

Wenn pro AVR ein PCA9600 in Frage kommt, kannst du ohne weiteres auch 
I2C benutzen, schaue dir die entsprechenden Appnotes von NXP an. (Vor 
allem - AN10658 - Sending I2C-bus signals via long communications cables

von Manu B. (Gast)


Lesenswert?

Das mit dem PCA9600 schaut eigentlich ganz nett aus.

Bedingung für alle Systeme ist, dass ich ein gemeinsames Ground habe, 
oder?

Gruß,
Manu

von krumeltee (Gast)


Lesenswert?

Ein CAN-Transceiver kostet auch nicht die Welt und das Protokoll kann 
man in Software machen.

von Harald S. (hasti)


Lesenswert?

also der at90can128 ist ein Atmega mit CAN. Den setze ich sehr oft ein. 
Kann ich nur empfehlen. 20 m sind da kein Problem und Multi-Master-fähig 
ist der Bus auch. Sehr einfach erweiterbar. 3 leitungen und gut ist...

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
Noch kein Account? Hier anmelden.