www.mikrocontroller.net

Forum: Compiler & IDEs ATmega und RS485


Autor: Christian Engel (Gast)
Datum:

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

Autor: Falk (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

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

Autor: Michael Prader (praderbz)
Datum:

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

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

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.