Forum: Compiler & IDEs ATmega und RS485


von Christian Engel (Gast)


Lesenswert?

Hallo,

plane zwei ATmega mittels der Physik RS485 über eine Distanz von 60m 
miteinander zu verbinden.

Hat jemand schon mal ein solches Vorhaben durchgeführt und kann mir 
bzgl. möglicher Ausgangspunkte hinsichtlich der Softwareimplementierung 
helfen bzw. einen Hinweis auf eine Quelle geben?

Gruß aus Wolfsburg

Christian

von Falk (Gast)


Lesenswert?

@Christian Engel

>plane zwei ATmega mittels der Physik RS485 über eine Distanz von 60m
>miteinander zu verbinden.

>Hat jemand schon mal ein solches Vorhaben durchgeführt und kann mir

Ja. U.a. ich.

>bzgl. möglicher Ausgangspunkte hinsichtlich der Softwareimplementierung
>helfen bzw. einen Hinweis auf eine Quelle geben?

Links hab ich jetzt nicht, war alles selber gestrickt. Ich hatte ein 
kleines Protokoll definiert welches mit 6 Bytes/Paket arbeitet.

1. Byte Startkennung 0x40 "@"
2. Byte Zieladresse  0 Master (PC), 1...254 (Slaves) 255 Broadcast
3. Byte Kommando
4./5. Byte Daten
6. Byte  CRC

Da mein Master ein PC war, ich aber keine Lust/Ahnung auf 
Kernel-Treiberprogrammierung hatte, habe ich die Bussteuerung in einen 
AVR exportiert (Receiver/Transmitter enable). Es reicht aber auch ein 
Monoflop. Dazu gibts einige Threads hier im Forum. Such einfach mal.

MFG
Falk

von Oliver (Gast)


Lesenswert?

Beitrag "RS232 durch RS485 ersetzen"

Wenn es dir nur um die Störsicherheit auf der langen Leitung geht, und 
du die Bus-Fähigkeiten bei nur zwei Teilnehmern nicht benötigst, nimm 
RS422. Das ist hardwareseitig sowas wie full-duplex-RS485 (4-draht), und 
softwareseitig ist das nichts anders als RS232.

Oliver

von Michael P. (praderbz)


Lesenswert?

Hallo Christian,

ich habe ein solches Projekt gebaut. Es ist ein Peer-to-peer-System mit 
maximal 254 Busteilnehmern, welches Datenpakete variabler Größe 
(maximale Größe beim Kompilieren definierbar) mit 57600bps 
tranpsortieren kann. Es bietet eine sehr sichere Übertragung durch 
Arbitrierung außerhalb der Datenpakete, durch die Verwendung von 
Slew-rate-limitierten Treiberbausteinen und durch eine bei größeren 
Längen vorzunehmende Terminierung. Als Verbindungsmedium wird 
vorzugsweise Cat5-Kabel eingesetzt.

Ich darf dich auf dieses Posting in der Codesammlung verweisen:
Beitrag "RS485 Funktionen"

Die Version vom Mai 2006 (Datum des Posts) ist lauffähig und die derzeit 
letzte Revision.

Das Projekt stammt ursprünglich von hier und wurde von mir auf AVR-GCC 
portiert:
http://www.drgw.net/~maverick/pmwiki.php/Electronics/MRBus

Hier sind die Spezifikationen des Busses (umfangreich, aber sehr 
informativ):
http://www.drgw.net/~maverick/pmwiki.php/Electronics/MRBusSpec

Ich darf dich auch noch auf die Diskussionsgruppe verweisen, welche ohne 
Registrierung eingesehen werden kann.
http://groups.yahoo.com/group/mrbus


Ich weiß nicht, wie deine Implementierung des Busses aussehen soll, 
insofern empfehle ich dir die Lektüre der Spezifikationen, sodass du dir 
selbst ein Bild machen kannst.

Grüße
Michael Prader

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.