Forum: Mikrocontroller und Digitale Elektronik zwei mega328 über 10m Kabel miteiander kommunizieren lassen


von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

Moin!
Ich versuche mir die UART Übertragung zu lernen und möchte zwei Arduino 
pro mini(mega328p@16MHZ) miteinander kommunizieren lassen:
Das Verbindungskabel ist ein Cat5 LAN / 10m (!) lang.
Würde man die RX/TX pins der beiden Controller (überkreuz) direkt 
miteinader verschalten, kämen wohl auf der langen Strecke Störungen 
rein. Mit dem MAX232 dazwischen, ließen sich Störungen 
minimieren/eleminieren- so steht es in verschiedenen Web-Quellen.
Frage:
Wie muß nun meine Hardware aussehen? 2 max232 "Rücken an Rücken" so wie 
in der Zeichnung im Anhang?
Wäre super, wenn das jemand bestätigen oder ggf. korrigieren könnte, 
damit ich nicht, damit ich das gleich von Beginn an richtig lerne. 
DANKE!

ps. Mir geht es nur um den richtigen Signalweg, deswegen habe ich Elkos, 
GND, +5V usw. in der Zeichnung weggelassen.

von Christian M. (Gast)


Lesenswert?

14 und 13 muss gekreuzt werden!

Gruss Chregu

von (prx) A. K. (prx)


Lesenswert?

Wobei bei 4 verfügbaren Adern RS422-Transceiver kleiner und einfacher 
sind.

von Stefan F. (Gast)


Lesenswert?

Diese RS232 Signalpegel stammen aus einer Zeit, als Amerikaner noch 
glaubten, physikalische Gesetze ignorieren zu können. Man versuchte es 
mit "viel hilft viel". In diesem Fall: Viel Spannung.

Damit hat man zwar den Signal-Rausch-Abstand vergrößert, aber die 
eigentlichen Hauptprobleme (Reflexionen, Wellenwiderstände und 
unterschiedliche GND Potentiale) vollkommen außer Acht gelassen.

Nimm RS433 oder RS485 Transceiver mit den dazugehörigen 
Abschlusswiderständen. Die sind technisch weit überlegen und trotzdem 
nicht teurer. Damit sind sogar 1km kein Problem.

von Joachim B. (jar)


Lesenswert?

Lars H. schrieb:
> Mit dem MAX232 dazwischen, ließen sich Störungen
> minimieren/eleminieren-

ich denke mit 2x MAX3232 wäre es kein Problem (die können auch 3,3V für 
PI o.ä. mit VCC3,3V z.B. Arduino mini mit 8MHz)
gibts halt günstig im Mehrfach Pack (hier 5 Stk für 1,-€ z.B.)

https://www.ebay.de/i/272859535415?chn=ps

ich mag die Teile, nur für Rx auf Tx und Tx auf Rx bist du selber 
verantwortlich

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Lars H. schrieb:
> Das Verbindungskabel ist ein Cat5 LAN / 10m (!) lang.
> Würde man die RX/TX pins der beiden Controller (überkreuz) direkt
> miteinader verschalten, kämen wohl auf der langen Strecke Störungen
> rein.

Nicht unbedingt, es hängt wesentlich davon ab, wie die Masseleitung 
(ggf. Masseschleife durch Stromversorgung) ausgelegt ist. Probiere es 
doch einfach aus, schalte aber an jeden TX-Ausgang einen Widerstand von 
220 - 470 Ohm in Reihe.

Störungen könnte man durch ein geeignetes Protokoll ausfiltern.

von Stefan F. (Gast)


Lesenswert?

5x MAX3232 für 1€ können nur Fälschungen sein. Dafür bekommst du bei 
seriösen Händlern höchstens einen.

RS485 Treiber (z.B. 75176) sind (original) viel billiger und technisch 
weit überlegen. Gibt's übrigens auch im 5er Pack mit Schraubklemmen sehr 
billig aus China.

von (prx) A. K. (prx)


Lesenswert?

Stefanus F. schrieb:
> RS485 Treiber (z.B. 75176) sind (original) viel billiger und technisch
> weit überlegen.

2-Draht half duplex Transceiver wie 75176 muss man aber in der Software 
berücksichtigen. Bei point to point mit genug Leitungen, wie hier, ist 
deshalb 4-Draht RS-422/485 einfacher, etwa MAX488.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Stefanus F. schrieb:
> 5x MAX3232 für 1€ können nur Fälschungen sein. Dafür bekommst du bei
> seriösen Händlern höchstens einen.

das vermutest du nur, was ich weiss sind das die bei mir bestens laufen!

Seit wann ist der Preis ein Nachweis für Orginalität und Seriösität?
Das würde ich gerne erklärt haben, ich habe schon öfter zuviel für 
ebenfalls Schrott bezahlt, wie gesagt, keiner der "FakeMAXE" hat versagt 
bei mir ausser einer der angeschlossen wurde vor VCC, das sollte man 
vermeiden. (Kann aber auch Zufall oder Pech gewesen sein es gibt ja 
nicht immer Ursachen für Bauteilausfall, denn kaum ein Bauteil wird mit 
run in und burn in ausgeliefert)

von (prx) A. K. (prx)


Lesenswert?

Stefanus F. schrieb:
> Nimm RS433 oder RS485 Transceiver mit den dazugehörigen
> Abschlusswiderständen.

Bei RS-422 über 10m und halbwegs UART-üblicher Datenrate kommt man auch 
ohne Abschluss aus. Spart Strom.

von Dietrich L. (dietrichl)


Lesenswert?

Christian M. schrieb:
> 14 und 13 muss gekreuzt werden!

... und die GNDs der beiden µCs müssen verbunden werden.

von Anon Y. (avion23)


Lesenswert?

Was passiert denn bei 100Ω - 1kΩ in Reihe und CRC in Software?

von Stefan F. (Gast)


Lesenswert?

Bei 10 Metern und niedriger Baudrate (<115200) ist das alles noch nicht 
so kritisch. Ich hatte damals zwei PC mit einem 20m langen Kabel 
"vernetzt" um Command&Conquer zu spielen. Das lief ohne Probleme.

Aber der TO schrieb ja, dass er was lernen möchte. Da kann er sich nach 
einer simplen Direktverbindung ruhig mal mit RS485 auseinander setzen, 
denn das wird ihm in Zukunft noch öfters über den Weg laufen. Wenn er 
RS485 benutzen gelernt hat, dann kommt er mit RS422 ebenfalls klar.

RS232 halte ich jedenfalls für so gut wie ausgestorben.

von Joachim B. (jar)


Lesenswert?

Stefanus F. schrieb:
> Aber der TO schrieb ja, dass er was lernen möchte.

eben drum und das kann er mit RS232 in jeder Baudrate, sogar mit 50Bd 
und die Bits mit dem Auge verfolgen oder per LED.
Auch stellt das keine hohen Ansprüche an die Messausrüstung.

Deswegen finde ich für die Anwendung vom TO RS232 immer noch gut!

von m.n. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Aber der TO schrieb ja, dass er was lernen möchte.

Dann soll er doch bitte lernen, wie man mit wenig Aufwand viel erreicht.

von M. K. (sylaina)


Lesenswert?

Also 10m sind für UART, bei entsprechender Datenrate, überhaupt kein 
Problem. Wenns nur darum geht, sich ein wenig den UART-Kram anzutun 
braucht man auch keine großen Datenraten braucht. Ich hab UART schon auf 
Strecken bis zu 50m problemlos benutzt (mit 1200 Bd war das in dem 
Fall). Der "Trick" ist halt, dass man ein geschirmtes Kabel verwendet.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Stefanus F. schrieb:
> Diese RS232 Signalpegel stammen aus einer Zeit, als Amerikaner noch
> glaubten, physikalische Gesetze ignorieren zu können. Man versuchte es
> mit "viel hilft viel". In diesem Fall: Viel Spannung.
>
> Damit hat man zwar den Signal-Rausch-Abstand vergrößert, aber die
> eigentlichen Hauptprobleme (Reflexionen, Wellenwiderstände und
> unterschiedliche GND Potentiale) vollkommen außer Acht gelassen.

