Hallo liebes Forum,
ich habe hier Probleme eine LVDS-Schaltung in Betrieb zu bekommen. Habe
wahrscheinlich einen stupiden Anfängerfehler eingebaut.
Ich möchte um 2 Systeme mit einander zu synchronisieren (100Hz-Signal),
ein CPLD-Takt, als TTL-Signal an ein anderes System anschliessen. Um
jetzt auch größere Übertragungsstrecken störungsfrei zu übertragen, habe
ich an LVDS gedacht.
Das ganz habe ich aufgebaut, wie in der .SCH im Anhang zu sehen.
Der Ausgang des CPLDs bekommt noch einmal einen Leitungstreiber
spendiert und geht dann zur galv. Trennung und zur Invertierung
(benötige das CPLD-Signal invertiert am Empfänger) auf einen
Optokoppler. Der Leitungstreiber und der Eingang des Optokopplers hängen
noch am selben GND des Sendesystems. Der Ausgang des Optokopplers hängt
dann an einem galv. getrennten DC-DC-Wandler (5V-5V) Die 5V-VCC des
DCDC-Wandlers kommen von der Platine des Sendesystems. Wie man sieht
hängt dann sowohl der Ausgang des Optokopplers als auch der LVDS-Treiber
an der galv. getrennten Masse des DCDC-Wandlers.
Bis hierhin funzt das auch alles wunderbar, der LVDS-Sender spuckt die
korrekten Signale aus.
Nun gibt es eine Empfängerplatine mit dem LVDS-Receiver drauf. Dieser
wird nun mit 5V und GND aus dem Empfängersystem versorgt.
Soweit so gut.
Verbinde ich jetzt allerdings +O1 und -O1 des LVDS-Treibers mit +I1 und
-I1 des Empfängers bekomme ich nicht das gewünschte 5V-TTL-Signal
(100Hz) raus, der LVDS-Empfänger hängt am Ausgang auf konstant 5V?!
Die ganze Schaltung funktioniert erst, wenn ich den Empfänger-LVDS mit
dem selben VCC und dem selben GND des LVDS-Senders verbinde (+5V_out1,
GND_out1). Also komplett von dem Empfängersystem trenne. Dann spuckt
auch der LVDS-Empfänger das korrekt zusammengesetzte LVDS-Signal wieder
aus (5V, 100Hz). Woran liegt das?
Muss ich jetzt VCC und GND aus meinem Sendersystem mit an den Empfänger
führen? Das sollte ja nicht Sinn der Sache sein?!
Über Antworten würde ich mich freuen!
MfG
C3
Hmmm, ziemlich grosser Zauber für 100 Hz.
Oder meinst du 100 MHz ?
Für 100 Hz sollte Trennung über simple Optokoppler ausreichen.
Nimm mal GOOGLE und Suche: stromschleife optokoppler
stromschleife optokoppler Schaltbild
mit Einstellung "Bildersuche"
Ggf. kann man über einen schnellen Optokoppler nachdenken, wie HCPL-2601
o.ä.
Gruss
Die 100Hz sind nur der Defaultwert, es können bis zu 10kHz
werden...Immer noch kleine Frequenzen, ich weiss :)
Mich würde aber eher interessieren wieso meine Schaltung nicht
funktionert, abgesehn davon ob Sie überdimensioniert ist...
@ C3P0 (Gast)
>Ich möchte um 2 Systeme mit einander zu synchronisieren (100Hz-Signal),>ein CPLD-Takt, als TTL-Signal an ein anderes System anschliessen. Um>jetzt auch größere Übertragungsstrecken störungsfrei zu übertragen, habe>ich an LVDS gedacht.
Was ist bei dir größer? 1m? 100m?
LVDS ist bestenfalls was für einige Meter, der
Gleichtaktaussteuerbereich (was für ein Wort) ist bestenfalls 1V. RS485
hat +12/-7V. Für 100 Hz, selbst wenn sie auf 10ns genau sein sollen,
reicht da RS485.
>Der Ausgang des CPLDs bekommt noch einmal einen Leitungstreiber>spendiert
Nobel geht die Welt zu grunde. Klingt alles sehr akademisch.
>hängt dann sowohl der Ausgang des Optokopplers als auch der LVDS-Treiber>an der galv. getrennten Masse des DCDC-Wandlers.
Ja.
>Nun gibt es eine Empfängerplatine mit dem LVDS-Receiver drauf. Dieser>wird nun mit 5V und GND aus dem Empfängersystem versorgt.>Verbinde ich jetzt allerdings +O1 und -O1 des LVDS-Treibers mit +I1 und>-I1 des Empfängers bekomme ich nicht das gewünschte 5V-TTL-Signal>(100Hz) raus, der LVDS-Empfänger hängt am Ausgang auf konstant 5V?!
Und was ist mit der galvanisch getrennten Masse? Die musst du mitführen!
Einer der großen Irtümer, dass differentielle Übertragung ohne Masse
auskäme. Dem ist nicht so!
>Die ganze Schaltung funktioniert erst, wenn ich den Empfänger-LVDS mit>dem selben VCC und dem selben GND des LVDS-Senders verbinde (+5V_out1,>GND_out1).
GND_out1 reicht.
MfG
Falk
Danke Falk, werde ich gleich morgen ausprobieren...
Der HCT-Treiber ist eigenlich nur dazu gedacht, den CPLD nicht unnötig
zu belasten und ihn vom Optokopller zu "entkoppeln"...kann ich mir den
HCT125 komplett sparen?
Kannst du mir noch einmal erklären, warum ich GND_out1 benötige, gerne
auch akademisch :)
Falk Brunner schrieb:> Was ist bei dir größer? 1m? 100m?
10-20m wollte ich damit überbrücken...LVDS nicht geeignet?
C3P0 schrieb:> Kannst du mir noch einmal erklären, warum ich GND_out1 benötige, gerne> auch akademisch :)
So ein LVDS-Empfänger hat nur einen begrenzten Gleichtakt-Bereich, in
dem seine Eingänge funktionieren. Deshalb.
W.S.
@ C3P0 (Gast)
>Der HCT-Treiber ist eigenlich nur dazu gedacht, den CPLD nicht unnötig>zu belasten
Ach der Arme ;-) Die 6mA liefert der locker.
>und ihn vom Optokopller zu "entkoppeln"...kann ich mir den>HCT125 komplett sparen?
Ja.
>Kannst du mir noch einmal erklären, warum ich GND_out1 benötige, gerne>auch akademisch :)
Weil LVDS nicht potentialfrei ist, "nur" differentiell. Da braucht man
die Masse, damit der Gleichtaktbereich der Spannung definiert ist. Die
Empfänger sind zwar differentiell, haben aber wie bereits gesagt nur
einen eher kleinen Gleichtaktbereich. Sprich, die Spannung an den
Eingängen muss 1,25V +/-1V betragen, dann kann die Differenz sauber
erkannt werden. Wenn dort wegen Masseverschiebung plötzlich 5V Offset
drauf sind, fahren die Empfänger in die Ecke. Ebenso wenn keine
Masseverbindung besteht, dann ist die Gleichtaktspannung nur sehr
schwach über irgendwelche Leckströme und undefinierten Innenwiderstände
festgelegt. Nicht gut. Auch nicht bei RS485.
>10-20m wollte ich damit überbrücken...LVDS nicht geeignet?
HDMI & Co nehmen es auch über mehrere Meter, dann aber mit guten
Erdungsverhältnissen. Wozu LVDS? Für 100 Hz tut es RS485 deutlich
besser, weil robuster. Wozu die galvanische Trennung?
Falk Brunner schrieb:> HDMI & Co nehmen es auch über mehrere Meter, dann aber mit guten> Erdungsverhältnissen. Wozu LVDS? Für 100 Hz tut es RS485 deutlich> besser, weil robuster. Wozu die galvanische Trennung?
Nunja, das war wohl eben genau mein Denkfehler. Ich dachte an LVDS, weil
hier eben nicht (Irrtum) massebezogen Übertragen wird, sondern
"potentialfrei". Ich dachte, dann muss ich mich um gute
Masseverhältnisse nicht kümmern :)
Zur galvanischen Trennung: Sollte sich auf meinem Übertragungsweg eine
Störung einkoppeln, kann diese so nicht bis an meine Sender-Hardware
(z.B. bis zum CPLD) gelangen. Oder bin ich hier auch wieder aufm
Holzweg?
@ C3P0 (Gast)
>Zur galvanischen Trennung: Sollte sich auf meinem Übertragungsweg eine>Störung einkoppeln, kann diese so nicht bis an meine Sender-Hardware>(z.B. bis zum CPLD) gelangen.
Im Prinzip ja, aber die Sender sind meist nicht das Problem bei
Störeinkopplungen, eher die Empfänger. Und warum glaubst du, dass das
soooo massiv Störungen einkopplen? Wie sieht das Umfeld des
Übertragungswegs aus? Große Maschinenhalle mit bösen Verbrauchern?
Ausserdem haben da die Transceiver noch ein Wörtchen mitzusprechen. Und
gerade da ist differentielle Übertragung schon recht robust.
Falk Brunner schrieb:> Große Maschinenhalle mit bösen Verbrauchern?
Korrekt, Industriehallen. Es soll eine Kamera mit einer SPS-Anlage
synchronisiert werden.
@C3P0 (Gast)
>> Große Maschinenhalle mit bösen Verbrauchern?>Korrekt, Industriehallen. Es soll eine Kamera mit einer SPS-Anlage>synchronisiert werden.
Dafür nimmt man landein, landab RS485, in Fällen mit schweren
Störungen mit Galvanische Trennung. LVDS ist definitiv nicht
sinnvoll.
Um auf die eigentliche Frage mal wieder einzugehen...
Erstmal zum OK-Teil:
Bei 5V und 1,8V an der LED mit einem 680er Widerstand komme ich auf
(5-1,8)/680=4,7mA. Liegt knapp unter den erforderlichen 5mA und die
Toleranzen der Spannungsversorgung nicht mitgerechnet. Leg mal R2 für
6,3mA aus (-20% Degeneration und man ist wieder bei 5mA). Mit einem
470er bist du bei 6,8mA. Aber aktuell verrichtet er ja seinen Dienst...
Prinzipiell sollte dein Vorschlag zwar funktionieren, wenn beide
Reciever auf das gleiche GND-Potential abzielen. Schau dir mal das
"klassische" Schaltbild eines Differenzverstärkers (mit endlicher
Verstärkung, aber erstmal egal) mit OpAmps an. Dort sind je ein
Spannungsteiler gegen + und ein Spannungsteiler gegen - an die Eingänge
des OpAmps geführt. Diese haben also eine Beziehung zur Masse des
OpAmps. Ich nehme mal an dass im Ersatzschaltbild des LVDS-Empfängers
diese Rs zu schwach sind und dieser deshalb streikt.
Probier mal jeweils "oben" an den 100er einen 1M-R gegen V+ des
Empfängers und "unten" einen 1M-R gegen V- des Empfängers zu packen.
Soviel erstmal zur eigentlichen Frage und hier jetzt der Gegenvorschlag:
Du willst ein 100Hz quer durch eine Maschinenhalle mit viel böser EMV
schicken. Dafür sollte eine direkte OK-Verbindung reichen, da es
unwahrscheinlich ist, dass ein so hoher Strom induziert wird, dass bei
1,8V ein paar mA die LED zum leuchten bringen.
Hier die Schaltung, die ich mal schnell zusammengekritzelt habe.
Um die Ausgansseite ein wenig zu schützen kommt dort der erste OK und
ein DC/DC-Wandler zur Isolation hin. Dein CPLD bekommt einen
Ausgansstreiber und schaltet die LED des ersten OK.
Der erste OK schaltet an einen Treiber durch, der wiederum die LED an
OK2 mit wesentlich höherem Strom treibt. Wenn dann der Transistor von
OK2 mit dem Kollektor an 24V hängt und der Emitter auf den 24V-Eingang
der SPS geht, kannst du direkt einen SPS-Eingang schalten.
Im Fehlerfall passiert deinem CPLD-Ausgang nichts, Treiberseite von OK1,
eine Hälfte des DCDC und die LED-Seite des OK2 hängen draußen an der
langen Leitung. Der Eingang zur SPS ist über OK2 gesichert und die
Strombeschränkung ergibt sich aus der CTR des OK2. Für 100Hz sicher kein
Problem.
Über die Leitung gehen dann auf einer Ader die 5V. Auf der SPS-Seite
bleibt der OK UND der 47er Widerstand und erst hinter dem Widerstand
geht es wieder auf der zweiten Ader zurück.
Den Umweg über den 2ten OK und den DC/DC kannst du dir evtl. auch
sparen, wenn du den 24V-Eingang quer durch die Halle an OK1 ziehst. Wenn
es da Probleme gibt, dann halt doch den zweiten OK.
Hallo René,
Danke für deinen Vorschlag! Ich muss ihn erst einmal verstehen, dann
werde ich ihn testhalber einmal aufbauen.
Feedback in ein paar Tagen :)
Ok, bei Fragen einfach kurz posten. Ich kann dir nur mal kurz meine
Rechnung geben. Ich hab mal den 4N35 genommen. Der hat eine
Reaktionszeit von etwa 7us, was dann bei 100Hz und 10ms ja um mehr als
den Faktor 1000 überdimensioniert ist, sollte also fürs Timing gehen...
Nebenbei sei noch schnell gesagt, dass der 4N35 ein "Klassiker" ist, hat
also keinen eingebauten Komparator oder sonstige Digitaltechnik auf dem
Chip. Daher nimmt der es auch nicht so genau mit der Restwelligkeit oder
Problemen auf Vcc. Geht allerdings auf Kosten des Stromverbrauchs und
der CTR. Zum Vergleich: Der HCPL2631 braucht zwar mindestens ordentliche
4,5V, schaltet aber bei 5mA LED-Strom eine Last von 15mA zuverlässig
durch und dabei extrem schnell. Für deine Anwendung würde ich aber den
4N35 nehmen, denn da sind die o.g. Eigenschaften von Vorteil.
Die 4N35 IR-LED kann 60mA continuous ab, wäre also nicht so wild. Jetzt
zur Rechnung: 1,8V+0,7V=2,5V drop. 5-2,5=2,5V über R. Mit R=47 ergeben
sich ~50mA und 100mW Abwärme, bei R=100 sind es ~25mA und ~50mW Abwärme.
Laut DB darf die LED kontinuierlich 100mW aufnehmen.
Wenn es dich beruhigt, dann nimm ruhig 100 Ohm. Den meisten
SPS-Eingängen genügen 4-10mA. Da der 4N35 eine CTR von mindestens 100%
hat, kannst du mit dem 47er auch SPS-Eingängen mit 50mA Stromaufnahme
bedienen. Ich hab jetzt aber keine Spec von den 24V-Eingängen und was
die so aufnehmen, deshalb hab ich es einfach mal auf 47-100Ohm, sprich
50-25mA ausgelegt.
Meine VIPA 115 kommt damit (R=100) klar, sogar bei 12V :-)
Vielleicht wäre es auch sinnvoll auf zwei 47er zu verteilen. Einen als
Überstromschutz auf der Sendeseite beim Phototransistor von OK1 und
einmal um die Störempfindlichkeit herabzusetzen direkt vor der LED des
OK2. Wenn dann jemand die Kabelenden zusammenhält wird findet der
Spannungsabfall über den 47er statt und nicht komplett über den
Phototransistor von OK1.
Und wenn du den 74-125 nur als Treiber für die LED hast, dann kannst du
auch die LED von OK1 gegen 5V hängen und mit einem npn (z.B. BC547) über
einen Vorwiderstand (4,7k-10k) aus dem 3,3V-CPLD auf die Basis gehen.
Dann wird ein HI-Pegel des CPLD auch mit 24V an der SPS abgebildet
(CPLD-HI=>LED1 leuchtet T1 schaltet LED2 leuchtet T2 schaltet=>24V an
SPS)
Ein n-FET geht auch, aber der braucht auch nen Widerstand am Gate gegen
Masse für einen definierten Einschaltzustand.
René B. schrieb:> Laut DB darf die LED kontinuierlich 100mW aufnehmen.
Ja, steht unter "Absolute Maximum Ratings" und gilt für eine
Umgebungstemperatur <= 25°C.
Darüber brauchst Du ein Derating von 1,33mW/K.
Charakterisiert wurde der Optokoppler mit einem Vorwärtsstrom von 10mA.
Das reicht zum sicheren Betrieb auch völlig aus. Mehr Leistung führt nur
zu vorzeitiger Alterung des Optokopplers.
René B. schrieb:> Und schon eine Lösung aufgebaut und ausprobiert?
Ja bin jetzt doch zu einer RS485-Lösung übergegangen und diese
funktioniert bisher tadellos. Danke noch einmal für eure Hilfe!