Forum: Mikrocontroller und Digitale Elektronik UART via optokoppler?


von Zoltan (Gast)


Lesenswert?

Hallo,

weiss jemand ob sich auch Optokopller zur "Pegelwandlung" zwischen PC 
und AVR eignen? Gibt es vielleicht schon Projekte über dieses Thema?

Gruss
Zoltan

von thkaiser (Gast)


Lesenswert?

Ich habe mal so etwas gemacht, um eine galvanische Trennung zu 
erreichen. Allerdings habe ich den MAX232 komplett isoliert und auf der 
TTL-Seite mit Optokopplern gearbeitet. Wichtig: Die Optokoppler dürfen 
nicht zu langsam sein, sonst muß man mit der Baudrate runter.
Auf der RS-232 Seite sehe ich momentan nur das Problem der negativen 
Spannungspegel - ist aber mit entsprechenden Maßnahmen sicher möglich. 
Wenns nicht unbedingt galvanisch getrennt sein muß, würde ich allerdings 
direkt mit einer Transistorschaltung arbeiten.

von crazy horse (Gast)


Lesenswert?

prinipiell gehts es mit Optokopplern, auch auf der RS232-Seite, aber...
1. wie schon gesagt, Baudrate, die meisten OKs sind schnell am Ende.
2. sind OK stromgesteuerte Bauteile, d.h. du brauchst beim Empfang je 
nach OK-Typ zwischen 1 und 20mA
3. muß man den Sender erst wieder kurzschlussfest machen
4.brauchst du extra eine negative Betriebsspannung.

Insgesamt bietet die Lösung kaum Vorteile gegenüber einem MAX232 o.ä., 
man kann allerdings auch einfache Transistorschaltungen oder einen 
Doppel-OP a la TL072 benutzen.

von Michael (Gast)


Lesenswert?

Ein Tipp für Optokoppler, die m.E. einen guten Kompromiß zwischen 
Leistungsaufnahme und Geschwindigkeit darstellen: PC900.

von Sven (Gast)


Lesenswert?

@crazy horse

Kann man sich die Betriebsspannungen (+ und -) für die RS232-Seite nicht 
aus den Steuerleitungen des PC holen?

Sven

von Zoltan (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die vielen Tipps.

Ich möchte umbedignt eine galvanische Trennung, weil es auf meiner 
MC-Board Sensoren gibt, welche durch den UART gestört werden. Das ist 
nur ein Rauschen in mV bereich, es ist also nicht die Welt...

Wegen der Geschwindigkeit des OK dachte ich an einer 6N136 (1.28Euro).
http://www.sharp.co.jp/products/device/ctlg/jsite22_10/table/pdf/cpl/opic_out/6n136_j.pdf
Deswegen dieser Typ (und nicht PC900) weil es den beim mir "um die Ecke" 
gibt.

Probleme sind die Spannungsversorung an der RS232 Seite, und ich weiss 
nicht, ob der TxD/RxD vom PC bzw vom MC  genug Leistung für den LED im 
Optokoppler haben. Falls nicht, dann müsste man die Schaltung noch (wie 
im Datenblatt) um zwei Transistoren erweitern.
Aber wie gesagt, woher bekomme ich die +12V? Vielleicht vom 
Parallelport??

@crazy horse
warum brauche ich einen negative Betriebsspannung?

von BernhardT (Gast)


Lesenswert?

Hallo Zoltan,
ich habe  früher schon gelegentlich mal via OK Daten in den PC-gelesen. 
Die +12 V holt man sich  aus einer Handshakeleitung - 12 V braucht man 
eigentlich nicht unbedingt. Ob das klappt liegt eigentlich meist nur am 
PC (gerade ältere Laptops bringen es da meist nicht).
Diese Schaltung ist etwas zu aufwendig, zeigt aber grundsätzlich wie es 
geht:
http://fremo-block.sourceforge.net/BlockInterface/pegelwandler_rs232.html
Gruß Bernhard

von crazy horse (Gast)


Lesenswert?

es gibt mehrere Wege, ohne eigene Versorgungs auszukommen, aber das 
Problem: an manchen PCs wird es funktionieren, an anderen nicht.
Die negative Spannung brauchst du, um das Signal normgerecht zu 
generieren, (space: -3..15V, mark +3..15V). Einige Empfänger-ICs im PC 
akzeptieren auch TTL-Pegel (also 0V/5V), ausgehen kann man davon nicht.
Das nächste Problem beim Senden mit aus dem PC gewonnenen +/-12V: du 
kannst mit einem Optokoppler nur einen OC-Ausgang mit Widerstand nach 
+12V aufbauen, keine push-pull-Ausgangsstufe. Und das heißt Querstrom , 
der die ohnehin schlappen Spannungen belastet. Den Widerstand kann man 
auch nur in Grenzen erhöhen, da der Strom durch den Widerstand die 
Leitung und den Eingang des Empfängers umladen muß, je höher der 
Widerstand, desto geringer die Übertragungsrate. Alles in allem ist es 
einfach Pfusch (der aber funktionieren kann)
Alternative: DC/DC-Wandler, der dir benötigte Versorgung isoliert 
bereitstellt, dann kann man auch die Pegelwandlung und Signaltrennung 
direkt mit Optokopplern machen, vorausgesetzt, der Empfänger ist 
genügsam mit dem Strom. Sehr gute Erfahrungen habe ich diesbezüglich mit 
dem H11L1 gemacht.

von Zoltan (Gast)


Lesenswert?

Ehrlichgesagt war mir die Funktion der Datenübertragung nicht ganz 
bekannt. Ich habe mir, naiver weise vorgestellt, es handelte sich hier 
nur um 0..12V/5V Pegel. Da das genze jetzt ertwas  umfangreicher wird, 
als ich dachte lege, ich den Projekt vorerst mal "auf Eis", bis ich mehr 
Zeit habe.

Danke für die Ausführlche Antworten.

von Zoltan (Gast)


Angehängte Dateien:

Lesenswert?

Mir ist eine (möglche) Lösung eingefallen: Ich behalte den MAX232 zur 
Pegelkonvertierung bei, und trenne nur die 0..5V an den MC durch 
Optokoppler. Siehe Anhang. Dabei besteht nazürlich das Problem mit der 
Versorgungspannung der MAX232 immer noch.

@BernhardT
>Die +12 V holt man sich aus einer Handshakeleitung
Kannst Du mir das bitte genauer erklären?

von Marco Vogt (Gast)


Lesenswert?

Ein MAX232 in Verbindung mit OKs ist bestimmt eine relativ einfach zu 
realisierende Sache. Der MAX232 erzeugt sich seine +-12V übrigens selber 
über die eingebauten Ladungspumpen! Er braucht dazu nur vier kleine 
Elkos :)