Naja, ich glaube nicht, dass man damals(tm) bewusst Naturgesetze 
ignorieren wollte. Die beteiligten Leute kannten sie wohl bloss einfach 
nicht umfassend genug. Sowas soll ja auch heute noch passieren, die 
Wahrscheinlichkeit dafür ist sogar deutlich höher...
Denn: man (die Menscheit insgesamt) weiss zwar heute sehr viel mehr über 
die Naturgesetze als damals, aber man (der einzelne) relativ zum 
verfügbaren Gesamtwissen doch eher noch viel weniger als damals und das 
trotz sehr viel besserer Informationsmöglichkeiten...

Mein Gott, man muss sich doch nur die Fragen anschauen, die hier so 
reinplumpsen, da wird einem Angst und Bange über die Zukunft der 
intellektuellen Entwicklung der Masse der Bevölkerung, aber mehr noch 
der der zukünftigen Elite der Wissenschaft und des technologischen 
Fortschritts, den lieben Studenten...

Was da teilweise an Faulheit und Unwissenheit offenbart wird, schreit 
regelrecht zum Himmel. Da waren die Altvorderen vor 100+ Jahren (selbst 
die Amis) wohl besser gebildet (im Kontext ihrer Zeit) und vor allem: 
weniger denkfaul...

von Peter D. (peda)


Lesenswert?

Man muß nicht alles schlecht reden, nur weil es schon lange benutzt 
wird.
UART-Receiver haben eine Majoritätslogik, d.h. sie teilen jedes Bit in 
16 Takte und tasten 3-mal ab.
Man kann also bei Problemen mit Reflexionen einfach die Baudrate soweit 
reduzieren, daß die Reflexion kürzer als 1/16 Bitzeit ist.

von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

Ihr seid ja der Wahnsinn! Vielen Dank für den ganzen Input! Das sind 
super wichtige Grundlagen-Infos für mich. Ich habe im Anhang Das 
Blockdiagramm meiner Anwedung. Es geht um einen Controller der Display 
via I2C ansteuert.
Das Programm hat eine Menuführung, die mit einem Drehencoder gescrollt 
werden kann. An diesen uC möchte ich optional eine kabelgebundene 
Fernbedienung (FB) anschließen können, die selbst wiederunm Encoder und 
Display hat. Ich habe jahrelang mit I2C gearbeitet und kenne mich recht 
gut damit aus. Auch die inzwischen fertige Software ist (eigentlich) 
rein auf I2C ausgelegt. Ich habe allerdings noch nie Strecken > 20cm mit 
I2C überbrücken müssen. Daher habe ich zunächst die P82B715 Expander 
ausprobiert.
Das funktioniert abetr nicht zuverlässig. Wäre aber eigentlich am 
einfachsten gewesen. Es gibt auch Expander, die mit Differenzsignalen 
Fehlerkorrektur Level-shifting arbeiten siehe --> 
Beitrag "I2C mit 2 PCA9600" Ok., das habe ich noch 
nicht probiert. Es ist ja auch nur eine Philips Marketing- Notlösung, um 
Leuten den Zahn zu ziehen, daß I2C für lange Strecken gänzlich 
ungeeignet sei (was es ja eigentlich trotzdem ist). Also, habe ich mir 
gedacht, machst es jetzt gleich richtig und gehst die UART Sache mal an. 
Dank Euch bin ich jetzt von dem RS232 Tripp wieder weg. Macht ja keinen 
Sinn auf ner Dampflok zu lernen, wenn man ICE- Lokführer werden will. 
Also nun soll es RS 485 sein.
Ich habe allerdings auf die Schnelle noch nicht den Unterschied von 
RS422, 423, 485 und 488 verstanden. Soll ich mir jetzt ICs von Max 
holen, nämlich die max485?. Ist es richtig, daß die externe Beschaltung 
nur aus 2 Pullups besteht? Keine Elkos wie beim 232? wieso 4 adrig? Hab 
ich doch bei der 232 Technik auch: GND, +5V, TX und RX. Was hat es mit 
dem R/T bei dem 485er auf sich? Brauche ich das? Muß ich die Soft dafür 
umstellen?  Vielen Dank für Eure Geduld! Grüße Lars

von Lars H. (haggen)


Lesenswert?

@ c-hater
Deinen Beitrag find ich schade. Hier sind eine Menge Leute, die sich in 
der Beantwortung meiner (Anfänger-) Frage sehr viel Mühe geben und mit 
mit tollen Tipps/Vorschlägen/ Anregungen weiterhelfen.
Ich habe zwar hier ein rein technisches Anliegen, aber von mir dazu 
folgenden Kommentar. Wir brauchen auf dieser Welt mehr Herzensbildung 
und weniger Elite-Universitäten mit verkopften Menschen, die in 
wissenschaftlichen Strukturen denken. Hier erfahre ich Hilfsbereitschaft 
Nettigkeit und Informationsaustausch. Außerdem ist die Teilnahme an 
diesem Forum ja Freiwillig und bei Auslösung von "Angst und Bange" 
dringend abzuraten!

von Karl K. (karl2go)


Lesenswert?

Stefanus F. schrieb:
> Damit hat man zwar den Signal-Rausch-Abstand vergrößert, aber die
> eigentlichen Hauptprobleme (Reflexionen, Wellenwiderstände und
> unterschiedliche GND Potentiale) vollkommen außer Acht gelassen.

Ui, das ist bei 10m und 115kBaud auch ein absolut dringendes Problem.

A. K. schrieb:
> Wobei bei 4 verfügbaren Adern RS422-Transceiver kleiner und einfacher
> sind.

RS232 kann man problemlos direkt oder per USB-Konverter an den PC 
anschließen und testen.

von (prx) A. K. (prx)


Lesenswert?

Lars H. schrieb:
> Ich habe allerdings auf die Schnelle noch nicht den Unterschied von
> RS422, 423, 485 und 488 verstanden.

RS-422: Zwischen 2 Stationen, 2 Leitungen pro Richtung, mit störsicherem 
Differenzsignal. Damit kann man UART mit UART verbinden grad als wärs 
direkt verbunden, ohne sich um Software kümmern zu müssen. Braucht hier 
ein 8-Pin Transceiver-IC, einen Kerko 100nF und sonst nix.

RS-485 ähnelt stark RS-422, wird aber meist als 2-Draht-System 
betrieben, mit vielen möglichen Stationen. Es kann immer nur einer 
senden, die anderen hören zu, weshalb die Software aller Stationen eine 
koordinierte Umschaltung zwischen Senden und Empfangen berücksichtigen 
muss. Dafür gibts extra Leitung(en) zwischen Transceiver und µC, dein 
R/T.

RS-485 gibts zwar auch in 4-Draht, für full duplex, ist aber seltener. 
Ein Tx-Enable braucht man bei mehr als 2 Nodes trotzdem.

RS-433 war vmtl ein Tippfehler.

488 kommt im Thread nur als Transceiver-Baustein MAX488 für RS-422 vor.

: Bearbeitet durch User
von Lars H. (haggen)


Lesenswert?

ah! Danke. Super erklärt. Also dann ist der Fall für mich klar. max422 
bestellen. ich will keine Soft mehr ändern und mehr als 2 Teilnehmer 
werden hier nicht vorkommen. Sehr schön.

von m.n. (Gast)


Lesenswert?

A. K. schrieb:
> 488 kommt im Thread nur als Transceiver-Baustein MAX488 für RS-422 vor.

Bei IEEE-488 kommt es auch vor ;-)

von (prx) A. K. (prx)


Lesenswert?

