www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 mit Atmega128


Autor: Klaus Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, wie kann ich mit einem Atmega128 eine RS485-Schnittstelle
realisieren und damit dann Daten an Computer senden?

Vielen Dank für die Hilfe

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit entsprechenden Treiber-Bausteinen, die an den UART angeschlossen
werden, z.B. SP491E, LTC491 oder SN75180.

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang noch ein paar Infos zur RS485.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ATmega128 hat so um die 2 serielle Schnittstellen (USART auch
genannt). Die verbindet man mit einem RS485-Transceiver.
Mit einem weiteren Portpin wird dann dessen Sende-Baustein ein- und
ausgeschaltet (wahlweise auch der Empfnagsbaustein).
Man schaltet den Sender ein, schickt die Daten über die serielle
Schnittstelle raus, und schaltet den Sender wieder aus, wenn die Daten
komplett verschickt wurden (TXC-Interrupt).
Somit ist der Empfänger eigentlich immer eingeschaltet, und man kann
feststellen, ob auf dem Bus etwas los ist, um darauf zu warten, dass
man senden darf.
CAN-Transceiver sind dafür auch sehr gut geeignet.
Ich beziehe mich auf RS485-2wire, also die halbduplex Variante der
RS485. 4-Wire-RS485 ist trivial.

Für die PC-Seite gibt es entweder fertige Karten (AFAIK auch für USB).
Selbstbaulösungen kann man mit Hilfe des Hardware-Handshake erzeugen.

Autor: Klaus Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Danke... für die Antworten...

und wie mach ich die Pin Belegung?

Der DI und RO ist klar... gehen beim Atmega128 auf Pin 2 und 3...

Doch wie verbinde ich die anderen?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/RE ist der Eingang, um den Empfänger feizuschalten.
OE ist der Eingang, um den Sender feizuschalten.
Die beiden kannst du "zusamenbinden" und an einen Portpin hängen. Zur
Sicherheit noch einen Pull-Down-Widerstand, damit der Transceiver
grundsätzlich auf Empfangen steht. Man kann auch den /RE-Pin konstant
auf Masse legen.

Autor: Klaus Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zum Beispiel beide auf int0 (Pin25 PD0)???

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst du machen, wenn du den Pin als Ausgang betreibst.
Interruptfunktion brauchst du dafür natürlich nicht. Jeder andere I/O
geht dafür auch.

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.