Forum: Mikrocontroller und Digitale Elektronik TTL auf RS232 und wieder zurück auf TTL


von Dominic S. (dominic_s)


Lesenswert?

Hallo liebes Forum,

Ich versuche, UART über einige Meter zu realisieren. TTL ist auf Sende- 
und Empfangsseite vorgesehen. Empfangsseite ist ein Raspberry Pi (RPi).

Relevant ist für mich aktuell nur die Empfangsrichtung, TX muss nicht 
zwingend übertragen werden.
Hierfür habe ich von einem RPi den Serial Port (TTL/3,3V) verwendet, 
aber auch diverse USB/UART und USB/RS232 Wandler von FTDI oder Prolific.

Es funktioniert natürlich, den RFID Reader ohne die Wandlung zu 
betreiben.
Aus TTL wird TTL, lediglich ein Spannungsteiler (5V/3V3) wäre sinnvoll.
Kommen jedoch zwei Max232 (oder UT232 etc..) zum Einsatz erhalte ich 
keine Daten mehr.

Das Schema wäre:
RFID -> TTL (5V) -> TTL(3,3V) -> Raspberry Pi
Mit RS232:
RFID -> TTL (5V)/RS232 -> Kabel 7-30 Meter -> RS232/TTL (3,3V) -> 
Raspberry Pi

Da aktuell die Kabellänge nicht klar ist, wäre es sicherer RS232 zu 
nutzen.
Als Kabel werden ISTY Leitungen zum Einsatz kommen, da auch die 
Spannungsversorgung des Readers darüber läuft, habe ich bereits 
Berechnungen zum Spannungsabfall angestrebt und auch einen Test 
erfolgreich durchgeführt.

Ich habe bereits die pre-assembled MAX232 Module benutzt, wie auch hier 
im Forum schon diskutiert, eine Datenübertragung findet damit nicht 
statt.
Beitrag "RS232 - TTL Wandlerproblem"

Auch habe ich versucht, auf dem Breadboard die Schaltung aufzubauen.
Hier könnte es natürlich dazu kommen, dass die Kondensatoren locker 
sitzen.
Nachgemessen habe ich auch, ich erhalte valide Ergebnisse.

Welche Probleme können eventuell auftreten bei der oben geschilderten 
Vorgehensweise?
Gibt es Alternativen zu RS232?

Eine Überlegung wäre es, einen kleinen Microcontroller beim Reader zu 
platzieren, dieser kann erste Wandlungen der RFID-Kennung vornehmen, 
zumal er ggf auch andere Signale aufbereiten kann oder Aktoren ohne 
Verwendung weiterer Adern ansteuern kann. (RS485 kommt mir in den Sinn)

Vielen Dank für eure Hilfe

Dominic

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dominic S. schrieb:
> Da aktuell die Kabellänge nicht klar ist, wäre es sicherer RS232 zu
> nutzen.

Du könntest, sofern Du genügend Adern hast, auch RS422 nutzen. Das ist 
dank der differentiellen Übertragung weniger störanfällig als RS232, nur 
braucht es halt pro zu übertragender Signalleitung zwei Adern.

von Georg (Gast)


Lesenswert?

Dominic S. schrieb:
> Kommen jedoch zwei Max232 (oder UT232 etc..) zum Einsatz erhalte ich
> keine Daten mehr

MAX232 und die hunderte ähnliche ICs sind reine Pegelwandler, dass die 
Hin- und Herwandlung durch ein Paar davon nicht funktioniert ist 
technisch ausgeschlossen. Es wurde also ein anderer Fehler eingebaut, 
z.B. die MAX232 falsch verdrahtet. Mit einem Oszilloskop käme man viel 
schneller auf das Problem als durch Ferndiagnose über das Internet.

Georg

von Tom (Gast)


Lesenswert?

