Tut mir leid, dass ich das Forum schon wieder mit diesem leidigen
UART-Thema belager, allerdings fällt mir gerade keine Lösung ein.
Es geht darum, dass zwei Mega8 miteinander kommunizieren sollen.
Hierfür, dachte ich mir, kreuze ich einfach nur TX(a) mit RX(b) und
andersrum. Auf meinem Schreibtisch aufgebaut klappte das auch.
Nun sind die Controller an ihrem Platz, ca. 15 m voneinander entfernt.
Doch nun beobachte ich ein seltsames Phänomen (mit MAX232 und PC
nachvollzogen):
Schließe ich TX(a) und RX(a) an den MAX232 (Leitungslänge: 1 m) an,
funktioniert alles.
Sobald ich TX(b) (15 m) an den MAX232 anschließe, kann ich auch die
Daten des zweiten Controllers empfangen. Dies geht auch noch, wenn ich
RX(b) anschließe. Vom Rechner zum zweiten Controller senden kann ich
allerdings nur, wenn ich TX(b) wieder abklemme, sodass einzig und allein
die RX-Leitung verbindet.
Wisst ihr da weiter?
Danke im Voraus,
Nico
Und wo ist das Bezugspotential (Masse bzw. GND)?
Überbrückst Du die 15m mit dem 5V-Signal oder mit dem +/- 12V Signal?
Pins verwechselt?
Mal doch mal die Schaltung auf, mir scheint, da kann man besser helfen.
Hallo,
bin mir nicht sicher, ob ich alles richtig verstanden habe:
2x AVR über 15m Kabel direkt verbunden?
Dann ist wohl mehr Zufall, daß überhaupt was geht.
AVR-Pins sind keine Leitungstreiber, TTL-Pegel ist auch nicht sonderlich
störsicher. Welches Baudrate? Welches Kabel?
Mit RS232 ging es bei mir zwischen 2 Rechnern und ca. 20m geschirmten
Kabeln mit 38400 stabil, darüber gab es Fehler.
Möglich, daß unter Deinen Umständen 600 oder 1200 Baud noch gehen, ich
hätte da aber Sorge um meine AVR.
Warum nicht an jedem AVR ein MAX232 und dann mit passenden Pegeln auf
die 15m Leitung?
Gruß aus Berlin
Michael
Ja, die Bezugsmasse läuft über den Mantel des Cat.-5-Kabels, durch das
auch die RX- und TX-Leitung des zweiten Controllers laufen. Da der
Rechner mit der Schaltung soweit nichts zu tun hat, überbrücke ich die
15 m mit dem 5V-Signal. Mich wundert allerdings, dass es seperat in
beide Richtungen geht, allerdings zusammen nicht :-(
@ nischu (Gast)
>Doch nun beobachte ich ein seltsames Phänomen (mit MAX232 und PC>nachvollzogen):
Nur mal am Rande. Du brauchst ZWEIMAX232, je einen direkt am AVR. 15m
mit TTL-Pegel kann laufen, muss aber nicht. Stichwort
Masseverschiebung, Störungen etc.
MfG
Falk
Ich habe einen Baud von 2400, aber wie ich das höre, ist es wohl
wirklich besser, wenn ich zwei MAX232 nehme. Werd ich dann gleich morgen
mal besorgen. Danke trotzdem :)
Oder wäre es zwecks Erweiterung nicht sinnvoller, gleich einen MAX485 zu
nehmen? Ich habe zwar erstmal nicht vor, die Schaltung um einen weiteren
Knoten zu erweitern, aber ich meine mal gelesen zu haben, dass hinter
den MAX485ern auch etwas mehr Bums ist.
Danke für die Hilfe,
Nico
@ nischu (Gast)
>Oder wäre es zwecks Erweiterung nicht sinnvoller, gleich einen MAX485 zu>nehmen?
Kann man machen, braucht baer zwei Adren pro Richtung. Oder
Halbduplexbetrieb.
>den MAX485ern auch etwas mehr Bums ist.
KDF mal wieder?
Ja, RS485 ist wesentlich störunanfälliger, weil es differentiell ist.
Und man einen Bus damit aufbauen. Mit Bums hat das nichts zu tun.
MFg
Falk
Ne. Schau dir RS422 an. Die Treiber sind diegleichen wie RS485, aber man
hat ein Leiterpaar in jede Richtung. Dh man erspart sich die
Richtungs-Umschalterei am PC. Ich empfehle den ADm489 fuer 5V systeme.
Demnach brauch ich bei Halbduplex nur noch zwei Adern und keine
Bezugsmasse mehr? Müsste ich da protokolltechnisch noch was ändern, wenn
nur noch Halbduplex geht? Da alle zwei Sekunden ohnehin nur sechs
Zeichen pro Knoten übermittelt werden, schätze ich Vollduplex sowieso
als eher unnötig ein.