Lars H. schrieb:
> max422 bestellen.

Gibts den überhaupt? MAX488 wär besser.

: Bearbeitet durch User
von Lars H. (haggen)


Lesenswert?

A. K. schrieb:
> Lieber nicht, das ist ein hier nutzloser Operationsverstärker.

huch? Das Datenblatt klingt aber eigentlich ganz passend für meinen 
Zweck.
Hm... Wa swäre denn Deiner Meinung das richtige IC, wenn ich mich nun 
auf RS 422 festgelegt habe?

von (prx) A. K. (prx)


Lesenswert?

Lars H. schrieb:
> huch? Das Datenblatt klingt aber eigentlich ganz passend für meinen
> Zweck.

Link? Google fand zu MAX422 exakt nichts, nur nen OPV MAX4224.

: Bearbeitet durch User
von Lars H. (haggen)


Lesenswert?

aaach! Ok., ich habe ober "max422" geschrieben. Ich meinte natürlich den
MAXIM MAX488, der die RS422 Übertragung ermöglicht. So. Jetzt ists 
richtig :)

Beitrag #5517199 wurde vom Autor gelöscht.
von Gerhard O. (gerhard_)


Lesenswert?

Falls von Interesse, hier gibt es eine Arduino RS485 
Bibliothekserweiterung die den Half Duplex RS485 vollkommen automatisch 
im Interruptbetrieb umschaltet. Habe es bei mir jetzt schon monatelang 
in Betrieb.

Die Original Arduino Serial Bibliothek ist hingehend erweitert die Sende 
Empfangsumschaltung mit einem frei wählbaren PIN (T/R) eigenständig zu 
verwalten. Man muß also nicht vor dem Senden erst den TX-Enable 
hochsetzen und nach der Sendung pollen oder warten bis die Sendung 
komplett ist. Die Bibliothek Puffering wird nicht beeinträchtigt.

Man kann somit vollautomatischen RS485 Betrieb machen genauso wie vorher 
mit RS232.

Original Arduino Beispiel: Serial.begin(9600);
Mit Erweiterung:

#define RS485_BAUD 9600
#define RS485_ENABLED 1
#define RS485_DISABLED 0
#define RS485_DIR_PIN 13

Serial.begin(RS485_BAUD, SERIAL_8N1, RS485_ENABLED, RS485_DIR_PIN );

