Hallo, RS 232 V.24 arbeitet ja physikalisch zwischen "-12V und 12V", oder? Aus anderer Quelle "Gültige Signalpegel liegen in den Bereichen von +3V und +15V und - 3V und -15V. Pegel zwischen -3 V und +3 V sind nicht zulässig. Der Standard sieht einen maximalen Pegelhub von ± 25 V vor. Üblich sind ± 5V, ± 10V, ± 12V und ± 15V. Die tatsächlich anliegenden Pegel sind abhängig von der Treiberschaltung. - kompendium.infotip.de" Wie kann man da ran gehen, wenn man ein 5V embedded Linux System, beagle bone oder raspberry Pi per USBtoRS232 Adapter mit einem ATMega verbinden möchte. Wo bekommt man die höheren Potentiale da rein? Über Infos wäre ich dankbar. Gruß Markus
Dafür gibt es Konverterchips mit internen Ladungspumpen. Populär für 5V Systeme ist z.B. der MAX232 von Maxim und jeder Menge anderer Lieferanten (HIN232, LT232 etc.). Für 3,3V Systeme wurde z.B. der MAX3232 erfunden.
m_golbs schrieb: > Wo bekommt man die höheren Potentiale da rein? Sender/Empfänger für RS232C sind Pegelwandler von TTL-Pegel auf +-15 V und umgekehrt, meistens invertierend. Die Empfänger brauchen keine zusätzliche Stromversorgung, die vertragen einfach die höheren Spannungen am Eingang. Sender brauchen natürlich entsprechende Versorgungsspannungen, entweder nimmt man einen DC-DC-Wandler auf +-12 V oder einen IC wie MAX232/3232, bei dem so ein Wandler schon eingebaut ist. Die kommen zwar nicht auf +-12 oder +-15 V, höchstens auf +-10 V, aber das reicht für eine normgerechte Verbindung. m_golbs schrieb: > per USBtoRS232 Adapter Da muss sichergestellt sein, dass der auch wirklich auf +-10V oder mehr wandelt - oft werden unter dieser Bezeichnung auch Schaltungen verkauft, die nur 3,3 V oder 5 V Signale ausgeben, die dürfen natürlich nicht an echte RS232C-Signale angeschlossen werden. Georg
https://www.elv.at/elv-usb-modul-um2102n-bausatz.html Modul hat USB Stecker und Pegelkonverter integriert.
m_golbs schrieb: > Wie kann man da ran gehen, wenn man ein 5V embedded Linux System, beagle > bone oder raspberry Pi per USBtoRS232 Adapter mit einem ATMega verbinden > möchte. Was willst du da mit RS-232? Der Raspberry hat USB, aber der ATmega kein RS-232.
Ich würde heute nur noch RS232 nutzen, wenn das Gerät am anderen Ende des Kabels es unbedingt so will. RS232 stammt aus einer Zeit, als IBM moch glaubte, man braucht sich beim Bau von Computern nicht um die Grundlagen der Wellenausbreitung zu scheren. Diese Technik war meiner Meinung nach ein grobes Fehldesign. RS422 Treiber sind viel einfacher, zuverlässiger und erlauben erheblich längere Kabel. Was die elektrischen Pegel angeht, ähneln sie dem CAN Bus sehr, der seit zig Jahren in KFZ verwendet wird. Ebenso stark verwandt mit DMX in der Bühnentechnik sowie diverse Bus-Systeme in der Haustechnik.
m_golbs schrieb: > beagle bone oder raspberry Pi per USBtoRS232 Adapter mit einem ATMega > verbinden Wozu der Adapter? Beide SBC haben direkt UARTs eingebaut, welche mit 3,3V kompatibel sein sollten (Spannungsteiler verwenden).
RS232 ist eine Norm, die einfach einige Jahre auf dem Buckel hat und man sehe und staune: Immer noch verwendet wird. Also nimm die Daten und pass dein Gerät darauf an, wenn du eine Norm verwenden willst. Damit lassen sich Generationen von Geräten miteinander verbinden ohne allzu großen Aufwand. Ist das denn was Schlechtes ?
m_golbs schrieb: > Wo bekommt man die höheren Potentiale da rein? z.B. ebay: 272413019707 Wobei ich hier auch keine Notwendigkeit sehe.
m_golbs schrieb: > Wo bekommt man die höheren Potentiale da rein? Am besten gar nicht. Denn man arbeitet dann eben nicht mit RS232 sondern mit UART. Allerdings darf man dann auch keinen USB2RS232 Wandler benutzen, sondern einen USB2UART. Letzterer hat keinen MAX232 zur Wandlung auf RS232 verbaut. Achtung: Es gibt 5V und 3V USB2UART Wandler, und es gibt moderne µC die keine 5V mehr an den IOs vertragen. Grade auch beim RPi würde ich da 2x nachschauen was der verträgt.
Hallo, vielen Dank für die Info. Einen MAX232 verwende ich auf einer gekauften Platine schon. Wenn der dann mit 5V versorgt wird entsteht per Ladungspume der notwendige V.24 Potentialunterschied? Kann es dann zusätzlich notwendig werden die GND's der zwei Systeme auf ein Niveau zu ziehen? Habe gerade den Effekt, dass die RS232 zwischen ATMega und Laptop nur dann läuft, wenn der STK200 Programmieradapter mit angeschlossen ist. Gruß und Dank Markus
m_golbs schrieb: > Kann es dann zusätzlich notwendig werden die GND's der zwei Systeme auf > ein Niveau zu ziehen? Unbedingt, man benötigt Massebwzug!
Hallo, vielen Dank für die umfangreichen Darstellungen. RS232 hat für mich den Vorteil einfach in einem ATMega & Co. umzusetzen zu sein. Ich brauche es eigentlich nur für debugging und zum Logging von Daten über Wochen und Monate. Geschwindigkeit, Datenrate & Co. spielen in meiner Anwendung keine Rolle, Zykluszeit 10 sec. mit 9600 bits. Ich überlege als Alternative zum RPi mit "GPIO zu Serieller UART Port (MAX232)" einen alten noch vorliegenden dnp7520 (NS7520 ARM7TDMI) zu verwenden, in C einen RS232 zu Socket Server zu programmieren. Muss mal die alte Entwicklungsumgebung des ARM7TDMI auspacken , altes Linux in eine VM, und schaun ob die ganze Registerproblematik für einen Laien zeitlich überschaubar verständlich ist. Der Socketserver muss ja nur analog minicom Daten von der RS232 auf den Port legen. Dann habe ich die universelle LAN Schnittstelle und kann es überall hin einbinden, kombinieren... Habe so etwas schon mal vor 15 Jahren für eine Applikation mit CAN gemacht. @Masseausgleich: Der RS232 Anschluss vom Laptop über das "Modem Kabel" hin zur RS232 Platine mit MAX232 sollte doch die Masse führen? Der ATMega hat auch die Masse und Versorgung an der MAX232 Platine. Eigentlich müsste der Ausgleich dann ja da sein? Gruß und Dank Markus
Stefanus F. schrieb: > RS232 stammt aus einer Zeit, als IBM > moch glaubte, man braucht sich beim Bau von Computern nicht um die > Grundlagen der Wellenausbreitung zu scheren. RS232 stammt von 1960, und damit aus einer Zeit, in der Modemfunktionen über etliche Leitungen statt über ein Protokoll angesteuert wurden, weil es noch keine Mikroprozessoren gab, und in der neue Rechner aus einzelnen Germanium-Transistoren bestanden. Bei V.24 in voller Schönheit sind es dann noch ein paar Leitungen mehr als bei RS232. Diese durchweg differentiell auszuführen hätte die Leitungsanzahl verdoppelt und den Interfaceaufwand ebenso.
:
Bearbeitet durch User
m_golbs schrieb: > Der RS232 Anschluss vom Laptop über das "Modem Kabel" > hin zur RS232 Platine mit MAX232 sollte doch die Masse führen? Ja, eine minimale serielle Verbindung benötigt TxD, RxD und GND. Für viele Zwecke genügt das auch. Georg
> des Kabels es unbedingt so will. RS232 stammt aus einer Zeit, als IBM > moch glaubte, man braucht sich beim Bau von Computern nicht um die > Grundlagen der Wellenausbreitung zu scheren. Diese Technik war meiner > Meinung nach ein grobes Fehldesign. Wenn du solche Dinge sagst dann hinterlaesst du keinen besonders fachlich gebildeten Eindruck um es mal hoeflich zu sagen. RS232 hat bis jetzt mindestens 50Jahre das gemacht was es machen sollte. Das ist eine Entwicklungsleistung die ich den meisten Schaltungen die ich in diesem Forum so sehe nicht entnehmen kann. Olaf
m_golbs schrieb: > RS232 hat für mich den Vorteil einfach in einem ATMega & Co. umzusetzen > zu sein Eben nicht. Du brauchst immer noch einen Spannungswandler a la MAX232. Am einfachsten ist es, den UART vom ATmega direkt mit dem UART vom PI/BBB zu verbinden, ganz ohne RS232 und ohne USB. Braucht höchstens 2 Widerstände. Einfacher, billiger und effizienter geht es nicht. m_golbs schrieb: > Ich überlege als Alternative zum RPi mit "GPIO zu Serieller UART Port > (MAX232)" einen alten noch vorliegenden dnp7520 (NS7520 ARM7TDMI) zu > verwenden, in C einen RS232 zu Socket Server zu programmieren Ist dann also exakt das gleiche wie mit dem PI/BBB?
Oder du portierst die ganze Anwendung auf einen STM32F4 welcher integriertes Ethernet hat, oder einen ESP32 mit integriertem WLAN. Dann braucht es überhaupt keine serielle Schnittstelle/RS232 mehr.
Dr. Sommer schrieb: > Oder du portierst die ganze Anwendung auf ... Ethernet Das ist jetzt nicht wirklich einfacher, als alle vorher diskutierten Varianten von UART.
Stefanus F. schrieb: > Das ist jetzt nicht wirklich einfacher, als alle vorher diskutierten > Varianten von UART. Nö, aber "direkter", die Daten nehmen dann weniger Umwege. Die Frage ist halt, wenn man schon einen ARM7TDMI oder so hat, wozu dann noch der ATmega?
Hallo, Dr. Sommer schrieb: > wenn man schon einen ARM7TDMI oder so hat, wozu dann noch der > ATmega? Ich bin nur ein Hilfselektroniker und Hilfsinformatiker, alle paar Monate oder im Schadensfall. Ich versuche für meine Aufgaben mir Standards zu definieren die den Zweck minimal erfüllen, lange verfügbar sind, nicht immer alles neu erfinden, erlesen und erleiden zu müssen. Warum 8bit Atmels's? Es werden wohl einige Aufgaben in nächster Zeit umzusetzen sein, und ich habe nur einen ARM7TDMI auf Hutschiene, RS232 nach außen geführt, frisst wohl nicht so viel Strom und kann per Ethernet an RPi, BB & Co. Daten liefern, dort z.B. loggen. RS232 to Socket Code kann dann wohl auch portiert werden. Außerdem kommt man beim Hutschiene ARM7TDMI nicht direkt an alle Anschlüsse ran. Beim Grillen, verfusen & Co. sind die Atmels einfach kostengünstiger :-) Warum Microchip, ehemals Atmel? Weil es da ein tolles Forum mit Anleitungen vor Jahren schon gab und noch gibt. Bin nun mit den ATMegas und ATTinys halbwegs auf Kurs, das mit vertretbarem Aufwand. An sich reichen mir für die kleinen MSR Aufgaben die verfügbaren 8bit Risk Atmels. Bei größeren Aufgaben nutze ich lieber Systeme auf Basis Debian Linux, aktuell primär ARM oder PPC. Amtels mit CAN, USB oder Ethernet sind nicht mal schnell zu programmieren und der Code ist für Laien schwerer verständlich. Habe vor Jahren mit Ethersex per ATMega einiges probiert, AT90CAN128 für Joystick zu CAN Anbindung mich versucht. Nur das dauert alles recht lange... Dr. Sommer schrieb: > Am einfachsten ist es, den UART vom ATmega direkt mit dem UART vom > PI/BBB zu verbinden, ganz ohne RS232 und ohne USB. Braucht höchstens 2 > Widerstände. Einfacher, billiger und effizienter geht es nicht. Wieviele Meter sind mit der Schaltung und 9600 bits möglich? Gruß und Dank Markus
m_golbs schrieb: > Wieviele Meter sind mit der Schaltung und 9600 bits möglich? Falsche Frage. Wieviele Meter brauchst du denn? Mit einer 5V-Leitung und Serienwiderständen als 3,3V-Pegelwandler kommst du nicht besonders weit. Wenn du den AVR mit 3,3V betreibst, kannst du die Widerstände weglassen und hast dann etwas mehr Freude an den Signalen. Beides ist nur für kurze Strecken geeignet. Für gestörte Umgebungen bzw. größere Abstände gibt es (a) höhere Spannungen ("echtes" RS-232) (b) LVDS, RS485 (c) andere Systeme
Ein MAX232 mit Platine und Cs kostet beim Chinaman irgendwie 1€ oder so. In der Praxis klappte es trotzdem relativ zuverlässig, eine PC-Schnittstelle (oder die typischen USB-RS232-Wandler) direkt mit je einem Inverter anzusteuern. Ja, der Sender muss >5V bzw. <-5V bereitstellen, ja, die Umschaltschwelle kann irgendwo zwischen -3V...3V liegen, ... aber sie kann auch bei etwa 1V liegen. Und das tut sie in praktisch jeder(!) verfügbaren HW! Wenn Du den Pegel also invertierst (0V->5V, 5V->0V), dann kannst Du es auch direkt an den PC anschließen, mit je 1k..10k in Serie. Der begrenzt beim Eingang den Strom durch die ClimbDioden (die bei Logik-Invertern mit drin sind, bei Komparatoren bitte prüfen), beim Ausgang den Kurzschlussstrom. Als eingangsschaltung (PC->Deiner Schaltung) geht auch ein Transistor mit Basiswiderstand 4k7 als Eingang und Collektor-Widerstand 4k7 als Inverter zu Deiner Schaltung und Diode von Basis zu Kollektor um die Sättigung zu vermeiden. Macht zwar alles von Preis und Platz her keinen Sinn (siehe oben, Chinaman), funktioniert aber zuverlässig, wenn man weiss, was man tut (also die Dimensionierung so halbweg den Gegebenheiten anpasst).
A. S. schrieb: > In der Praxis klappte es trotzdem relativ zuverlässig, eine > PC-Schnittstelle (oder die typischen USB-RS232-Wandler) direkt > mit je einem Inverter anzusteuern. Es geht hier um die Verbindung eines Linux-SBCs (mit 3,3V-UART) und eines AVR (mit 3,3V- oder 5V-UART). Irgendwelche Tricks, um eine PC-Schnittstelle möglichst beschissen anzusteuern, sind da nicht nötig. Drei Drähte (plus ein Widerstand für unterschiedliche Spannung) reichen. Die notwendige Datenrate ist gering, die gewünschte Entfernung (sowie Umgebung) nicht bekannt. Im Übrigen liefert ein MAX232 oder MAX3232 definitiv keine ±12V, sondern eher so ±8V. Das hätte man bei richtigen Treiberbausteinen erst nach einigen zig Metern auf dem Kabel.
m_golbs schrieb: > Wieviele Meter sind mit der Schaltung und 9600 bits möglich? Mit RS232-Treibern und Abschlußwiderständen an der Leitung kann man auf 1 km bei 9600 Baud kommen. Mit 115k2 Baud noch auf 100 m. S. R. schrieb: > Im Übrigen liefert ein MAX232 oder MAX3232 definitiv keine ±12V, sondern > eher so ±8V. Das hätte man bei richtigen Treiberbausteinen erst nach > einigen zig Metern auf dem Kabel. MAX3232 liefern ca. +/- 6 V @ VCC = 3 V. Den 2. Teil Deiner Aussage mit "richtigen Treibern" verstehe ich nicht. Sind MAXe falsche Treiber?
m.n. schrieb: > Sind MAXe falsche Treiber? Er meint vermutlich Treiber, die eine +/-12V Versorgung aus einem Netzteil beziehen. Sie liefern aufgrund der höheren und stabileren Spannungen ein besseres Signal/Rausch Abstand. Ich habe die MAX3232 als brauchbare Kompromisslösung für die meisten Fälle kennen gelernt.
Irgendwie wiederholt sich alles. Also im Westen nichts Neues! In sehr vielen Bereichen wird nichts Neues erfunden, sondern Standards einfach ausgenutzt. Auf die uralte LP ging plötzlich mehr drauf, nachdem man dynamische Spur-/Rillenbreiten geschrieben hat. Auf die ursprüngliche CD ging irgendwann mal mehr drauf, nachdem man, im Rahmen der erlaubten Toleranzen, einfach mehr Spuren draufpackte. Der vorgeschriebene Mindestabstand machte es. RS232 hatte tatsächlich mal +/- 12V nötig. Die Definition selber sprach aber von einem toten Bereich von 3V. Also war plötzlich high, 3,irgendwas Volt und konnte somit auch von einem 3,3V Prozessor geliefert werden. Natürlich konnte man mit 12V weiter rufen, aber wer das nicht braucht...
m_golbs schrieb: > Es werden wohl einige Aufgaben in nächster Zeit > umzusetzen sein, und ich habe nur einen ARM7TDMI auf Hutschiene, RS232 > nach außen geführt, frisst wohl nicht so viel Strom und kann per > Ethernet an RPi, BB & Co. Daten liefern, dort z.B. loggen. So richtig blicke ich durch deine Argumentation jetzt nicht durch, aber wie wäre es mit so etwas: https://os.mbed.com/components/mbed-Rail-24-V/ Hutschiene-Kompatibel, hat Ethernet und diverse I/Os, und auch RS232, wobei man das dann gar nicht mehr braucht. Ist dann auch ein aktuellerer Controller (Cortex-M3) als der olle ARM7TDMI. Dank mbed Unterstützung sollte es recht einfach zu programmieren sein, und der Code dann einigermaßen gut übertragbar auf andere Systeme. Darauf könntest du deine Steuerungsaufgabe komplett umsetzen und die Daten dann direkt per Ethernet verschicken, ganz ohne RS232. Ethernet kann ja auch ziemlich lange Leitungen (mit Switch/Router unbegrenzt). m_golbs schrieb: > Beim Grillen, > verfusen & Co. sind die Atmels einfach kostengünstiger :-) Dank 24V-I/Os wäre o.g. Modul vermutlich Grill-Resistenter. Verfusen kann man diesen Controller gar nicht (hat keine Fuses!). Im Zweifelsfall ersetzt man das Controller-Modul. Sind bei so einer Industrie-Anwendung (Hutschiene?) die Kosten wirklich so wichtig? m_golbs schrieb: > Weil es da ein tolles Forum mit Anleitungen > vor Jahren schon gab und noch gibt. mbed und ARM hat auch eine gute Community. Ich will dir nichts vorschreiben, aber immer wenn ich von so Adapter-auf-Adapter-auf-Adapter-Lösungen lese gruselt es mich :) ATmega UART - MAX232 - RS232-Leitung - MAX232 - ggf. USB-UART-Adapter - SBC/PI/dnp7520 - Ethernet - PC vs. mbed Rail Modul - Ethernet - PC gleich viel schöner :)
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.