Erst Mal frohe Weihnachten an Euch! Auch über die Feiertage muss man manchmal seine Projekte überdenken (z.B. beim Verdauen des Weihnachtsessens ;-) Also: Ich möchte Daten seriell über 50 m übertragen bei 9600 Baud, notfalls 4800 Baud. Die Daten werden von einem Arduino im Sensor bereitgestellt (der sich eben diese 50 m unter der Wasseroberfläche befindet), also TTL-Pegel. Reicht dieser Pegel für die 50 m aus? Am anderen Ende befindet sich ein weiterer Arduino, der daraus ein Bluetooth-Signal macht. Ich könnte natürlich einen Pegelwandler (MAX 232) einsetzen, der mir RS232-Pegel daraus macht (+/- 12V). Das müsste ich dann vor dem 2. Arduino wieder zurückwandeln. Bei TTL-Pegel zu bleiben, würde also die ganze Schaltung vereinfachen. Aber reicht das für 50 m (Kabelquerschnitt 1,5 mm2)? Danke für Eure Meinung Richard
Ich würde RS485 nehmen, da bist Du auf der sicheren Seite, das ist relativ simpel und dennoch sehr robust und hat sich vielfach bewährt.
Was hindert dich, das kurz auszuprobieren? Ansonsten empfehle ich, wie mein geschätzter Vorgänger, RS485.
Danke für die schnellen Antworten! Na klar, ausprobieren ist keine schlechte Idee :-) Mach' ich auch, wenn ich mich wieder in meinen Keller zurückziehen kann. (Käme im Moment nicht so gut). Wenn ich RS485 richtig verstehe, brauche ich zwei (symmetrische) Leitungen zur Datenübertragung, plus GND, plus Vcc --> macht vier Leiter, es stehen jedoch nur 3 zur Verfügung, deshalb RS232 (nur eine Richtung vorgesehen). Richard
Richard M. schrieb: > Wenn ich RS485 richtig verstehe, brauche ich zwei (symmetrische) > Leitungen zur Datenübertragung, plus GND, plus Vcc --> macht vier > Leiter, es stehen jedoch nur 3 zur Verfügung, deshalb RS232 (nur eine > Richtung vorgesehen). Vcc brauchst du nicht unbedingt. 3 Adern reichen.
Ich würde TTL nehmen. Da es hier nur um Datenübertragung geht dürfte kaum Verlust auf der Leitung bleiben, man schickt vorne vielleicht 5.0 V rein und hat nach 50 m, wenn es schlecht läuft, noch 4.8 V. Das reicht aber locker noch aus um High und Low zu erkennen. Eine RS232-Schnittstelle würde ich da auch nicht etablieren, wozu auch? Die Geräte die da miteinander reden werden doch nicht geändert (also nach dem Motto User geht hin, klemmt ein Gerät ab und klemmt sich mit einem Notebook dran oder so ähnlich) oder doch?
Richard M. schrieb: > Bei TTL-Pegel zu > bleiben, würde also die ganze Schaltung vereinfachen. Würde ich schon probieren. Ist zwar nicht mein Gebiet, aber ich vermute mal, unter Wasser ist weniger mit Störungen zu rechnen als an der Oberfläche, weil Wasser leitet, jedenfalls ein wenig, und daher abschirmt. Vielleicht weiss jemand von der Bundesmarine oder so was genaueres. Allerdings ist auch die kapazitive Belastung der Leitung grösser, dazu sollte man was über die nötige Übertragungsrate wissen. Georg
Mit 50 Metern baut man auch eine Antenne für Mittelwelle. Solange der Deutschlandfunk noch auf 1422kHz sendet, kannst du mit so einer Antenne die beiden Arduinos mit Strom versorgen. Naja, richtig aufgespannt und in der Nähe von Heusweiler jedenfalls. Keine Ahnung, wie stark das Wasser dämpft und wie der Unterschied zwischen 50 Meter senkrecht nach unten oder 50 Meter in einem flachen Bach wäre.
Rufus Τ. F. schrieb: >> (Kabelquerschnitt 1,5 mm2)? > > Das ist mehr als geringfügig übertrieben. Klar, elektrisch ist das übertrieben. Aber dazu kommt, dass das ganze auch mechanisch stabil sein soll, "rugged". Das Kabel auch muss druckdicht verschraubt werden können, und das geht bei einem dickeren Gummikabel einfach besser. Und schadet ja auch nicht.
Michael K. schrieb: > Die > Geräte die da miteinander reden werden doch nicht geändert (also nach > dem Motto User geht hin, klemmt ein Gerät ab und klemmt sich mit einem > Notebook dran oder so ähnlich) oder doch? Genauso ist es.
eagle user schrieb: > Mit 50 Metern baut man auch eine Antenne für Mittelwelle Aber nicht, wenn man die 50m in der Erde versenkt. Richard M. schrieb: > also TTL-Pegel. Reicht dieser Pegel für die 50 m aus? Ja, der Pegel reicht aus. Allerdings solltest Du Deine Schaltung dann auch entsprechend an Aus- und Eingängen vor Überspannungen schützen. Ganz ohne wirst Du nicht lange Freude daran haben. Also doch lieber ein Schnittstellen IC oder so. Mit einem RS485 Baustein benötigst Du neben GND zwei Kommunikationsleitungen und kannst damit immer nur in eine Richtung Daten übertragen. Wenn Du die Spannung unten noch mit Spannung versorgen möchtest, benötigst Du noch einen 4. Draht in der Leitung. Mit einem RS232 Baustein benötigst Du genau so viele Leitungen, kannst allerdings in beiden Richtungen gleichzeitig Kommunizieren und musst Dich auch nicht um die Umschaltung kümmern. Du könntest auch das serielle Signal modulieren, mit Übertragern entkoppeln und die Schaltung unten mittels Phantomspeisung versorgen. Bei korrekt gewählten Frequenzen ist auch hier eine gleichzeitig bidirektionale Kommunikation möglich. Nun noch die Frage: Was für Daten müssen mit mindestens 4800Bd aus der Erde übertragen werden? Rein aus Interesse ... Gruß Jobst
Jobst M. schrieb: > Allerdings solltest Du Deine Schaltung dann > auch entsprechend an Aus- und Eingängen vor Überspannungen schützen. > Ganz ohne wirst Du nicht lange Freude daran haben. > Also doch lieber ein Schnittstellen IC oder so. Woher Überspannungen? Vcc = 5V aus USB-Baustein. Induktionsspannungen?? Sind die seriellen Anschlüsse so hochohmig?? > Mit einem RS485 Baustein benötigst Du neben GND zwei > Kommunikationsleitungen und kannst damit immer nur in eine Richtung > Daten übertragen. Wenn Du die Spannung unten noch mit Spannung versorgen > möchtest, benötigst Du noch einen 4. Draht in der Leitung. Genau, und das ist ein Leiter zu viel... > Mit einem RS232 Baustein benötigst Du genau so viele Leitungen, kannst > allerdings in beiden Richtungen gleichzeitig Kommunizieren und musst > Dich auch nicht um die Umschaltung kümmern. Brauche nur eine Richtung und keine Umschaltung. Ein Sensor im Wasser misst Tiefe und Lichteinstrahlung und sendet diese Daten als Text über eine serielle Leitung. Es geht auch mit noch weniger als 4800 baud, das ist nicht zeitkritisch. Aber weniger sieht ein bisschen komisch aus ;-) und 4800 passt auch zum NMEA-Standard, bei dem auch Messwerte als Text mit dieser Baudrate übertragen werden (nicht nur GPS-Daten, was am bekanntesten ist, sondern auch Tiefe, Temperatur usw.) Gruß, Richard
Richard M. schrieb: > Induktionsspannungen?? > Sind die seriellen Anschlüsse so hochohmig?? Noch nicht nachgesehen? Nicht nur die. ... ca. 5MΩ Richard M. schrieb: > Brauche nur eine Richtung und keine Umschaltung. Na denn: GND, Vcc, TxD Ansonsten Versorgung über Tiefpass, Daten über Hochpass (moduliert) Dann geht es auch mit 2 Adern. Richard M. schrieb: > Aber weniger sieht ein bisschen komisch aus ;-) Aha. Ich arbeite unter anderem mit Systemen, die mit 0,4Bd arbeiten. Das ist so komisch, dass wir immer mit Tränen in den Augen am Boden liegen ... Gruß Jobst
Richard M. schrieb: > Aber weniger sieht ein bisschen komisch aus ;-) > und 4800 passt auch zum NMEA-Standard, bei dem auch Messwerte als Text > mit dieser Baudrate übertragen werden (nicht nur GPS-Daten, was am > bekanntesten ist, sondern auch Tiefe, Temperatur usw.) Also ich würde es auch nur so schnell machen wie nötig und 300 Baud, finde ich, sehen nicht komisch aus. Wie gesagt, du kannst dir ne RS232 oder RS485 oder ähnliches aufbauen, ich würde die Controller aber direkt zusammen klemmen ohne Schnittstellenbaustein: Weniger Aufwand, gleiche Funktionalität.
:
Bearbeitet durch User
Hi, Ich übertrage im Garten über 40 m Daten bei 14400 Bd mit einer Art LIN über ein Kabel in beide Richtungen. Chip dazu ist der MCP201. Auf einer Seite versorgt er auch den hier eingesetzten DCCduino mit Strom. Man muss ja das orginale LIN Protokoll nicht benutzen, der Chip ist ja nur ein Transceiver... Der Pegel des Signals sieht (auch bei der "nicht optimalen" Verlegung) an den Stationen gut aus, ich denke, zusätzliche 10 m würden da nicht stören.
:
Bearbeitet durch User
Ich würde da auch mit der Datenrate runtergehen, auf 300 Baud. Und vor allem die gute alte Stromschleife aus der Fernschreibertechnik verwenden, dank Fernspeisung ist der höhere Verbrauch ja kein Problem. Unten einfach einen Treibertransistor als Emitterfolger, oben einen Optokoppler vor den Empfänger, ein paar Widerstände - und du solltest kein Problem mit eingestrahlten Störungen haben.
> Ich würde TTL nehmen. Da es hier nur um Datenübertragung geht > dürfte kaum Verlust auf der Leitung bleiben, man schickt vorne > vielleicht 5.0 V rein und hat nach 50 m, wenn es schlecht läuft, > noch 4.8 V. Das reicht aber locker noch aus um High und Low zu erkennen. Die Spannungsverluste sind nicht der Knackpunkt, sondern Schwingungen, Reflexionen und eventuell Störungen von außen. TTL Signale sind "rechteckig". Solche Signale enthalten neben ihrer Grundfrequenz (dem Nutzsignal) unendlich viele Oberwellen mit einem vielfachen der Frequenz. Siehe: https://de.wikipedia.org/wiki/Rechteckschwingung Das Kabel verzerrt dieses Signal, wegen seiner Kapazität und Induktivität. Die einzelnen Frequenzen werden dabei sehr unterschiedlich verzerrt. Am Ende bekommst du kein Rechteckiges Signal mehr heraus. Dazu kommen Schwingungen, die im Kabel entstehen. Schon bei 5 Metern ist damit zu rechnen, dass das TTL Signal zu stark verzerrt wird, die Fehlerrate der Übertragung ist dann so hoch, dass einfache Fehlererkennungs-Mechanismen mit Prüfsumme und Wiederholung der Übertragung versagen. Als einfachste Gegenmaßnahme kann man Tiefpässe an beiden Enden des Kabels einsetzen (z.B. 100 Ohm + 1nF). Sie dämpfen die höheren Frequenzanteile, die durch das Kabel am stärksten verzerrt werden. Dann kommt beim Empfänger jedoch kein Rechteckiges Signal mehr an, sondern siehe zweite Kurve in folgendem Diagramm: http://www.netzmafia.de/skripten/netze/b1-21.gif Dieses Signal kannst du mit einem Schmitt-Trigger aufbereiten, um es in ein gültiges TTL Signal zurück zu verwandeln. Die alten parallelen Drucker-Ports wenden dieses verfahren an. Damit sind die Schwingungen aber noch nicht weg. Die wirst du los, indem du das Kabel an beiden Enden mit seinem Wellenwiderstand terminierst:
1 | 120 Ohm 120 Ohm |
2 | Sender o---[===]----------Kabel------+---[===]-----| |
3 | | |
4 | o |
5 | Empfänger |
Die Widerstände nehmen die Energie der Schwingung auf und dämpfen sie dadurch sehr gut, wenn sie vom Wert her genau zum Wellenwiderstand des Kabels passen. Jetzt kommen noch unsymmetrische Störungen. Die empfängt das Kabel, weil es wie eine Antenne wirkt. Auch strahlt es Störungen nach außen ab. Dagegen verwendet man eine Symmetrische Übertragung. Wenn eine Leitung auf High wechselt, wechselt die andere auf Low und umgekehrt. Bei einem gleichmäßig verdrillten Kabel führt das dazu, dass sich die elektromagnetischen Felder gegenseitig aufheben. Auf Seite des Empfängers muss man dann die Differenz der beiden Leitungen auswerten, nicht den absoluten Pegel gegenüber Masse. Beispielweise könnte eine Störung die Spannung beider gepaarten Leitungen kurzzeitig um 4V erhöhen. Die Differenz ist dann 0V, so dass die Störung keinen Einfluss auf die Datenübertragung hat. Wenn man hingegen den absoluten Pegel gegenüber GND verwenden würde (wie es TLL nunmal macht), dann hätten beide Leitungen zwangsläufig High Pegel, unabhängig von den tatsächlich übertragenen Daten. Die Datenübertragung wäre somit für den Zeitraum des Störimpulses völlig unterbrochen! Ein RS485 Chip kombiniert alle drei Maßnahmen auf preisgünstige Art. Ich persönlich halte RS232 für eine Fehlkonstruktion. Damals hatte wohl jeder Computer +/-12V zur Verfügung aber heute ist es schon eher lästig, diese Spannung erzeugen zu müssen. Mit den +/-12V Pegeln hat man lediglich den Unterschied zwischen High und Low vergrößert, und damit auch den Abstand zwischen Nutzsignal und Störsignal. High und Low lassen sich so eindeutiger erkennen, auch wenn noch ein andere schwaches Störsignal eingefangen wurde. Alle anderen oben genannten Aspekte der Signalübertragung werden damit aber nicht gelöst. Und deswegen mag ich RS232 überhaupt nicht. Das ist so eine halbe Frickel-Lösung als ob ich beim Musikhören über den Freisprech-Lautsprecher meines Handies die schlechte Tonqualität durch mehr Lautstärke ausgleichen würde. Auch das funktioniert ein bisschen, aber nicht wirklich gut.
Stefan U. schrieb:
…
Danke für diese sehr ausführliche Erklärung. Diese ist sehr informativ
gewesen. Ich habe bisher noch nicht über 50 m via TTL übertragen aber
schon über knapp 20 m bei 1200 bd und konnte die beschriebenen Effekte
nicht feststellen aber das muss ja nix heißen, wahrscheinlich hatte ich
auch einfach nur Glück.
Stefan U. schrieb: > Ich persönlich halte RS232 für eine Fehlkonstruktion. Damals hatte wohl > jeder Computer +/-12V zur Verfügung aber heute ist es schon eher lästig, > diese Spannung erzeugen zu müssen. Als "kleine" Plattenlaufwerke die Größe einer Waschmaschine hatten, selbstverständlich. Alle Terminals und Modems aus der Zeit der PDPen, VAXen und anderer Midragesysteme haben damit gearbeitet. Die gesamten Grundlagen der interaktiven Softwareentwicklung am Terminal ohne Verwendung von Lochkarten ist über V24/RS232 gelaufen. So schlecht kanns wohl nicht gewesen sein. Und V11/RS422 hat sich dagegen für einfache Verbindungen nie recht durchsetzen können. Es brauchte immer mehr Adern im Kabel ohne wirklich besser zu sein. Es wurde eigentlich nur bei synchronen Verbindungen (z.B. Datex P) benutzt. Das ist aber alles von Ethernet hinweggefegt worden. Aber auch das ist Geschichte. So ein ESP Modul oder änliche Bausteine kosten weniger als ein hochwertiger Kabelstecker, vom Kabel selbst ganz abgesehen. Und darüber mit jedem beliebigen anderen System Telnet zu machen, ist wahrlich keine Raketentechnik. Viele der modernen Systeme haben nicht mal mehr Ethernet, von seriell ganz zu schweigen. MfG Klaus
> Ich habe bisher noch nicht über 50 m via TTL übertragen aber > schon über knapp 20 m bei 1200 bd und konnte die beschriebenen > Effekte nicht feststellen Mit einem Oszilloskop hättest du die Effekt sicher sehen können. Die geringe Baudrate hat wohl geholfen. Nur willst du dieses mal ja 9600 Baud haben und hast ein erheblich längeres Kabel.
> Und V11/RS422 hat sich dagegen für einfache Verbindungen > nie recht durchsetzen können Stimmt, war für die allermeisten Anwendungsfälle in privathaushalten ja auch nicht notwendig, da man dort kurze Kabel hatte. Aber jetzt will man es schneller haben. USB, Ethernet, Firewire, Thunderbolt, SATA, HDMI - sie alle nutzen Symmetrische Leitungspaare.
Stefan U. schrieb: > Mit einem Oszilloskop hättest du die Effekt sicher sehen können. Na klar hätte ich den Effekt mit dem Oszi gesehen aber was interessiert mich wie das Signal genau ausschaut wenn die Übertragung fehlerfrei funktioniert? Mir ist dann dann völlig egal wie sehr der Rechteck verzerrt wird. Stefan U. schrieb: > Nur willst du dieses mal ja 9600 > Baud haben und hast ein erheblich längeres Kabel. Nein, ich will das nicht haben, das will der TE haben und ich sage nur, er soll doch erstmal nur eine Kommunikation mit TTL versuchen. Wenn das zu seiner Zufriedenheit funktioniert: prima. Wenn nicht kann er immer noch überlegen die Übertragung mit RS232 oder (besser) RS485 aufzubauen. ;) Stefan U. schrieb: > Aber jetzt will man es schneller haben. "will" ist gut. "muss" wäre besser. Man will ja nicht Großvater werden bis mal das Bild auf die Bildschirm ist oder das Backup des Rechners abgeschlossen ist usw. ;)
:
Bearbeitet durch User
Stefan U. schrieb: >> Und V11/RS422 hat sich dagegen für einfache Verbindungen >> nie recht durchsetzen können > > Stimmt, war für die allermeisten Anwendungsfälle in privathaushalten ja > auch nicht notwendig, da man dort kurze Kabel hatte. Zu der Zeit gab es in Privathaushalten gar keine Terminals. Wer hatte damals schon Platz und gar das Geld für ein paar Meter 19" Schrank mit ner PDP11/70. Dafür gabs davon in der Verwaltung, in der Technik und an den Universitäten tausende. Und da kamen auch schon mal 100m Kabel zusammen. Und als dann die PCs aufkamen wurde die Baudrate schnell auf außerhalb jeder Norm liegenden 115 kBd hochgedreht, da die die PC-Hardware keinen gradzahligen Vervielfacher zuließ. MfG Klaus
Stefan U. schrieb: > Aber jetzt will man es schneller haben. USB, Ethernet, Firewire, > Thunderbolt, SATA, HDMI - sie alle nutzen Symmetrische Leitungspaare. Wobei hier Ethernet mit seinen 100m der Apfel und der Rest Birnen sind. Also für unter 100m und 19200 oder langsamer V24, sonst Ethernet oder gleich WiFi. MfG Klaus
Richard M. schrieb: > (der sich eben diese 50 m unter der Wasseroberfläche > befindet), also TTL-Pegel. Reicht dieser Pegel für die 50 m aus? Ziemlich sicher, hab ich schon über 100m und mehr gemacht. Du hast da unten auch keine Störungen durch EMI oder Blitzschlag und Ausgleichsströme sind auch nicht zu erwarten. Wenn du bedenken hast dann nimm einfach verseilte Leitung. Dann kannst du immer noch auf RS422 (oder 485) gehen. Die Leitungen galvanisch zu trennen ist nie verkehrt. Schon wg. Blitzeinschlag auf dem Wasser. Dann kannst du das U-Boot über die Paare auch mit Strom füttern. POTS, ISDN oder POE machen das ja auch so.
Der Vorteil der Schnittstellenbausteine liegt nicht darin größere Störspannungsabstände zu haben, sondern dass sie bei Überspannung nicht gleich kaputt gehen. Wenn man mal ein Paket wegen eines Blitzeinschlags in 3km Entfernung nicht korrekt empfängt, ist das eine Sache. Wenn danach allerdings keine Pakete mehr ankommen, eine andere. Ein fehlerhaftes Paket kann man ja erkennen und aussortieren. Gruß Jobst
Heute abend konnte ich mal ans Ausprobieren gehen, im Anhang habe ich zwei Oszi-Fotos beigelegt, das erste mit 5 m Kabellänge und reiner TTL-Übertragung, das zweite dto. mit 55 m (auf Kabeltrommel aufgerollt, morgen kommt noch ein Test mit abgerolltem Kabel), beide 9600 Baud. Ziemlich genau 5 V, im zweiten Fall vielleicht auf dem "Dach" des Signals etwas mehr Unruhe, ein geringfügig stärkeres Überschwingen, das wärs aber auch. Ich würde sagen, der Praxistest hat gezeigt, wo es lang geht. Bei TTL und ohne Schnittstellenbausteine ergeben sich m.E. folgende Vorteile: Einfacherer Aufbau (es sind nur 30x40 mm Platz im Gehäuse), ausreichende Signalübertragung, 3-adriges Kabel reicht. Vor Blitzschlag brauche ich keine Angst zu haben, wenn der Blitz in den See einschlägt, würden auch die Kollegen oder ich im Boot getroffen, das wollen wir vermeiden. Es ist ja keine Anlage zur Dauermessung, sondern sie wird nur dann ins Wasser abgelassen, wenn auch Proben genommen werden usw. Es war eine interessante Diskussion hier mit der Beleuchtung vieler Aspekte, die mir klar werden, die ich aber nicht so auf dem Schirm hatte. Danke an alle! Gruß, Richard
Richard M. schrieb: > Ich würde sagen, der Praxistest hat gezeigt, wo es lang > geht. Nein, den Praxistest hast Du hinter Dir, wenn Du fluchend mit Deinen Kollegen das Boot verlässt, weil die Schaltung versagt hat. Das hier ist ein Labortest, der noch lange kein Beweis dafür ist, das keine Probleme auftauchen. Wieso man an den paar Cent für einen Treiber sparen muss, ist mir unklar. Aber Du wirst sie auch noch investieren ... Reisende soll man nicht aufhalten. Gruß Jobst
@ Jobst M. (jobstens-de) >> Ich würde sagen, der Praxistest hat gezeigt, wo es lang >> geht. Ja. >Nein, den Praxistest hast Du hinter Dir, wenn Du fluchend mit Deinen >Kollegen das Boot verlässt, weil die Schaltung versagt hat. Das hier ist >ein Labortest, der noch lange kein Beweis dafür ist, das keine Probleme >auftauchen. Jain. >Wieso man an den paar Cent für einen Treiber sparen muss, ist mir >unklar. Weil er wenig Platz hat. UART mit 9K6 Baud über 50m mit 5V CMOS Pegel geht schon, sooo wild ist das nicht. Das Problem kommt aber spätestens dann, wenn das Kabel noch den Sensor in der Tiefe mit viel Strom versogen muss und der Spannungsabfall auf der Masse zu groß wird. Aber bei 1,5mm^2 hat man da einige Reserven ;-)
@ Stefan Us (stefanus) >> Ich würde TTL nehmen. Da es hier nur um Datenübertragung geht >> dürfte kaum Verlust auf der Leitung bleiben, man schickt vorne >> vielleicht 5.0 V rein und hat nach 50 m, wenn es schlecht läuft, >> noch 4.8 V. Das reicht aber locker noch aus um High und Low zu erkennen. Ja. >Die Spannungsverluste sind nicht der Knackpunkt, sondern Schwingungen, >Reflexionen Nö. >und eventuell Störungen von außen. Vielleicht. >Das Kabel verzerrt dieses Signal, wegen seiner Kapazität und >Induktivität. Die einzelnen Frequenzen werden dabei sehr unterschiedlich >verzerrt. Am Ende bekommst du kein Rechteckiges Signal mehr heraus. Dazu >kommen Schwingungen, die im Kabel entstehen. Theoretisch ja, praktisch HIER nicht. >Schon bei 5 Metern ist damit zu rechnen, dass das TTL Signal zu stark >verzerrt wird, die Fehlerrate der Übertragung ist dann so hoch, dass >einfache Fehlererkennungs-Mechanismen mit Prüfsumme und Wiederholung der >Übertragung versagen. Unsinn. Selbst wenn hier durch Fehlanpassung und fehlende Terminierung wildes Klingeln entsteht, ist das nach ein paar us wieder abgeklungen. UART mit 9K6 hat aber 100us Bitzeit. Da interessiert das keine Sekunde. Ausserdem tastet der UART jedes Bit in der Mitte dreimal ab und entscheidet daraus. Das passt schon, auch wenn es nicht lehrbuchmäßig ist. >Dieses Signal kannst du mit einem Schmitt-Trigger aufbereiten, Hat der AVR schon drin. >Damit sind die Schwingungen aber noch nicht weg. Die wirst du los, indem >du das Kabel an beiden Enden mit seinem Wellenwiderstand terminierst: Nicht bei 5V. Siehe Wellenwiderastand. >Jetzt kommen noch unsymmetrische Störungen. Die empfängt das Kabel, weil >es wie eine Antenne wirkt. Auch strahlt es Störungen nach außen ab. Die paar uW kann man in den Skat drücken. >Dagegen verwendet man eine Symmetrische Übertragung. Muss man nicht zwingend. >Ein RS485 Chip kombiniert alle drei Maßnahmen auf preisgünstige Art. Ja, ist hier aber nicht zwingend. >Ich persönlich halte RS232 für eine Fehlkonstruktion. Obwohl es mehr als 40 Jahre weltweit Bestand hatte und immer noch hat? Mutig. > Damals hatte wohl >jeder Computer +/-12V zur Verfügung aber heute ist es schon eher lästig, >diese Spannung erzeugen zu müssen. Da macht dein MAX232 für dich. >Und deswegen mag ich RS232 überhaupt nicht. Das ist so eine halbe >Frickel-Lösung als ob ich beim Musikhören über den >Freisprech-Lautsprecher meines Handies die schlechte Tonqualität durch >mehr Lautstärke ausgleichen würde. Auch das funktioniert ein bisschen, >aber nicht wirklich gut. jaja.
@ Michael Köhler (sylaina) >Stefan U. schrieb: >… Halbgares Halbwissen. >Danke für diese sehr ausführliche Erklärung. Diese ist sehr informativ >gewesen. Nicht wirklich. Es macht nur Angst. > Ich habe bisher noch nicht über 50 m via TTL übertragen aber >schon über knapp 20 m bei 1200 bd und konnte die beschriebenen Effekte >nicht feststellen aber das muss ja nix heißen, wahrscheinlich hatte ich >auch einfach nur Glück. Nö, sooo kritisch ist das alles bei Weitem nicht.
Falk B. schrieb: > Nö, sooo kritisch ist das alles bei Weitem nicht. Das hatte mich auch schon gewundert und hätte es auch nicht so kritisch erwartet. Falk B. schrieb: > UART mit 9K6 hat aber 100us Bitzeit Denkfehler? Ich würde eher was um die 10 us vermuten (8 bit Frame, 1 Startbit, 1 Stoppbit, gesamt also 11 bits/Zeichen). Du meinst sicher die Zeit die ein Zeichen zum Übertragen braucht.
:
Bearbeitet durch User
Michael K. schrieb: > Kommafehler? Nein. > Ich würde eher was um die 10 us vermuten Wer richtig rechnen kann, ist klar im Vorteil. Vermutungen helfen nicht weiter. > (8 bit Frame, 1 Startbit, 1 Stoppbit, gesamt also 11 bits/Zeichen). Auch hier: Wer richtig rechnen kann, ist klar im Vorteil. Ist allerdings für die erste Berechnung auch irrelevant. 9600Bd = 9600 Zeichen pro Schritt, bei seriell also 9600 Bit/s = 104µs pro Bit. Wie lang da irgendwelche Datenpakete sind ist völlig egal. Gruß Jobst
Falk B. schrieb: > Jain. Abwarten. Falk B. schrieb: > Weil er wenig Platz hat. Wo steht das? Ich habe gerade nochmal danach gesucht. Gruß Jobst
Jobst M. schrieb: > Wie lang da irgendwelche Datenpakete sind ist völlig egal. ist zu früh für mich. Gibt ja nur zwei Zustände…ich mach mir noch nen Kaffee ;)
Jobst M. schrieb: > Wo steht das? Ich habe gerade nochmal danach gesucht. Richard M. schrieb: > es sind nur 30x40 mm Platz im > Gehäuse Bitte sehr ;)
Michael K. schrieb: > Bitte sehr ;) Vielen Dank. Womit mit beliebiger Höhe unendlich Volumen zur Verfügung steht. Mal ehrlich: Da bekommt man einen MAX232 mit 5 Kondensatoren auch noch unter. Wurde von ihm selbst ja auch schon vorgeschlagen. Naja, soll er machen, wie er denkt. Gruß Jobst
Na ich denke wir können davon ausgehen, dass die Höhe auch begrenzt ist und klar, ein MAX232 + 5 Kondensatoren nehmen nicht viel Platz ein aber bei begrenzten Raum ist jeder Quadratmillimeter, den man sparen kann, mindestens eine Überlegung wert ob man ihn sparen kann. Und wenns mit TTL ausreichend ist, warum dann den Platz verschwenden?
Wenn der OP die Sache noch einen Tick lehrbuchmäßiger machen will, kann er ja eine AC-Terminierung am Empfänger platzieren. 120 Ohm + 100pF sollten passen, siehe Wellenwiderstand. Serienterminierung am Sender geht hier auch problemlos, so um die 80 Ohm sollten passen.
>> Am Ende bekommst du kein Rechteckiges Signal mehr heraus. Dazu >> kommen Schwingungen, die im Kabel entstehen. > Theoretisch ja, praktisch HIER nicht. Aber sicher doch. Das kann man sogar am obigen Oszilloskopbild sehen. Die Überschwinger an den Signalflanken sind genau diese Schwingungen. Du musst mal die Zeitachse ändern. Vergößere zum Beispiel den Ausschnitt der steigenden Flanke. Es kann durchaus sein, dass die Schwingung so stark ist, dass das Signal mehrmals zwischen High und Low wechselt. Wenn nicht, hast du Glück. Wie gesagt kann man diese Schwingungen durch Abschlusswiderstände deutlich reduzieren - aber dann hast du auch keine 5V Pegel mehr und musst sie aufbereiten. Oder man filtert sie durch Tiefpässe heraus, auch dann musst du das Signal aufbereiten. Das folgende Bild zeigt die Flanke detaillierter, da siehst du, was ich meine: https://www.mikrocontroller.net/attachment/210269/IMG_20140308_210741.jpg Hier haben wir einen Wechsel von High nach Low, Die Schwingung ist aber so stark, dass ein unerwünschter Übergang in den illegalen Bereich (>0,7V) statfindet. Wie dein Empfänger darauf reagiert, ist ungewiss. Ein Schmitt-Trigger würde in diesem konkreten Fall schon genügen, den Fehler herauszufiltern. Ich auch berücksichtigen, dass die Spannung durch überschwingen zu hoch bzw zu niedrig werden kann. In der Regel darf die Spannung an einem Eingang hächstens 5,5V betragen und nicht weniger als -0,5V. Sonst riskierst du, den Empfänger zu zerstören. Diese Schwingungen sind bei 50 MeterKabel Energiereich genug, um zumindest Fehlfunktionen auszulösen. Zum Beispiel den gefürchteten Latch-Up Effekt, bei dem der Chip funktional blockiert und heiß wird. Falk hat einen wichtigen Hinweis gegeben, der erklärt, warum es in der Praxis trotz verzerrten Signalen funktioniert: > Ausserdem tastet der UART jedes Bit in der Mitte dreimal ab > und entscheidet daraus. Ich weiss jetzt nicht, welchen konkreten UART er meint. Aber dass Chips das Signal verzögert nach den Flanken abtasten, habe ich öfters in den Datenblättern gelesen. Allerdings würde ich daraus nicht einfach ableiten, dass es immer so gemacht wird. Hier sollte man in das Datenblatt des konkreten Chips schauen.
Stefan U. schrieb: > Ein Schmitt-Trigger würde in diesem konkreten Fall schon genügen, den > Fehler herauszufiltern. Den haben die IOs eines Atmegas, der hier ja zum Einsatz kommt, schon integriert. ;) Stefan U. schrieb: > Ich auch berücksichtigen, dass die Spannung durch überschwingen zu hoch > bzw zu niedrig werden kann. In der Regel darf die Spannung an einem > Eingang hächstens 5,5V betragen und nicht weniger als -0,5V. Sonst > riskierst du, den Empfänger zu zerstören. Diese Schwingungen sind bei 50 > MeterKabel Energiereich genug, um zumindest Fehlfunktionen auszulösen. > Zum Beispiel den gefürchteten Latch-Up Effekt, bei dem der Chip > funktional blockiert und heiß wird. Dagegen hat der Atmega intern ja auch eine Schutzbeschaltung, hier in diesem konkreten Anwendungsfall also absolut kein Problem. ;) Stefan U. schrieb: > Hier sollte man in das > Datenblatt des konkreten Chips schauen. Es ist ein (bzw. zwei) Atmega (vgl. Eingangspost) ;)
:
Bearbeitet durch User
> Dagegen hat der Atmega intern ja auch eine Schutzbeschaltung
Die man gerne nutzen kann, aber bitte mit Widerständen, die den Strom
begrenzen.
Stefan U. schrieb: > Die man gerne nutzen kann, aber bitte mit Widerständen, die den Strom > begrenzen. Wozu? Der UART des Atmegas treibt ja nicht mit 500 mA, da brauchst du keine Angst haben.
@ Stefan Us (stefanus) >>> Am Ende bekommst du kein Rechteckiges Signal mehr heraus. Dazu >>> kommen Schwingungen, die im Kabel entstehen. >> Theoretisch ja, praktisch HIER nicht. >Aber sicher doch. Das kann man sogar am obigen Oszilloskopbild sehen. >Die Überschwinger an den Signalflanken sind genau diese Schwingungen. Ich wiederhole mich. Theoretisch ja, praktisch HIER nicht. Das Rechteck ist rechteckig, die Schwingungen weniger als 1% der Pulsdauer. So what! >Wie gesagt kann man diese Schwingungen durch Abschlusswiderstände >deutlich reduzieren Das macht keiner bei 5V CMOS. >https://www.mikrocontroller.net/attachment/210269/... Schon klar, das ist aber gar nicht der Punkt. UART wird durch Mehrfachabtastung verarbeitet. Die Flanken im sub us-Bereich sind egal. Denn es sind keine MHz-schnellen Takteingänge, die das saubere Flanken brauchen. >Ich auch berücksichtigen, dass die Spannung durch überschwingen zu hoch >bzw zu niedrig werden kann. In der Regel darf die Spannung an einem >Eingang hächstens 5,5V betragen und nicht weniger als -0,5V. Sonst >riskierst du, den Empfänger zu zerstören. PCI hat millionenfach mit Diodenklemmung gearbeitet, das kann sooo falsch nicht sein. > Diese Schwingungen sind bei 50 >MeterKabel Energiereich genug, um zumindest Fehlfunktionen auszulösen. Bist du Versicherungsvertreter? >> Ausserdem tastet der UART jedes Bit in der Mitte dreimal ab >> und entscheidet daraus. >Ich weiss jetzt nicht, welchen konkreten UART er meint. Das machen fast alle so. > Aber dass Chips >das Signal verzögert nach den Flanken abtasten, habe ich öfters in den >Datenblättern gelesen. Das machen alle. Keiner macht eine "echte" Flankenerkennung mit einem echten Takteingang eines FlipFlops. > Allerdings würde ich daraus nicht einfach >ableiten, dass es immer so gemacht wird. Doch. Warum muss man wohl einen 16x Baudrate Takt einstellen?
1 | 120 Ohm 120 Ohm |
2 | Sender o---[===]----------Kabel------+---[===]-----| |
3 | | |
4 | o |
5 | Empfänger |
Das hat den Nachteil, dass beim Empfänger nur noch die halbe Spannung ankommt. In diesem Fall besser so:
1 | 120 Ohm 120 Ohm |
2 | Sender o----[===]----------Kabel----------[===]----o Empfänger |
Der Widerstandswert ist nicht kritisch, 22-150 Ohm je nach Baudrate. Das hat den Vorteil, dass der Sender nicht hart gegen die Kapazität der Leitung treiben muss. Falls doch ein Spike ankommen sollte, geht der Empfänger nicht gleich in Latch-Up. Störungen werden hier wenig vorkommen, da alle drei Adern das gleiche Schicksal ereilt (Gleichtakt). Sowohl TTL-RS232 als auch RS485 kann man mit einer Leitung/einem Paar bidirektional machen (half-duplex). Muss man im Protokoll vorsehen. https://de.wikipedia.org/wiki/EIA-485
@ Michael Köhler (sylaina) >> riskierst du, den Empfänger zu zerstören. Diese Schwingungen sind bei 50 >> MeterKabel Energiereich genug, um zumindest Fehlfunktionen auszulösen. >> Zum Beispiel den gefürchteten Latch-Up Effekt, bei dem der Chip >> funktional blockiert und heiß wird. >Dagegen hat der Atmega intern ja auch eine Schutzbeschaltung, hier in >diesem konkreten Anwendungsfall also absolut kein Problem. ;) Naja, THEORETISCH hat der Stefan schon recht, man kann mit hohen Strömen in die Schutzdioden eines ICs diesen zum Latch-Up bringen. Allerdings sind die ICs heute so gut und robust, dass man da schon ORDENTLICH Strom reinschieben muss. Die Standard-CMOS der 74HC Reihe garantieren Latch-Up Resistenz bis 200mA eingespeisten Strom! Aus HC User Guide von Phillips/NXP "For example, it has been determined that an HCMOS input can typically withstand continuous current (5 s on, 15 s off) of 100 mA to 120 mA, or 1ms pulses of 300 mA with a duty factor of 0.001. An input can also withstand a discharge from a 200 pF capacitor charged to 330 V. An HCMOS output can withstand continuous current (5 s on, 15 s off) of 200 mA to 300 mA, or 1 ms pulses of 400 mA with a duty factor of 0.001. However, because there is an internal polysilicon 100 W resistor in series with all HCMOS inputs, the input voltages required to achieve these current levels are so high (VI = VCC + 0.7 V + 100II) that it is unlikely that they could occur in practice, even in a 6 V system with severe glitches. Moreover, beyond these current levels, excessive heating occurs or aluminium tracks or bond wires breakdown. It is therefore reasonable to conclude that HCMOS logic ICs are completely latch-up free." Ob AVRs und andere ICs auch so hart sind bleibt offen, aber die Indizien sprechen dafür. Und wieder sage ich. Theoretisch ja, praktisch HIER nicht. ;-) Eine simple Serienterminierung am Sender löst das Problem einfach und elegant. Lehrbuchgerecht.
Falk B. schrieb: > Allerdings > sind die ICs heute so gut und robust, dass man da schon ORDENTLICH Strom > reinschieben muss. u.a. deswegen schrieb ich ja: Michael K. schrieb: > Wozu? Der UART des Atmegas treibt ja nicht mit 500 mA, da brauchst du > keine Angst haben. ;) natürlich sind Stefans Einwende allgemein betrachtet berechtigt, aber hier in diesem Anwendungsfall tritt das alles ja nicht auf.
:
Bearbeitet durch User
Es ging um ESD Dioden... >> Die man gerne nutzen kann, aber bitte mit Widerständen, die den Strom >> begrenzen. > Wozu? Der UART des Atmegas treibt ja nicht mit 500 mA, da brauchst du > keine Angst haben. Im Datenblatt der AVR Mikrocontroller ist nicht angegeben, wie viel Strom diese Dioden vertragen. Es ist ist allerdings bei den maximal Ratings ein Spannungsbereich angegeben, bei dem diese Dioden gar nicht leiten. Manche Leute leiten daraus ab, dass man die ESD Dioden gar nicht belasten soll. Andere wiederum verweisen auf eine Application Node (Null-Durchangs-Detektor) in der es heisst, das der Strom auf 1mA begrenzt werden soll. Die Ausgänge des AVR können aber weit mehr Strom liefern. Ich meine, es waren mindestens 40mA. > Bist du Versicherungsvertreter? Nein. Aber ich baue gelegentlich Schaltungen für Geld. Dabei lege ich Wert auf angemessene Qualität. Ich kann mir keine Reise nach Österreich leisten, um dort jemandem zu helfen, der mit meinem 200 Euro Werk ein ernsthaftes Problem hat. Also ja, ich gehe lieber auf Nummer Sicher, als auf Glück zu hoffen.
> In diesem Fall besser so:
1 | 120 Ohm 120 Ohm |
2 | Sender o----[===]----------Kabel----------[===]----o Empfänger |
Das ist keine richtige Terminierung, denn der rechte 120 Ohm Widerstand liegt in Reihe mit dem sehr hochohmigen Eingangswiderstand des Empfängers. Weiter oben hat schon jemand die Kapazitive Entkoppelung empfohlen, was besser ist:
1 | 120 Ohm 120 Ohm |
2 | Sender o----[===]----------Kabel------+---[===]----||-----| GND |
3 | | |
4 | o |
5 | Empfänger |
Wobei ich gerade nicht weiss, welcher Wert für den Kondensator angemessen ist. Jedenfalls ist die Idee, dass der Kondensator nur hohe Frequenzen (die Schwingungen) durchlässt und für das Nutzsignal hochohmig ist.
Stefan U. schrieb: > Also ja, ich gehe lieber auf Nummer Sicher, als auf Glück zu hoffen. Naja, der TE hat es sich ja angeschaut und selber Messen ist IMO immer noch die sicherste Art. Schaun wir uns die üblichen 0815-Dioden (z.B. 1N400x oder 1N4148) an sieht man schon, dass diese locker das mehrfache ihres Nennstroms als Peaks abkönnen ohne dass man Angst haben muss, dass sie sich in Rauch auflösen. Das ändert sich auch bei den ESD-Dioden nicht.
@ Michael Köhler (sylaina) >1N400x oder 1N4148) an sieht man schon, dass diese locker das mehrfache >ihres Nennstroms als Peaks abkönnen ohne dass man Angst haben muss, dass >sie sich in Rauch auflösen. Das ändert sich auch bei den ESD-Dioden >nicht. Das müssen die auch, denn ESD pustet einige A für ein paar Dutzend ns dort rein.
Falk B. schrieb: > Das müssen die auch, denn ESD pustet einige A für ein paar Dutzend ns > dort rein. Eben, und deshalb stören die von Richard gemessenen Peak auch die ESD-Dioden des Atmegas nicht. Diese "öminösen" 1 mA sind ja für einen deutlich längeren Einwirkzeitraum (>> 10 ms) gedacht. Hier liegt der Einwirkzeitraum aber deutlich darunter.
Ich habe auch schon 200m mit 9600 Baud auf Telefonleitung überbrückt, allerdings mit Optokoppler und Stromschleife a là MIDI, weil die Endgeräte (Server und Drucker) auf verschiedenen Netzen lagen. Das hat über 10 Jahre funktioniert, bis die Anlage (eine Honeywell-Bull!) abgebaut wurde. Im vorliegenden Fall würde ich höchstens noch einen Buffer in den Sender bauen, der die Leitung schön niederohmig macht und verhindert, das sie direkt auf dem Portpin des MC endet. Ansonsten ist das alles sehr unkritisch, wie man ja auch auf den Ozillogrammen sieht. Selbst 19200 Baud würden vermutlich locker gehen.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.