Für einen 3,3 Volt TTL Pegel gibt es von MAXIM die MAX3232 IC´s. Damit 
habe ich selbst schon 12 Meter per RS232 mit 9600 Baudrate hinbekommen. 
Die 12m waren aber absolut kein Problem. Die 12m waren aber auch 
verdrilltes abgeschirmtes Kabel.
Wenn das nicht hilft und die Leitung wirklich sehr lange wird, dann gibt 
es die Möglichkeit per Komparator LM393 o.ä. selber auf höhere 
Spannungspegel zu gehen und am anderen Ende wieder per Komparator zurück 
auf TTL.
So habe ich mal eine 110m Leitung ebenfalls mit einer Baudrate von 9600 
Baud realisiert. Die 110m Leitung war aber ebenfalls kein billiges 
Kabel.
Gruß Tom

von Wolfgang (Gast)


Lesenswert?

Georg schrieb:
> MAX232 und die hunderte ähnliche ICs sind reine Pegelwandler ...

Denkst du. Invertieren tun sie das Signal auch noch.

von HildeK (Gast)


Lesenswert?

Wolfgang schrieb:
> Denkst du. Invertieren tun sie das Signal auch noch.

Ja, aber das ist normgerecht. Und da eh zwei notwendig sind, hebt sich 
das wieder auf.

von Max M. (jens2001)


Lesenswert?

Wolfgang schrieb:
> Invertieren tun sie das Signal auch noch.

Ist invertieren etwa keine Pegelwandlung???

Was Georg meinte ist, dass die MAX nichts am Protokoll/Timing ändern.
Und Alle ausser dir haben das auch verstanden!

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Dominic S. schrieb:
> Aus TTL wird TTL, lediglich ein Spannungsteiler (5V/3V3) wäre sinnvoll.
Nur wenn der Eingang nicht 5V-tolerant ist
> Kommen jedoch zwei Max232 (oder UT232 etc..) zum Einsatz erhalte ich
> keine Daten mehr.
Dann hast du irgend was falsch beschaltet.
Sonst sind RS232-treiber bei der lahmen Baudrate von 9600 sehr gutmütig.
Da kann man auch längere Leitungen mit mind. 50m mit betreiben.

> Da aktuell die Kabellänge nicht klar ist, wäre es sicherer RS232 zu
> nutzen.
Auch TTL kann man mit 9600Baud sicher noch problemlso über 50m bringen.
Man sollte nur einen ordentlichen Treiber dafür haben und evtl. am 
Leitungsende beim Empfänger einen Lastwiderstand setzen, so dass auch 
etwas Leistung übertragen wird. Das SNR (signal-noise-ratio) wird 
dadurch deutlich verbessert.

> Als Kabel werden ISTY Leitungen zum Einsatz kommen, da auch die
> Spannungsversorgung des Readers darüber läuft, habe ich bereits
> Berechnungen zum Spannungsabfall angestrebt und auch einen Test
> erfolgreich durchgeführt.
Soweit so gut.
Bei solchen Leitungslängen sollte man aber auch noch an 
Überspannungsschutz denken. Bei Blitzschlag in der Näher gibt es sonst 
regelmäßig kaputte Sender und Empänger. Das gilt auch für RS232 oder 
RS485, auch wenn diese schon einen gewissen Schutz integriert haben.

> Nachgemessen habe ich auch, ich erhalte valide Ergebnisse.
Wie nachgemessen? Zumindest die Pegel sollten sich statisch klar 
darstellen.

> Gibt es Alternativen zu RS232?
Sicher? Aber das wird immer nur komplizierter.

> RS485 kommt mir in den Sinn.
In starker Störumgebung bei industrieller Technik unverzichtbar.
Aber brauchst du das?
Gruß Öletronika

von Jobst M. (jobstens-de)


Lesenswert?

Dominic S. schrieb:
> TX muss nicht zwingend übertragen werden.

RX überträgt aber nichts ...


Gruß
Jobst

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