wo:
RS485_ENABLED oder RS485_DISABLED,  1=ENABLED oder 0 (0=DISABLE

Beitrag "Arduino HardwareSerial Bibiothek unterstützt jetzt RS485"

https://github.com/emrtech/Arduino_Resources

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> RS-433 war vmtl ein Tippfehler.
Ja

von c-hater (Gast)


Lesenswert?

Lars H. schrieb:

> Ich habe zwar hier ein rein technisches Anliegen, aber von mir dazu
> folgenden Kommentar. Wir brauchen auf dieser Welt mehr Herzensbildung
> und weniger Elite-Universitäten mit verkopften Menschen, die in
> wissenschaftlichen Strukturen denken.

Das ist deine Meinung. Meine ist eine andere, nämlich: Wir brauchen viel 
mehr Menschen, die zu selbstständigem Denken befähigt sind/werden und 
das dann auch tun.

Elite-Universitäten stehe ich allerdings auch kritisch gegenüber. Das 
ist nicht wirklich, was die Menschheit insgesamt weiter bringt, ganz 
sicher jedenfalls nicht, wie die Sache heute organisiert ist, wo der 
Geldbeutel der Eltern viel entscheidender ist als die Denkfähigkeit der 
Sprößlinge...

von W.A. (Gast)


Lesenswert?

A. K. schrieb:
> Wobei bei 4 verfügbaren Adern RS422-Transceiver kleiner und einfacher
> sind.

Ohne Massebezug zwischen den beiden Seiten wirst du keine große Freude 
haben, falls die Stecke nicht isoliert aufgebaut ist.

von Stefan F. (Gast)


Lesenswert?

> Ohne Massebezug zwischen den beiden Seiten wirst
> du keine große Freude haben

Egal, welches RSxxx Protokoll du verwendest, würde ich die Masse Leitung 
nur an einem Ende direkt anschließen und am anderen Ende über einen 
niedrigen Widerstand, zum Beispiel 22 Ohm.

Hintergrund ist der, dass die beiden Geräte eventuell (direkt oder 
indirekt) geerdet sind aber diese beiden Erdpunkte nicht exakt das 
gleiche Potential haben. Der Widerstand begrenzt in diesem Fall den 
Ausgleichsstrom, der dann durch die Abschirmung und die (Steck-, oder 
Schraub-) Verbinder fließen würde.

Zumindest da wo ich wohne hat die Elektroinstallation teilweise noch 
eine Nullung (https://de.wikipedia.org/wiki/Nullung). Dort hat jede 
Steckdose ein anderes GND Potential, weil der Spannungsabfall am 
Null-Leiter gleichzeitig auch den GND Anschluss betrifft. Je größer die 
Stromverbraucher, umso mehr weicht die Spannung von der wirklichen Erde 
ab.
1
   Signal o-----------------------------------o Signal
2
3
   GND(A) o---------------------------[===]---o GND(B)
4
z.B 0,0V                               22Ω      z.B. 0,2V~

Bei direkten 3,3V/5V Logikpegeln muss die GND Verschiebung kleiner als 
0,5V sein, sonst fällt die Schnittstelle aus. Außerdem riskierst du bei 
mehr als 0,5V, dass die I/O Pins des µC kaputt gehen, sofern keine 
Schutzschaltung hinzugefügt wird.

Bei RS232 ist ebenfalls praktisch keine GND Verschiebung vorgesehen. Aus 
dem Datenblatt des MAX3232 geht hervor, dass schon 0,8V Verschiebung zum 
Ausfall führen können.

Bei RS422 und RS485 ist hingegen ein Versatz von 7V zulässig.

von Lars H. (haggen)


Lesenswert?

W.A. schrieb:
> Ohne Massebezug zwischen den beiden Seiten wirst du keine große Freude
> haben

danke für den Hinweis! Ich werde 6 der 8 adern vom Cat5 nutzen: 4 für 
die Signale des 488er + GND + VCC. In der FB werde ich noch die 22 Ohm. 
Selbst wenn es auch ohne gehen würde, schaden wirds ja trotzdem nicht 
und es ist kein Aufwand. Eine Frage diesbezüglich noch: Die GND- 
Versorgung der FB ist über einen PORTpin und einen NPN Transistor 
geschaltet. Die Anlage hat nämlich auch eine Funkfernbedienung über die 
ich die FB ein/ausschalten kann.
Die beiden 488er wären aber dann GND-mäßig bis auf den 22 Ohm Widerstand 
DIREKT miteinander verbunden. Wäre der NPN ein Problem?

von Lars H. (haggen)


Lesenswert?

... und noch ein Hinweis: Beim (erfolgreichen) UART-Test, als ich beide 
Controller direkt über kreuz miteinader verbunden hatte, hatte ich GND 
des 2.Controllers AUCH über den NPN (BC847smd) geschaltet. Naja...das 
Display des FB Controllers ging zwar per FUNK wie gewünscht aus, aber 
die rote Power LED des Arduino pro mini leuchete trotzdem noch. Das 
bringt mich zu dem Schluss, daß sich der (eigentlich ausgeschaltete ) FB 
Controller seinen GND über TX oder RX "ersatzweise" bezieht. Also 
funktioniert hats ja, ist aber wohl nicht so gut, oder?

von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

also so wie im Bild ist der Plan

von Lars H. (haggen)


Lesenswert?

ist wahrscheinlich sinnvoller, dem FB Controller den PLUS wegzuziehen 
und
stattdessen einen PNP Transistor zu nehmen, oder? Dann müßte ich in der 
Soft den Port nur invertieren.

von Stefan F. (Gast)


Lesenswert?

> Die GND-Versorgung der FB ist über einen PORTpin und einen
> NPN Transistor geschaltet.

Ganz schlechte Idee. Weil dadurch nämlich der GND Anschluss der FB bei 
geöffnetem Transistor nicht auf Null Volt liegt, sondern auf Höhe der 
Versorgungsspannung (sagen wir mal 5V).

Wenn jetzt irgendein Eingang LOW Pegel (also Null Volt) hat, dann ist 
das aus Sicht der FB eine negative Spannung von -5V. Das ist mit sehr 
hoher Wahrscheinlichkeit nicht zulässig (FB geht kaputt).

GND soll man niemals schalten, es sei denn man weiß ganz genau, was man 
da tut.

von Lars H. (haggen)


Lesenswert?

> GND soll man niemals schalten, es sei denn man weiß ganz genau, was man
> da tut.

Ok. Werde ich dann wohl ändern müssen. Nur zu meinem technischen 
Verständnis eine Frage:
Bei sperrendem NPN sind ja die beiden 488er, der FB Controller und das 
FB-Display ohne GND. Woher soll dann ein LOW noch kommen?

von Stefan F. (Gast)


Lesenswert?

> Woher soll dann ein LOW noch kommen?

Zum Beispiel von einem beschädigten Kabel - Kurzschluss mit dem Schirm 
oder Erde.

In deinem Fall sieht es tatsächlich nicht ganz so dramatisch aus, aber 
ich würde es mir trotzdem gar nicht erst angewöhnen. So teuer sind die 
Transistoren nicht, dass man wegen 5 Cent Probleme provozieren sollte.

von Bernhard D. (pc1401)


Lesenswert?

Stefanus F. schrieb:
> Diese RS232 Signalpegel stammen aus einer Zeit, als Amerikaner noch
> glaubten, physikalische Gesetze ignorieren zu können. Man versuchte es
> mit "viel hilft viel". In diesem Fall: Viel Spannung.
>
> Damit hat man zwar den Signal-Rausch-Abstand vergrößert, aber die
> eigentlichen Hauptprobleme (Reflexionen, Wellenwiderstände und
> unterschiedliche GND Potentiale) vollkommen außer Acht gelassen.
>
> Nimm RS433 oder RS485 Transceiver mit den dazugehörigen
> Abschlusswiderständen. Die sind technisch weit überlegen und trotzdem
> nicht teurer. Damit sind sogar 1km kein Problem.

RS232 war dazu gedacht, Modems anzuschließen. Und zwar um 1960. Die 
Modems waren zum einen sehr langsam, standen nicht weit entfernt und 
waren ohne jede Intelligenz (deshalb die vielen Steuerleitungen).
Da brauchte man sich nicht viele Gedanken um Reflexionen auf den 
Leitungen zu machen.

Die Telegraphengleichungen, mit denen man die Reflexionen in den Griff 
bekommt, sind seit 1880 bekannt. Auf den Kopf gefallen waren unsere 
Altvorderen nicht.

von Manfred (Gast)


Lesenswert?

Stefanus F. schrieb:
> Diese RS232 Signalpegel stammen aus einer Zeit, als Amerikaner noch
> glaubten, physikalische Gesetze ignorieren zu können. Man versuchte es
> mit "viel hilft viel". In diesem Fall: Viel Spannung.

Das mag durchaus stimmen, ändert aber nichts an der Praxis: 10 oder 15 
Meter sind mit RS232 zuverlässig zu beherrschen, Punkt.

von m.n. (Gast)


Lesenswert?

Manfred schrieb:
> Das mag durchaus stimmen, ändert aber nichts an der Praxis: 10 oder 15
> Meter sind mit RS232 zuverlässig zu beherrschen, Punkt.

... und noch viel mehr.
Schon länger her, aber 115,2 kBd über 100 m mit abgeschlossener Leitung 
sind kein Problem. Siehe Bilder: 
Beitrag "Re: RS232 mit 38.4kbps Leitungslänge größer als 100m ?"

Lars H. schrieb:
> ist wahrscheinlich sinnvoller, dem FB Controller den PLUS wegzuziehen
> und
> stattdessen einen PNP Transistor zu nehmen, oder?

Oder ggf. einen P-Kanal MOSFET. Da kann man den Spannungsabfall 
vernachlässigen.

von M. K. (sylaina)


Lesenswert?

Von TI gibts da ein Dokument dazu welche Datenraten mit welcher 
Leitungslänge möglich sind, auch vor dem Hintergrund der Störsicherheit. 
Ich bin mir sicher, dass 115,2 kBd deutlich unter 10m sind.

EDIT: Habs gefunden: Im Wiki-Artikel zur RS232 ist es verlinkt, 115,2 
kBd sind eigentlich nur für Entfernungen <2m geeignet.

: Bearbeitet durch User
von Lars H. (haggen)


Lesenswert?

Aha! Gut zu wissen, denn genau das hatte ich nämlich vor: 115kbaud über 
10m. Dann werde ich die speed drosseln. Kein Problem. Ich habe heute 
etwas Zeit und werde mal eine RS232 Strecke aufbauen, den die 
max-Bausteine sind bereits im Hause. Wie schicke ich RX/TX am besten 
durch das CAT5? RX/TX in EINEM verdrillten Leitungspaar oder 
aufgesplittet in RX mit GND und TX mit plus? Oder ist das egal? Bei I2C 
ist das z.B. sehr wichtig.

Oh und noch eine 2. Frage: Wenn man I2C und RS422 gemeinsam durch ein 
Cat5 Kabel shcickt, stören die beiden Protokolle sich gegenseitig?

von m.n. (Gast)


Lesenswert?

M. K. schrieb:
> EDIT: Habs gefunden: Im Wiki-Artikel zur RS232 ist es verlinkt, 115,2
> kBd sind eigentlich nur für Entfernungen <2m geeignet.

Ick lach mir schräg! Da wird deutlich, was Leute für einen Blödsinn 
erzählen können. TI gibt für nicht terminierte Leitungen > 30 m an.

Von TI gibt es auch noch ganz andere Informationen: 
Beitrag "Re: Leitungslänge RS232 bei 921600kbit/s"
Auf Seite 451 sind für 115,2 kBd > 1500 ft angegeben, was knapp 500 m 
sind.

Man muß es ja nicht ausreizen, nur zeigt es auf, daß die Grenzen ganz 
woanders liegen als Mäxchen Müller es in seine Rübe bekommt.

von Stefan F. (Gast)


Lesenswert?

Verdrillte Adern sind für symmetrische Signale. Für unsymmetrische 
Signale verwendet man abgeschirmte Einzeladern.

> Wie schicke ich RX/TX am besten durch das CAT5?

Meit einem symmetrischen transceiver, zum Beispiel RS485 oder RS422.

> RX/TX in EINEM verdrillten Leitungspaar

Ganz schlecht

> oder aufgesplittet in RX mit GND und TX mit plus?

Schon besser. Aber eigentlich ist dieser Kabeltyp einfach nicht für 
unsymmetrische Signale gedacht. Es gibt besonders teure Netzwerkkabel, 
wo jedes Leiterpaar einzeln abgeschirmt ist. Da kannst die beiden Adern 
parallel schalten und dann ein geschirmtes Paar für Rx und ein anderes 
geschirmtes Paar für Tx nehmen.

Verdrillte Adern sind für symmetrische Signale. Für unsymmetrische 
Signale verwendet man abgeschirmte Einzeladern.

> Wenn man I2C und RS422 gemeinsam durch ein Cat5 Kabel shcickt,
> stören die beiden Protokolle sich gegenseitig?

Bei I²C und RS232: Ja, es sei denn sie sind durch Abschirmungen 
voneinander getrennt.
Bei RS422: Nein, stören sich nicht, weil das RS422 Paar aufgrund der 
Verdrillung und symmetrischen Übertragung nach "außen" hin neutral ist.

Du findest in Internet sicher eine Erklärung, worin sich symmetrische 
von unsymmetrischen Leitungen unterscheiden. Das solltest du mal 
durchlesen.

von Joachim B. (jar)


Lesenswert?

M. K. schrieb:
> EDIT: Habs gefunden: Im Wiki-Artikel zur RS232 ist es verlinkt, 115,2
> kBd sind eigentlich nur für Entfernungen <2m geeignet.

Lars H. schrieb:
> Dann werde ich die speed drosseln.

das ist eine gute Idee,

ich habe ja meine Nano328p mit dem neuen Optiboot Bootloader versehen 
der default auf 115k läuft!

seit dem konnte ich nicht mehr mit USB LANport400 Sharkoon programmieren 
auch wUSB im Zimmer klappte nicht mehr!
Ich habe die Board.txt angepasst den Bootloader von Optiboot auf 57600 
Bd gesetzt und nun kann ich beides wieder nutzen.

## Arduino Nano w/ ATmega328P (new boot full mem low upload)
## Arduino Nano w/ ATmega328P (new bootloader full mem)
## Arduino Nano w/ ATmega328P (new bootloader old mem)
## Arduino Nano w/ ATmega328P (old bootloader low mem)

: Bearbeitet durch User
von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

Stefanus F. schrieb:
> weil das RS422 Paar aufgrund der
> Verdrillung und symmetrischen Übertragung nach "außen" hin neutral ist.

Wird es so gemacht?
Z/Y miteinader verdrillen und  A mit B.

von Joachim B. (jar)


Lesenswert?

Lars H. schrieb:
> Wird es so gemacht?
> Z/Y miteinader verdrillen und  A mit B.

ja und da eignen sich Telefonkabel und Ethernetkabel, die haben schon 
verdrillte Paare!

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Ebenfalls MAX488 Datasheet. Die Terminierung ist bei 10m unnötig.

: Bearbeitet durch User
von Lars H. (haggen)


Lesenswert?

gut. Danke. Ich habe CAt5. Da komme ich nicht von frei. Muss ja auch 
nicht, denn es passt ja für diesen Zweck.

von Lars H. (haggen)


Lesenswert?

ah! Das Bild hatte ich gesucht. Welche Ader mit welcher verdrillt 
gehört. Danke!

von (prx) A. K. (prx)


Lesenswert?

Achte aber drauf, welche Adern des Kabels miteinander verdrillt sind. 
Das sind nicht immer die numerisch benachbarten.

von Stefan F. (Gast)


Lesenswert?

> Wird es so gemacht?
> Z/Y miteinader verdrillen und  A mit B.

Ja. Das Prinzip ist simpel. Während sich das elektromagnetische Feld um 
Leitung Y aufbaut, baut es sich auf um Leitung Z auf, aber umgekehrt 
gepolt. Die beiden heben sich gegeneinander auf. Nach außen hin ist also 
keine Änderung sichtbar (jedenfalls in der idealen Welt).

Bei den Eingängen ist es so: Da beide Leitungen direkt nebeneinander 
liegen, wirken sich elektromagnetische Felder auf beide Adern gleich 
aus. Die Spannung an A und B steigt gleich an. Das IC reagiert aber nur 
auf die Differenz der beiden Spannungen, welche bei Störungen Null ist 
(jedenfalls in der idealen Welt).

Ich weiß nicht wie alt du bist. Vielleicht kennst du noch die analogen 
Telefone, die an zwei Kilometer-lange verdrillte Adern angeschlossen 
wurden. Wenn man dort falsche (nicht paarweise verdrillte) Adern 
verwendet hatte, konnte man fremde Leute sprechen hören, die zur selben 
Zeit über das gleiche Kabel telefonierten.

Warum verdrillt man?:
Bei zwei parallel verlaufenden Adern könnte die Störquelle einer Ader 
näher sein, als der anderen. Dann beeinflusst die Störquelle eine Ader 
stärker als die andere, so dass die Differenz zwischen den beiden Adern 
eben nicht mehr Null ist. Durch Verdrillung wird dieser Nachteil 
weitgehend behoben.

Abschlusswiderstand/Wellenwiderstand:
Am Ende der Leitung wird die elektrische Welle reflektiert und zurück 
geschickt. Hier gibt es schöne Bilder dazu: 
https://hohlerde.org/rauch/elektronik/projekte/kabelradar/
Je nach Kabellänge erscheint die Reflexion früher oder später. Es kann 
auch zu mehrfachen Reflexionen an beiden Enden kommen, wo die Welle 
mehrmals hin und her schwingt.
Wenn die Reflexion sich mit dem Nutzsignal überlappt, verzerrt sie 
dessen Flanken (daher niedrige Baudrate). Wenn sie mit einem gewissen 
Abstand zum Nutzsignal auftritt, kann sie fälschlicherweise für ein 
Nutzsignal gehalten werden.
Wenn die Leitung am Ende mit einem Widerstand belastet wird, der dem 
Wellenwiderstand der Leitung entspricht, dann nimmt dieser die ganze 
Energie auf, so dass keine Reflexion stattfindet. Bei den üblichen 
verdrillten Kabeln ist der Wellenwiderstand typischerweise 100 bis 120 
Ohm, unabhängig von seiner Länge.

von Joachim B. (jar)


Lesenswert?

A. K. schrieb:
> Achte aber drauf, welche Adern des Kabels miteinander verdrillt sind

das sieht man aber wenn man einige cm abisoliert!

von Wolfgang (Gast)


Lesenswert?

Lars H. schrieb:
> Wie schicke ich RX/TX am besten
> durch das CAT5? RX/TX in EINEM verdrillten Leitungspaar oder
> aufgesplittet in RX mit GND und TX mit plus?

Denk mal nach. Willst du wirklich, dass TX optimal auf RX rüber koppelt?
Und wieso TX mit plus?
Deine TX und RX Signale beziehen sich auf Gnd. Die Störungen auf der 
Versorgungsgspannung durch Spannungsabfall auf Grund schwankender 
Stromaufnahme willst du auch nicht wirklich auf deine Daten rüber 
koppeln. TX am einen Ende der Leitung ist RX am anderen Ende!

von (prx) A. K. (prx)


Lesenswert?

Stefanus F. schrieb:
> Abschlusswiderstand/Wellenwiderstand:

Wobei es bei UART Traffic klingeln darf bis der Arzt kommt, so lange es 
nicht länger als 2 Bits dauert. Der MAX488 ist zudem slew rate limited, 
was es erheblich dezenter werden lässt als beim MAX490. Ein 
Abschlusswiderstand trägt andererseits markant zum Stromverbrauch 
beiträgt.

von Stefan F. (Gast)


Lesenswert?

Masse-Versatz:
Angenommen die GND Leitung eines Senders mit 5V Versorgungsspannung ist 
gut geerdet. Dann sendet er idealerweise mit Low=0 Volt und High=5V. 
Angenommen, der Empfänger steht in einem anderen Haus, dessen GND 
Potential 1V höher ist. Dann "sieht" dieser den Low Pegel als -1V und 
den High Pegel als 4V. Ohne weitere Schutzbeschaltung würden normale 
IC's dabei kaputt gehen.
Angenommen, der Empfänger steht in einem anderen Haus, dessen GND 
Potential 1V niedriger ist. Dann "sieht" dieser den Low Pegel als 1V und 
den High Pegel als 6V. Low wäre nicht niedrig genug, würde also nicht 
funktionieren. High wäre zu hoch, also wieder IC kaputt.
In der Praxis ist der Masse-Versatz meistens eine Wechselspannung mit 
50Hz Frequenz, also treten beide negativen Effekte zusammen auf.

von (prx) A. K. (prx)


Lesenswert?

Joachim B. schrieb:
>> Achte aber drauf, welche Adern des Kabels miteinander verdrillt sind
>
> das sieht man aber wenn man einige cm abisoliert!

Nicht, wenn man einen RJ45-Anschluss verbaut und die Dose schon liegt.

von Lars H. (haggen)


Lesenswert?

A. K. schrieb:
> Achte aber drauf, welche Adern des Kabels miteinander verdrillt sind.
> Das sind nicht immer die numerisch benachbarten.

bei meinem Cat5 sind immer die beiden Farben miteinader verdrillt: Grün 
mit grün/weiß, braun mit braun/weiß usw...

von Lars H. (haggen)


Lesenswert?

Stefanus F. schrieb:
> Ich weiß nicht wie alt du bist.

46

von Stefan F. (Gast)


Lesenswert?

> Wobei es bei UART Traffic klingeln darf bis der Arzt kommt,
> so lange es nicht länger als 2 Bits dauert.

Ja, deswegen funktionieren niedrige Baudraten dann besser, als hohe 
Baudraten. Die UART Empfänger bemühen sich darum, die Signale zeitlich 
betrachtet in der Mitte abzutasten, so dass verzerrte Flanken möglichst 
egal sind.

Früher glaubte ich, dass jedes Kabel niedrige Frequenzen besser 
übertragen kann, als hohe. Und dass es deswegen eine Rolle spielen 
würde, ob ich 9600 Baud oder 115200 Baud einstelle.

Aber wenn man man berücksichtigt, dass wir heute 100Mhz (und mehr) über 
ganz einfache Netzwerkkabel schicken, ist klar, dass sich das Kabel für 
ein paar kHz mehr oder weniger nicht interessiert. Die 115200Hz haben 
mit irgendeiner Grenzfrequenz des Kabel ungefähr gar nichts zu tun.

Es geht hier vielmehr darum, dafür zu sorgen, dass die Reflexionen nicht 
zeitlich in den Zeitpunkt fallen, wo das Nutzsignal abgetastet wird. 
Korrekte Terminierung ist meistens schon die Lösung, wenn es ohne nicht 
funktioniert.

Aber wie gesagt: Bei 10 Meter ist das alles noch nicht von Interesse. Da 
fallen die Reflexionen quasi mit den Flanken der Signale zusammen und 
werden daher vom UART nicht bemerkt.

von Lars H. (haggen)


Lesenswert?

Stefanus F. schrieb:
> Aber wie gesagt: Bei 10 Meter ist das alles noch nicht von Interesse.

Bei diesem Projekt wohl eher nicht, aber bei mir ist das so: Wenn das 
eine erstmal funktioniert, komme ich meist noch auf "andere Gedamken" 
und "andere Gedanken" können dann z.B. 100m sein ;)

von Joachim B. (jar)


Lesenswert?

Stefanus F. schrieb:
> Die 115200Hz haben
> mit irgendeiner Grenzfrequenz des Kabel ungefähr gar nichts zu tun.

ist aber egal, 115k funktionieren bei mir nicht am USB LANPORT oder bei 
wUSB!

57K6 funktionieren!

mir ist es egal ob die Kabel oder Funkstrecken das wissen, es zählt 
Baudrate verringern kann helfen!

von Lars H. (haggen)


Lesenswert?

...oder wie es im Fußball heißt: Nach dem Spiel ist vor dem Spiel.
Apropos Fußball: Jetzt läuft Sandhausen vs. HSV. Ich bin dann mal weg...

von Stefan F. (Gast)


Lesenswert?

Das bei Arduino 57600 besser funktionieren, als 115200 hat einen anderen 
Grund: Der Counter, mit dem die Baurate erzeugt wird hat bei 115200 Baud 
eine zu große Abweichung vom Sollwert. Das kannst du im Datenblatt 
nachlesen.

Bei 16Mhz Quarz und 115200 Baud hat er 2,1% Abweichung. Bei 57600 Baud 
sind es nur 0,8% Abweichung. Arduino Klone sind allerdings oft mit 
Keramik Resonatoren bestückt, da kannst du noch weitere 1% Abweichung 
hinzu schätzen.

Wenn du nun 10 Bits überträgst, und jedes Bit 2,1% zu lang (oder zu 
kurz) wird, hast du am Ende eine Abweichung von 21% bis 31%. Da die Bits 
in ihrer Mitte abgetastet werden (beginnend bei der ersten Flanke des 
Startbits) bist du damit nahe an der Schwelle (50%) wo es garantiert 
nicht mehr funktionieren kann.

Und nun bedenke, dass da zwei Geräte miteinander kommunizieren. Der eine 
läuft vielleicht zu schnell, der andere zu langsam. Da kann im 
Extremfall +2,5% Abweichung auf der einen Seite und -2,5% auf der 
anderen Seite schon zum Totalausfall führen.

Um hier noch ein bisschen Luft für nicht ideale Leitungen zu haben, 
empfiehlt Atmel maximal 2% Abweichung vom Soll. Und die erreichst du bei 
AVR mit dem 16Mhz Quarz eben nicht.

von Karl K. (karl2go)


Lesenswert?

Joachim B. schrieb:
> ist aber egal, 115k funktionieren bei mir nicht am USB LANPORT oder bei
> wUSB!

Du möchtest Dich bitte mit den Begriffen Baudratenberechnung und 
Baudratenquarz auseinandersetzen. 115kBaud mit einem 16MHz Quarz geht 
nicht, weil sich 16MHz nicht ganzzahlig auf 115kBaud runterteilen 
lassen. Und der Arduino hat nunmal 16MHz verbaut.

Das ist völlig unabhängig von der Übertragungsart, ob direkt verbunden, 
über RS232 oder über RS485.

Was wiederum geht: Zwei Arduinos mit 16MHz Quarz und 115kBaud, weil der 
Fehler bei beiden der gleiche ist und die dann beide etwas neben den 
115kBaud laufen.

Was wiederum grenzwertig ist: Arduinos mit Keramikresonator oder 
internem Takt, da kann die Baudrate schon temperaturabhängig 
danebenliegen.

von Karl K. (karl2go)


Lesenswert?

Lars H. schrieb:
> Wie schicke ich RX/TX am besten
> durch das CAT5?

Bei RS232 über MAX232 oder MAX3232:

Rx/GND ein Paar
Tx/GND ein Paar
VCC/GND ein Paar

Bei RS422 über MAX488:

A/B ein Paar
Y/Z ein Paar
VCC/GND ein Paar

von Joachim B. (jar)


Lesenswert?

Karl K. schrieb:
> 115kBaud mit einem 16MHz Quarz geht
> nicht, weil sich 16MHz nicht ganzzahlig auf 115kBaud runterteilen
> lassen. Und der Arduino hat nunmal 16MHz verbaut.

wurde denn darauf nicht im Optiboot Rücksicht genommen?

ATmega haben doch NEU ein weiteres Register
Atmega-USART: U2X
Beitrag "Atmega-USART: U2X"

Karl K. schrieb:
> Du möchtest Dich bitte mit den Begriffen Baudratenberechnung und
> Baudratenquarz auseinandersetzen.

hatte ich zwar aber nicht alle Feinheiten verstanden,
OK der Fehler ist trotzdem größer!

Danke das sah ich nicht!

: Bearbeitet durch User
von Karl K. (karl2go)


Lesenswert?

Joachim B. schrieb:
> wurde denn darauf nicht im Optiboot Rücksicht genommen?
> ATmega haben doch NEU ein weiteres Register
> Atmega-USART: U2X

Bei U2X wird auch nur 8 statt 16mal gesampelt.

Atmega328 Datasheet von 11/2015, Seite 190. Bei 16MHz und 115kBaud ist 
der Fehler ohne U2X 3.5%, mit U2X 2.1%. Der empfohlene maximale Fehler 
ist ohne U2X 2%, mit U2X 1.5%.

Liegst also auf jeden Fall ausserhalb, ausser zwei Arduinos mit Quarz 
kommunizieren, dann liegen beide halt 3.5% daneben.

Der nächste Baudratenquarz wäre 14.7456MHz, aber wer lötet dafür schon 
seinen Arduino um.

Oder Du nimmst gleich 250kBaud, da passt es wieder genau, aber das 
können nicht alle Usb-seriell Wandler am PC.

von Joachim B. (jar)


Lesenswert?

aber 76K8 ginge mit U2X=1 und gäbe einen Fehler von 0,2% immerhin 
schneller und kleiner als bei 57K6 mit 0,8%

dann werde ich wohl noch mal Optiboot neu erstellen

Karl K. schrieb:
> Oder Du nimmst gleich 250kBaud

doof halt das meine Proggis nur 256K oder 230K kennen, aber 250K kennt 
keiner, die Abweichung ist wieder über 2%

aber wenns nur in der Arduino IDE ist für Optiboot mag es gehen?

müsste man mal testen, Serial dürfte davon ja nicht betroffen sein.

: Bearbeitet durch User
von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

76K8 wirds bei mir werden. Die Fehlertoleranz ist verlockend. Ich könnte 
aber auch 9600 nehmen, denn in der Praxis merke ich keinen Unterschied.
Beim Textscrollen gibt es eine Verzögerung Display1 zu FB-Display von 
min. 0,5 sek. (was mich sehr ärgert) und beim Zahlenändern läuft es 
simultan.
Deshalb die Überlegung, ob ich das FB-Oled über das CAT5 und PCB 9600 
direkt an den Hauptcontroller hänge, die Drehencoder-Auswertung aber 
über den FB-Controller und RS422 laufen lasse

von Lars H. (haggen)


Lesenswert?

Moin!
Ich nochmal...
Dieses hier funktioniert bei mir:
Sender-uC und Empfänger-uC  mit max488 bestückt
Kabel: cat5, 2m Länge
Terminierung/ Abschlusswiderstände: keine
Baudrate: 57600
Betriebsspannung überall 5V

Nehme ich stattdessen ein Cat5 mit 5m Länge, funktioniert die 
Übertragung nicht mehr.
Erreiche ich etwas mit Terminierungswiderständen? je 120 Ohm zwischen A 
und B und zwischen y und z? viele schreiben auch, daß ich 10nF zwischen 
A und GND und B und GND schalten sollte.

Wss mich im Moment etwas irritiert ist, daß schon bei 5m Kabellänge der 
"Ofen aus ist". Bei dieser Kabellänge müßte es doch noch problemlos ohne 
Widerstände funktionieren?

von Lars H. (haggen)


Lesenswert?

Nachtrag:
Bin bei der 5m-Kabel Konfiguration auch schon auf 9600 runtergegangen. 
Funktioniert trotzdem nicht.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Stefanus F. schrieb:
> Wenn du nun 10 Bits überträgst, und jedes Bit 2,1% zu lang (oder zu
> kurz) wird, hast du am Ende eine Abweichung von 21% bis 31%.

 LOL.
 Schule ?
 Mathematik ?

 Manoman.

> Da die Bits
> in ihrer Mitte abgetastet werden (beginnend bei der ersten Flanke des
> Startbits) bist du damit nahe an der Schwelle (50%) wo es garantiert
> nicht mehr funktionieren kann.

 Die bits werden mehrmals abgetastet, mindestens 3 Mal, meistens aber
 5 Mal, die Mehrzahl wird genommen.

von Lars H. (haggen)


Lesenswert?

ok. wie hilft mir das jetzt?

von STK500-Besitzer (Gast)


Lesenswert?

Sind das die gleichen Kabel, oder ist eins davon vielleicht ein 
Crosslink?

von Lars H. (haggen)


Lesenswert?

kein crosslink. Beides ganz normal patchkabel.
Ich habe auch ein 15m CAT5 Kabel. Funktioniert auch nicht.
Das 15m Kabel ist normalerweise zwischen Router und meinem PC.
Dann habe ich eine 100Mbit Internet Verbindung. Kable funktioniert also.
Ich habe auch für a und b verdrillte Pärchen genommen. In meinem Fall 
Orange/Orange-weiß und für y/ z blau/blau-weiß

von Lars H. (haggen)


Lesenswert?

selbst die Kabelverbindungen zwischen DI/R0 und den Controllern RX7TX 
sind verdrillte Leitungspärchen (10cm)

von Stefan F. (Gast)


Lesenswert?

@Marc V.
Der Tonfall deines nutzlosen Beitrages war unangemessen.

@Lars
Schau mal ins Datenblatt vom Max488. Dort findest du 
Beispiel-Schaltungen mit Abschlusswiderständen. Cat 5 Kabel haben einen 
Wellenwiderstand von 100Ω, so viel sollten dann auch die 
Abschlusswiderstände haben.

von M.A. S. (mse2)


Lesenswert?

A. K. schrieb:
> Wobei bei 4 verfügbaren Adern RS422-Transceiver kleiner und einfacher
> sind.

...und störsicherer.

von Lars H. (haggen)


Lesenswert?

Stefanus F. schrieb:
> Cat 5 Kabel haben einen
> Wellenwiderstand von 100Ω, so viel sollten dann auch die
> Abschlusswiderstände haben.

ok! also zwischen a und b 100 Ohm und dann nochmal zwischen y und Z das 
gleiche?

Stefanus F. schrieb:
> Dein Tonfall ist unangemessen und dein Beitrag in keiner Weise
> hilfreich

das kann man so sehen.

von Marc V. (Firma: Vescomp) (logarithmus)


Angehängte Dateien:

Lesenswert?

Lars H. schrieb:
> ok. wie hilft mir das jetzt?

 Bisschen lesen und sich informieren ?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> also zwischen a und b 100 Ohm und dann nochmal
> zwischen y und Z das gleiche?

Was sagt denn deiner Meinung nach das Datenblatt (Figure 2. 
MAX488/MAX490 Pin Configuration and Typical Operating Circuit) dazu?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Stefanus F. schrieb:
> @Marc V.
> Der Tonfall deines nutzlosen Beitrages war unangemessen.

 ACH.
 Lieber Stefan, entschuldige bitte, würde es dich vielleicht viel zu
 viel verletzen wenn ich behaupte, dass deine Antwort Bloödsinn ist ?

 Und somit nicht nur nutzlos, sondern auch schädlich...

von Stefan F. (Gast)


Lesenswert?

Ich habe kein Interesse an einer privaten Fehde auf dem Rücken des TO. 
Du kannst mich gerne per persönlicher Mail kontaktieren, wenn es Dir 
wichtig ist. Hier in diesem Thread sind deine Entgleisungen nicht 
erwünscht.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Stefanus F. schrieb:
> wichtig ist. Hier in diesem Thread sind deine Entgleisungen nicht
> erwünscht.

 Nicht meine Entgleisungen, sondern DEINE.

von Stefan F. (Gast)


Lesenswert?

Also Lars, hast du das Bild mit den Abschlusswiderständen gefunden?
Noch Fragen dazu?

Beitrag #5530452 wurde vom Autor gelöscht.
von Lars H. (haggen)


Lesenswert?

ja, danke. Hab ich gefunden und studiert. Ich war nur gerade etwas 
verschreckt von dem Schwanzvergleich und der Aggressivität und bin dann 
erstmal was essen gegangen. ich kenne das Datenblatt und die 
Bauteilsymbole der 4 möglichen Methoden zur Terminierung.

Marc V. schrieb:
> Bisschen lesen und sich informieren ?

ich bewundere und beneide Marc. Er hat anscheinend in seinem Leben IMMER 
sofort alles verstanden , wenn er es nur vorher kurz gelesen hat.
Ein wahres Genie!

Ich habe mich informiert, viel gelesen und habe mich trotzdem mit Fragen 
ans Forum gewandt. Ein besonders dummer Mensch muss er sein, dieser 
Lars.

Ok, Sarkasmus off. Zurück zum Thema:
In einem Punkt seid ihr beiden Turtltäubchen euch ja einig: Genauso wie 
im Datenblatt machen. 120 Ohm habe ich gerade nicht hier. Nur 100 oder 
150 smd.
Ich nehme mal 100 und probiere es aus. Wird schon nicht explodieren.
Wenns nichts bringt, melde ich mich wieder.

Ach ja ...und Marc... so ein Schaltbild bringt mir nichts. Da stehen 
nicht die Bauteilwerte oder welche der 4 Methoden die beste ist. man 
kann/ sollte schgon an meiner Fragestellung erkennen können, daß ich ein 
Laie bin. Außerdem ist soetwas schädlich für die Forums-Kultur. Neulinge 
lesen das und lernen eines: Stelle niemals eine dumme frage, sonst wirst 
Du beleidigt und zerfleischt von Fachidioten.

von Dietrich L. (dietrichl)


Lesenswert?

@Lars: Zur Sicherheit: Sind die GNDs der beiden µCs miteinander 
verbunden?

RS485 arbeitet zwar mit den Differenzen zwischen den beiden 
Signalleitungen, aber der Gleichtaktbereich der ICs ist begrenzt.

von Stefan F. (Gast)


Lesenswert?

Wir sind bei RS422, auch dort muss die GND Leitung verbunden sein.

von Lars H. (haggen)


Lesenswert?

ja, die beiden GND sind verbunden. Ich will später auch zusätzlich ein 
I2C Signal durch das CAT5 schicken. Die SDA und SCL sind dann jeweils im 
Verdrillungspärchen mit GND und VCC

von Lars H. (haggen)


Lesenswert?

ich habe jetzt die beiden 100 Ohm widerstände eingelötet. Auf der Master 
Seite des MAX488 zwischen A und B sowie auf der Slave Seite zwischen Y 
und Z.
Ergebnis: Jetzt funktioniert es noch nichteinmal mit einem 2m Cat5.
Also hier stimmt was nicht mit meiner Schaltung. Ich male mal ne 
Skizze...
moment...

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Lars H. schrieb:
> Ach ja ...und Marc... so ein Schaltbild bringt mir nichts. Da stehen
> nicht die Bauteilwerte oder welche der 4 Methoden die beste ist. man
> kann/ sollte schgon an meiner Fragestellung erkennen können, daß ich ein
> Laie bin.

 Deswegen sollte man einen gutgemeinten Rat befolgen, ein bisschen Fach-
 literatur lesen und zumindest versuchen, es zu verstehen.
 Und da du schon zu faul bist, um selber nachzusehen - die beste
 Methode ist die Methode Nr.4 - Failsafe

> Ich habe mich informiert, viel gelesen

 Nein, hast du nicht. Schon dein erster Beitrag und die dazugehörige
 Zeichnung zeigen das.


> und habe mich trotzdem mit Fragen
> ans Forum gewandt. Ein besonders dummer Mensch muss er sein, dieser
> Lars.
 Ich habe nie behauptet, dass du dumm bist, wahrscheinlich nur faul.


> Stelle niemals eine dumme frage, sonst wirst
> Du beleidigt und zerfleischt von Fachidioten.

 Auch das stimmt nicht, dich habe ich weder angesprochen noch habe
 ich dich beleidigt - wo denn ?

von Stefan F. (Gast)


Lesenswert?

> Ich will später auch zusätzlich ein I2C Signal durch das CAT5 schicken.

I²C ist allerdings nur für die Kommunikation innerhalb eines Gerätes 
gedacht. I²C hat weder starke Treiber, noch symmetrische Übertragung, 
noch vernünftig terminierte Leitungen. Mit der Kombination I²C und 10 
Meter Kabel wirst du sicher nicht glücklich.

von Lars H. (haggen)


Lesenswert?

doch. das habe ich schon ausprobiert. 25m Cat5 funktionieren bei mir 
problemlos. Habe mivh an die "finale Version" von folgendem Thread 
gehalten:
Beitrag "I2C mit 2 PCA9600"

Wie gesagt. Das funktioniert super. Nur die RS 422 Übertragung will 
nicht so recht...

von Stefan F. (Gast)


Lesenswert?

Interessant, den PCA9600 kannte ich noch nicht. Der hat Leistungsstarke 
Treiber, damit könnte man sogar ordentlich terminieren.

von Wolfgang (Gast)


Lesenswert?

Lars H. schrieb:
> ich habe jetzt die beiden 100 Ohm widerstände eingelötet. Auf der Master
> Seite des MAX488 zwischen A und B sowie auf der Slave Seite zwischen Y
> und Z.

Was sollen die Widerstände zwischen Y und Z. Die gehören an die 
Empfänger, also A-B beim MAX488 (Figure 2 im Datenblatt).

von Lars H. (haggen)


Lesenswert?

ah...moment...jetzt fällt mir was ein: zwischen den beiden max muß ich 
ja die Datenleitungen kreuzen. Das heißt: Das AB Pärchen vom ersten max 
geht auf das YZ Pärchen vom 2. Max. Muss ich den ZUSÄTZLICH auch 
INNERHALB des Pärchens die Daten kreuzen? Oder anders gefragt:

von Lars H. (haggen)


Lesenswert?

Y auf B
Z auf A

von Lars H. (haggen)


Angehängte Dateien:

Lesenswert?

Die gedrillte Knäul im Bild...gehen die Kabel gerade durch oder kreuzen 
sie sich oder ist es egal?

von Wolfgang (Gast)


Lesenswert?

Lars H. schrieb:
> Max. Muss ich den ZUSÄTZLICH auch
> INNERHALB des Pärchens die Daten kreuzen? Oder anders gefragt:

Guck ins Datenblatt.
Der nicht invertierte Ausgang muss an den nicht invertierenden Eingang - 
das sind die ohne das Symbol für Invertierung. Und der invertierte 
Ausgang an den invertierenden Eingang - das sind die mit dem Kreissymbol 
für Invertierung.

von Lars H. (haggen)


Lesenswert?

ok! Danke Wolfgang

von Lars H. (haggen)


Lesenswert?

jetzt funktionierts! ich hatte nicht nur y/z mit a/b gekreuzt, sondern 
auch
bei einem Kanal invertiert mit nicht-invertiert gekreuzt.
Vielen Dank für Eure Hilfe!

von Csaba K. (hexfetamp)


Lesenswert?

Hey Lars,
Möglicherweise liefert dir dieser Thread weitere wertvolle Infos
(obwohl deine Übertragung schon zu funktionieren scheint :-))
Beitrag "AVR SDA-SCL One-Wire I2C Optokoppler"

Ich habe hier das Übertragungsproblem sogar mit galvanischer Trennung
aufgebaut. Die Schaltung funktionierte sogar mit 50m Verbindungsleitung
(nur Testphase, bei mir nicht im Betrieb)

Viel Erfolg weiter !

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

@Stefanus:
Hinter den PCA9600 kannste dann noch CAN Transceiver hängen.
Dann geht die Party erst richtig ab.

von Stefan F. (Gast)


Lesenswert?

In dem PCA9600 muss irgend ein cooler Trick stecken, die bidirektionale 
Leitung in zwei unidirektionale aufzusplitten ohne dabei eine 
Rückkoppelung zu erzeugen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

"Ganz einfach", so stehts im DB:
A logic LOW is transmitted to TX when the voltage at I2C-bus pin SX is 
below 0.425 V. A
logic LOW at RX will cause I2C-bus pin SX to be pulled to a logic LOW 
level in accordance
with I2C-bus requirements (maximum 1.5 V in 5 V applications) but not 
low enough to be
looped back to the TX output and cause the buffer to latch LOW.

In die andere Richtung gibts also ein Loop, aber der wird ja 
unterbrochen sobald eine Seite wieder auf HIGH geht.

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.