von Zoltan (Gast)


Lesenswert?

@Marko
1.)Siehe Anhang.
2.)Mein Problem ist, dass der MAX232 auch einen Versorgungsspannung von 
5V (MAX231 12V) braucht. Ich weiss aber nicht, woher ich diese nehmen 
soll.

von BernhardT (Gast)


Lesenswert?

Hallo Zoltan,
Ich hab dir doch den Link geschickt für das Grundprinzip:
http://fremo-block.sourceforge.net/BlockInterface/pegelwandler_rs232.html
Der Stefan Bormann Zapft sogar TX an. Seine Schaltung hat sogar echte 
+/- Pegel, allerdings verwendet er keine Vorwiederstände (laut Norm 
Eingangswiederstand mindesten 3Kohm).  Soweit bin ich nie gegangen, ich 
hab immer nur einen Pin angezapft - selbst mit Vorwiederstand und Diode 
hat das meist gelangt. Normgerecht ist das nicht, das weis ich auch. Es 
ist ne Bastlerlösung, nicht für kommerzielle Zwecke. Ich befürchte aber, 
das deine Lösung nicht mal Norm-ungerecht arbeitet da der MAX232 ja 
selber auch Saft verbraucht - ich glaub bis 10mA. Wenn du dir ohnehin 
schon so einen Aufwand machst, kannst du der Schaltung wirklich auch 
gleich einen 5V DC/DC spendieren, oder bei www.wut.de gibt's Fertige OK 
Module (und ne Menge guter Info's ).

P.S. Bei WUT kann man sich auch das wirklich gute Handbuch 
"TCP/IP-Ethernet und Web-IO" kostenlos runterladen oder schicken lasen.
Gruß Bernhard

von Zoltan (Gast)


Lesenswert?

>...kannst du der Schaltung wirklich auch gleich einen 5V DC/DC spendieren.

Ja, aber woher nehme ich die Spannung für den DC/DC (Siehe Schaltung im 
Anhang)? Das ist ja mein Problem.

von BernhardT (Gast)


Lesenswert?

Vom uC natürlich - du must nur drauf achten, das das ein DC/DC -Wandler 
mit galvanischer Trennung ist.

Gruß Bernhard

von BernhardT (Gast)


Lesenswert?

Hallo Zoltan,
ich vergaß zu erwähnen, das du dann  für die Bauteilen ne Menge hinlegen 
musst (auch wenn du den 7805L weg läst). Selbst ne Lösung mit einem FTDI 
FT232BM  USB to RS232 IC ist wahrscheinlich billiger, weil die 
Stromversorgung über den USB-Port erfolgen könnte.
Aber mit denen habe ich noch keine Erfahrung.
Vielleicht ist es noch besser du baust deinen Adapter direkt in deinen 
Rechner ein und holst dir den Saft von dem (ohne den teuren 
DC/DC-Wandler). Denn wenn es dein Rechner bei den RS232 Pegeln sehr 
genau nimmt, wirst du auch bei manchen anderen Geräten Schwierigkeiten 
bekommen. Pfusch ist halt leider auch bei bekannteren Firmen dann 
beliebt, wenn es Geld spart.
Gruß Bernhard

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.