ATmega - RS485

Gast #175094
Hallöchen,

ich möchte ein Gerät, welches einen ATmega16 beinhaltet mit einer SPS,
die über eine RS485 Schnittstelle verfügt, miteinander verbinden.

Ich habe schon gegoogelt und auch die Forensuche genutzt, aber dazu
nicht viel finden können. Ich weiß, das ich einen MAX485 dazu verwenden
kann und diesen dann zwischen Senden und Empfangen hin und her schalten
kann. Hat jemand ausführliche Informationen dazu, auch zur Realisierung
in der Software (vorzugsweise Assembler)?

Gruß

Thomas
Gast
Das ist für den MC nicht anders als eine RS232 mit MAX232, zumindest bei
Vollduplex, du schreibst den Kram über die UART/TxD raus und empfängst
mit RxD. Im Halbduplex kommt nur noch hinzu, dass du den Transceiver
vor dem Senden mit einem Portpin umschalten musst. Wann du das tust/tun
darfst ist eine andere Sache. Es darf immer nur ein Teilnehmer am Bus
senden, dass muss die Software regeln.
Gast
Bei der Umschaltung ist vor allem zu beachten, dass der transmit
complete interrupt vom µC (oder das entsprechende Statusbit) bereits
eintrifft, noch bevor das Stopbit komplett raus ist. Wenn man also dort
sofort den Transmitter abschaltet, gibt's Schrott auf der Leitung.
Umgekehrt ebenso, d.h. der Transmitter darf nicht sofort eingeschaltet
werden nachdem das entsprechende Steuerbyte vom Master empfangen wurde,
denn auch da ist das Stopbit noch nicht zur Gänze drin und der Master
(s.o.) noch nicht so weit..

M.a.W: Das Timing von der Richtungsumschaltung ist der sensible Teil.
Der Rest ist nicht komplexer als RS232.
Gast
"Wenn man also dort sofort den Transmitter abschaltet, gibt's Schrott
auf der Leitung."

Nein, der Stoppegel entspricht ja dem inaktiven Zustand, also keine
Gefahr.

Der neue Sender muß aber das Ende des Stopbits abwarten, damit er nicht
zu früh lossendet, wenn die anderen noch nicht empfangsbereit sind.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.