An Pin 2 des MAX232 sollte man etwa 10V messen (gegen Pin 15 = GND), an 
Pin 6 sollte man etwa -10V messen. Dann laufen schon mal die 
Ladungspumpen des MAX. Immer an die Belegung denken, der MAX232 erwartet 
die Betriebsspannung an Pin 16 und Masse an Pin 15.

von Achim S. (Gast)


Lesenswert?

Also, 485 ist natürlich besser. Und mit 3 Adern auch nicht viel 
aufwändiger.

RS232 ist ein guter gemeinsamer Nenner, wenn es unterschiedliche 
Hersteller gibt. Weiter Ein- und Ausgangsbereich.

Wenn Du beide Seiten gestaltest, tut es ausgangsseitig auch ein 
einfacher Treiber von 5 oder 10mA. Wenn Dein µC die nicht liefert, 
einfach ein HC-Gatter dazwischen. Ideal wäre etwa, was auch 50mA kann, 
dann reichen 100R Serienwiderstand (bzw. was halt Dein Kabel an 
Wellenwiderstand hat)

Wenn der Sender weniger Leistung verbraten soll:

Ausgang: 1K Serienwiderstand (und Climb-Dioden, falls nicht im Ausgang 
sowieso drin)

Eingang, je nach Leistung, Platz und Kosten:
- hochohmig (1k-Serie, >=10k nach Masse) direkt an ein HCT-Gatter oder 
Komparator oder an den µC
- Transistor mit 1k Basiswiderstand, 10k Kollektor, 
Basis-Kollektor-Diode gegen Sättigung, 1k gegen GND am Eingang
- Mit 100R gegen Masse, danach 1k Serienwiderstand und Schaltschwelle 
per Komparator

Jeweils + Schutzbeschaltung je nach Umgebung und Einbaumöglichkeiten 
(Verpolung, >>12V, Surge, ...)
Damit sind 1MBit über 12m problemlos möglich.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

MAX485 Module RS-485 TTL

eBay: 222520116895

MfG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Achim S. schrieb:
> Also, 485 ist natürlich besser. Und mit 3 Adern auch nicht viel
> aufwändiger.

Du meinst tatsächlich RS422. RS485 ist fast das gleiche, nur daß das mit 
Halbduplexbetrieb auf einem Leitungspaar sowohl empfängt als auch 
sendet, was aber a) eine zusätzliche Steuerleitung zur 
Sender-/Empfängerumschaltung benötigt und b) von der verwendeten 
Software unterstützt werden muss, die diese Steuerleitung korrekt 
ansteuern muss.

Das hat mit "transparenter UART-Verlängerung" nicht mehr viel zu tun.

RS422 definiert lediglich die symmetrische Signalübertragung mit je 
einem Leitungspaar pro Signal. Das ist es, was Du hier nutzen wollen 
könntest.


Vielleicht gelingt es aber auch dem Threadstarter noch, seine 
Verschaltung genau zu beschreiben, denn da wird nur ein ganz banaler 
Fehler vorliegen.

von guest (Gast)


Lesenswert?

Dominic S. schrieb:
> RFID -> TTL (5V)/RS232 -> Kabel 7-30 Meter -> RS232/TTL (3,3V) ->
> Raspberry Pi

> Dominic S. schrieb:
> Aus TTL wird TTL, lediglich ein Spannungsteiler (5V/3V3) wäre sinnvoll.

Dir ist aber auch klar, dass ein MAX232 trotzdem 5V Versorgungsspannung 
braucht?
Wenn nur 3V3 vorhanden sind, dann besser den MAX3232 nehmen.

von Rs232 usb und wieder zurück (Gast)


Lesenswert?

Optokoppler, Transistor, Z Diode , Widerstand und daraus ne einfache 
Current Loop 20 mA Schnittstelle.
Damit haben wir in den Neunzigern UNIX Terminals mit 38400 Baud über 2 
KM Klingeldraht störsicher betrieben.

Fertig

Beitrag #5083206 wurde von einem Moderator gelöscht.
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.