Pegelwandlung von 7/12V auf 0/3,3V - Optokoppler oder Spannungsteiler?

OP #3956469
Hallo,

ich habe an einer 12V Spannung einen negativen 5V-Regler, der auf die 
Masse der 12V bezogen 7V als Masse und 12V als Plus hat.

An diesem Regler hängt ein uC, der seriell an einen anderen uC Daten 
übertragen soll. Doch der andere uC hat einen positiven Regler und somit 
die echte Masse der 12V Spannungsquelle und eine Betriebsspannung von 
3,3V (der 2. uC fehlt im Schaltbild).

Wie kann ich am einfachsten die beiden uC seriell verbinden, ohne dass 
es wegen der unterschiedlichen Potenziale anfängt zu brutzeln?

Ich habe es bereits per Optokoppler 4N28 versucht, aber es kommt nur 
Datenmüll an, ein Oszi ist leider nicht vorhanden. Ohne diese 
Spannungsunterschiede im Direkttest an derselben Versorgung 
angeschlossen, klappt die Übertragung zwischen beiden uC einwandfrei.

Woran liegt das, dass die Übertragung per Optokoppler nicht richtig 
funktioniert? Sind die Widerstände nicht passend (ich hatte auch schon 
100k zu 33k probiert)? Oder ist was anderes falsch? Die Übertragung soll 
mit 9600bps laufen, habe auch schon mal 2400 probiert, leider selbes 
Müll-Ergebnis.

Jemand eine Idee? Vielen Dank.
Angehängte Dateien:
Gast
Andreas F. schrieb:
> Woran liegt das, dass die Übertragung per Optokoppler nicht richtig
> funktioniert?
die Schaltung sieht absolut komisch aus.
Versuchs mal mit folgendem:
Sendeseitig: Vorwiderstand + LED des Optokopplers

Empfängerseitig:
Spannungsteiler aus Widerstand+ Transistor des Optokopplers. 
Anschließend das Signal invertieren
OP
Danke, ich verstehe aber leider nicht, was Du meinst. Genau das macht 
die Schaltung durch den Optokoppler und den Spannungsteiler doch 
eigentlich im Moment, bis auf die Invertierung.

Durch den negativen Regler ist es recht kompliziert zu verstehen, am 
besten man denkt sich den negativen Regler einfach von einer oberen 12V 
Linie um 5V nach unten versetzt und weitere 7V darunter die Masse. Dann 
wirds klarer.
Gast
Andreas F. schrieb:

> Woran liegt das, dass die Übertragung per Optokoppler nicht
> richtig funktioniert?

Der Optokoppler (genauer: die Empfangsseite des Optokopplers)
ist falsch angeschlossen.

Es ist i.d.R. sinnfrei, die Empfangsseite aus derselben
Versorgung zu speisen wie die Sendeseite - man nimmt ja
einen Optokoppler, um die Potenziale zu TRENNEN .

> Sind die Widerstände nicht passend (ich hatte auch schon
> 100k zu 33k probiert)?

R30 ist mMn sinnfrei --> weglassen.
R29 darf nicht zu +12V gehen, sondern muss an die 3.3V
angeschlossen werden.
Der Emitter kommt auf Masse (GND) - ja, auf die richtige,
echte Masse!
Die (invertierten) Empfangsdaten werden am Kollektor (gegen
Masse) abgenommen.
Hallo,
> Andreas F. schrieb:
> Ich habe es bereits per Optokoppler 4N28 versucht, aber es kommt nur
> Datenmüll an, ein Oszi ist leider nicht vorhanden.
der Spannungteilen R30/R29 sollte so passen, um von 12V auf ca. 3V-Pegel 
zu kommen. Allerdings sind R29 und R30 recht groß. Das wird für höhere 
Datenraten nicht funktionieren. Aber bei 2,4kBaud sollte es gehen.

Prüfe doch zumindest statisch, ob der Pegel korrekt kommt.
Also an PB0 = Low -> J2 = low und PB0=high -> J1 = high (ca.3V)

Kontrolliere auch, ob am Ausgang PB0 = High auch ein ordentlicher 
Highpegel anliegt (mind. über 4V).  Dann sollte über R24 ca. 5mA 
fließen.

Der Optokoppler hat ein garantiertes CTR von 10%.
Also kann auf der Senderseite nur ein Strom von ca. 0,5mA sicher 
getrieben werden.
Das bedeutet aber, das der Summenwiderstand R29+R30 mind. ca. 24kOhm 
sein sollte. Das ist dann womöglich auch das Problem.

