Forum: Analoge Elektronik und Schaltungstechnik Pegelwandlung von 7/12V auf 0/3,3V - Optokoppler oder Spannungsteiler?


von Andreas F. (solipo)


Angehängte Dateien:

Lesenswert?

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.

: Bearbeitet durch User
von Schreiber (Gast)


Lesenswert?

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

von Andreas F. (solipo)


Lesenswert?

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.

: Bearbeitet durch User
von Possetitjel (Gast)


Lesenswert?

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.

von U. M. (oeletronika)


Lesenswert?

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.

von Andreas F. (solipo)


Lesenswert?

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?

von Andreas F. (solipo)


Lesenswert?

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.

von Possetitjel (Gast)


Lesenswert?

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.

von Helge A. (besupreme)


Angehängte Dateien:

Lesenswert?

Und den OC nach Masse schalten lassen. Dann paßt die Polarität. Pullup 
verwenden.

von Andreas F. (solipo)


Lesenswert?

Öletronika, vielen Dank. Das war der entscheidende Hinweis. Mit R24 = 
390 und dem Spannungsteiler R29/R30 = 4,7k/1,5k klappt es mit 9600bps. 
So reicht mir das und ist vom Stromverbrauch in Ordnung.

: Bearbeitet durch User
von U. M. (oeletronika)


Lesenswert?

> 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

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.