Mache R24 kleiner, so dass bei PB0=high ca. 10mA über die Sende-LDE 
fließt.

Ich weiß jetzt aber nicht, ob der Attiny diesen Strom als  High-Pegel 
auch treiben kann (Datasheet). Manche uC haben Probleme mit höheren 
Stromen, besonders bei High. Dann schaltet man die Sende-LED beser mit 
Low-Pegel.
Gruß Öletronika

> Spannungsunterschiede im Direkttest an derselben Versorgung
> angeschlossen, klappt die Übertragung zwischen beiden uC einwandfrei.
>
> Woran liegt das, dass die Übertragung per Optokoppler nicht richtig
> funktioniert? Sind die Widerstände nicht passend (ich hatte auch schon
> 100k zu 33k probiert)? Oder ist was anderes falsch? Die Übertragung soll
> mit 9600bps laufen, habe auch schon mal 2400 probiert, leider selbes
> Müll-Ergebnis.
OP
Danke, aber ich will die Potenziale ja nicht trennen, sondern bloß den 
7V Offset loswerden und die Pegel anpassen.

R30 gehört zum Spannungsteiler, damit ich am Opto-Ausgang auf 3,3V 
runterkomme. Die 3,3V sind dort nämlich nicht vorhanden, die Daten gehen 
zuerst über 10m Kabel zum Empfangs-uC.

In dieser Schaltung sind die Daten aber gar nicht invertiert, oder seh 
ich das falsch?
OP
Danke, Öletronika. Die Pegel passen jeweils am Attiny und auch am 
Optokoppler, wenn ich einfach low und high anlege. Dann ist wohl die 
Geschwindigkeit zu hoch?

Wie sollten denn R29 und 30 gewählt weden?

R24 soll möglichst groß sein wegen Batteriebetrieb.
Gast
Andreas F. schrieb:

> Danke, aber ich will die Potenziale ja nicht trennen,
> sondern bloß den 7V Offset loswerden und die Pegel
> anpassen.

Genau das ist mit einer Potenzialtrennung sehr einfach
möglich.

> R30 gehört zum Spannungsteiler, damit ich am Opto-Ausgang
> auf 3,3V runterkomme.

Ja, das habe ich mittlerweile verstanden.

> Die 3,3V sind dort nämlich nicht vorhanden,

Man darf den Optokoppler auch am empfangenden µC anordnen.
Dort werden die 3.3V ja wohl vorhanden sein.

> die Daten gehen zuerst über 10m Kabel zum Empfangs-uC.

Ein Grund mehr, sendeseitig mit einem PNP-Transistor als
Treiber zu senden (Stromschnittstelle) und empfangsseitig
einen Optokoppler zu verwenden.

> In dieser Schaltung sind die Daten aber gar nicht
> invertiert, oder seh ich das falsch?

In Deiner Schaltung sind sie nicht invertiert; das ist
richtig.
> Andreas F. schrieb:
> R24 soll möglichst groß sein wegen Batteriebetrieb.
Hallo,
Dann solltest du einen Optokopler aussuchen, der einen deutlich höheren 
CTR-Wert (CTR = Currend Tranfer Ratio) hat, so dass er schon mit kleinem 
Strom sicher durchschaltet. Damit kann man dann stromsparender Arbeiten.


> Mit R24 = 390 und dem Spannungsteiler
> R29/R30 = 4,7k/1,5k klappt es mit 9600bps.
Die Beschaltung mag jetzt funktionieren, aber wirklich zuverlässig ist 
das nicht.
Auf der Empfängerseite fließen ca. 1,5mA, was gut ist für höhere 
Datenraten.
Wie in dem anderen Antwortposting geschrieben, wäre es bei einer 
längeren Leitung vorteilhaft, den Optokoppler am Empfänger zu plazieren 
und die Sende-LED über die Leitung anzusteuern, weil diese viel 
niederohmiger ist.
Mit langen Leitungen auf der Empfängerseite mußt du die Kabelkapazität 
mit der hochomigeren Beschaltung umladen.

Bei einem garantieren CTR-Wert von 10% (laut Datenblatt) müßte auf der 
Sendeseite ca. 14mA getrieben werden. Mit R24 = 390 Ohm werden aber 
weniger als 10mA in die Sende-LED fließen. Das es trotzdem geht, wird 
wohl daran liegen, das der CTR-Wert doch etwas höher liegt.
Aber wundere dich nicht, wenn es z.B. bei unterschielichen Temp. nicht 
richtig funktioniert.
Gruß Öletronika

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.