Forum: Mikrocontroller und Digitale Elektronik Optokoppler schluckt Flanken


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Keine A. (karabennemsi)


Angehängte Dateien:

Lesenswert?

Hallo,

ich nutze einen STM32G070 um auf einem Pin eine 1kHz PWM zu erzeugen. 
Dieses Signal kommt sauber am Eingang eines Optokopplers an.

Siehe Schaltplan. An Pin4 sehe ich ein sauberes Signal, an Pin6 hingegen 
wird es löcherig. Dort fehlen etliche Flanken.

Ich vermute mein Optokoppler ist zu langsam, wobei 1kHz doch nun 
wirklich nicht schnell ist? Laut Datenblatt hat der LTV827 1,2V bei 
20mA, daher habe ich einen 220Ohm WIderstand geniommen als R8. R37 habe 
ich mit 10k bestückt., R38 0Ohm.

CTR laut Datenblatt 50%.

Inzwischen würde ich den Optokoppler einfach weglassen, einen Treiber 
verwenden und Pin 1 vom Stecker direkt auf GND setzen, da die Trannung 
(hier sowieso nicht richtig ausgefüht) weniger wichtig ist. Aber der ist 
da jetzt nun mal.

: Bearbeitet durch User
von Helmut -. (dc3yc)


Lesenswert?

Dafür gibt's Datenblätter. Da stehen die Schaltzeiten drin!

von H. H. (hhinz)


Lesenswert?

Keine A. schrieb:
> R37 habe
> ich mit 10k bestückt

Klar, dass er dann lahm ist. Aber so lahm, dass was ausfällt sicher 
nicht.


Hat der µC denn 5V tolerante Ausgänge?

: Bearbeitet durch User
von Keine A. (karabennemsi)


Lesenswert?

H. H. schrieb:
> Hat der µC denn 5V tolerante Ausgänge?

Ja, fast alle GPIOs sind 5V tolerant.

H. H. schrieb:
> Klar, dass er dann lahm ist. Aber so lahm, dass was ausfällt sicher
> nicht.

Was hat das mit der Geschwindigkeit zu tun?

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Häng das Oszi mal parallel zu R8, und zeig das.

von Axel S. (a-za-z0-9)


Lesenswert?

Keine A. schrieb:
> An Pin4 sehe ich ein sauberes Signal, an Pin6 hingegen
> wird es löcherig. Dort fehlen etliche Flanken.
>
> Ich vermute mein Optokoppler ist zu langsam, wobei 1kHz doch nun
> wirklich nicht schnell ist?

Selbst wenn der Optokoppler zu langsam sein sollte, äußert sich das 
nicht im "Verschlucken" von Flanken. Aber ein PWM-Signal ist ein 
Rechteck, das hat theoretisch eine unendliche Bandbreite. Insbesondere 
bei sehr schmalen Impulsen. Kann durchaus sein, daß da die 80kHz aus dem 
Datenblatt nicht reichen. Zumal die mit 100Ω Abschlußwiderstand gemessen 
werden, nicht mit 10KΩ.

> Inzwischen würde ich den Optokoppler einfach weglassen

Jo, der Klassiker. Einen Optokoppler verbaut, obwohl man ihn nicht 
braucht.

von H. H. (hhinz)


Lesenswert?


von Keine A. (karabennemsi)


Lesenswert?

H. H. schrieb:
> Häng das Oszi mal parallel zu R8, und zeig das.

Ich nutze den AUsgang vom STM32 als Push-Pull. Pin4 gegen GND sieht man 
das saubere PWM Signal, ebenso Pin3 nach GND mit einem entsprechenden 
Offset natürlich.

von Mark S. (voltwide)


Lesenswert?

Wenn das Tastverhätnis gegen 0 oder 1 geht, werden aufgrund der 
begrenzten  Bandbreite des 'OC auch bei 1kHz irgendwann natürlich ganze 
Pulse verschluckt. Das funktioniert nur ab einer minimalen Pulsbreite

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Keine A. schrieb:
> H. H. schrieb:
>> Häng das Oszi mal parallel zu R8, und zeig das.
>
> Ich nutze den AUsgang vom STM32 als Push-Pull. Pin4 gegen GND sieht man
> das saubere PWM Signal, ebenso Pin3 nach GND mit einem entsprechenden
> Offset natürlich.

Viel Spaß noch.

von Rainer W. (rawi)


Lesenswert?

Axel S. schrieb:
> Aber ein PWM-Signal ist ein
> Rechteck, das hat theoretisch eine unendliche Bandbreite. Insbesondere
> bei sehr schmalen Impulsen. Kann durchaus sein, daß da die 80kHz aus dem
> Datenblatt nicht reichen.

Unendliche Bandbreite wird schon der treibende Ausgang nicht schaffen. 
Das wäre also vergebliche Liebesmühe und der EMV nicht zuträglich.

Der Eingang des µC braucht hoffentlich kein Signal mit einer Flankenzeit 
von unter 1µs.

Keine A. schrieb:
> ich nutze einen STM32G070 um auf einem Pin eine 1kHz PWM zu erzeugen.

Dann verrate doch einmal, wie lang oder kurz die Impulse sind, die du 
über den Optokoppler schicken willst und wie die kapazitive Gesamtlast 
an deinem Pin 2 vom Stecker ist.
Wie stellst du fest, dass Flanken fehlen?
Ich hätte erwartet, dass nicht einzelne Flanken, sondern ganze Pulse 
fehlen - oder wie meinst du das?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark S. schrieb:
> Das funktioniert nur ab einer minimalen Pulsbreite
Vor allem: der OK schaltet unsymmetrisch. Das Einschalten geht viel 
schneller als das Ausschalten. Und Pullups x mal hochohmiger
 als im DB sorgen vereinfacht für x mal langsameres Ausschalten.

Keine A. schrieb:
> eine 1kHz PWM zu erzeugen.
In welchem Tastverhältnis-Bereich?

> Dieses Signal kommt sauber am Eingang eines
> Optokopplers an.
Interessant ist ja eigentlich eher der Ausgang, bzw. ein Vergleich 
zwischen Ein- und Ausgang.

Merke: ein OK ist ein zutiefst analoges Bauteil.

: Bearbeitet durch Moderator
von Bernd G. (Gast)


Lesenswert?

Du kannst probieren, die Flanken mit einem Kondensator auf die andere 
Seite zu koppeln.

von Lu (oszi45)


Lesenswert?

Lothar M. schrieb:
> Pullups x mal hochohmiger als im DB
> sorgen vereinfacht für x mal langsameres Ausschalten.

Zu hochohmig fiel mir oben auch auf.

von Gregor J. (Firma: Jasinski) (gregor_jasinski)


Lesenswert?

Keine A. schrieb:
> ich nutze einen STM32G070 um auf einem Pin eine 1kHz PWM zu erzeugen.
> Dieses Signal kommt sauber am Eingang eines Optokopplers an.
> Siehe Schaltplan. An Pin4 sehe ich ein sauberes Signal, an Pin6 hingegen
> wird es löcherig. Dort fehlen etliche Flanken.
> Ich vermute mein Optokoppler ist zu langsam, wobei 1kHz doch nun
> wirklich nicht schnell ist?

Ohne Screenshots mit einem 2-Kanal-Oszilloskop, wo man beide Signale 
gleichzeitig sehen und vergleichen kann, wird Dir das mit dem 
„Verschlucken der Flanken” kaum einer hier glauben oder nachvollziehen 
können, was überhaupt gemeint ist. Grundsätzlich würde ich sagen, dass 
auf der linken Seite des Optokopplers unnötig zu niederohmig und auf der 
rechten unwissentlich zu hochohmig die Schaltung aufgebaut wurde; und 
R9/R10 am besten ganz weglassen, d.h. brücken. 1kHz-PWM-Signal hört sich 
zwar nicht nach viel an, aber je nach Auflösung und Einstellung des 
Tastverhältnisses, ergibt das sehr kurze Spikes, die dann auf der 
rechten Seite des Optokopplers nicht ankommen bzw. nicht nachgebildet 
werden können, weil Du ja eben hier viel zu hochohmig und auch nur in 
eine Richtung (gegen Masse) mit dem Transistor schaltest bzw. überhaupt 
schalten kannst. Wird der Transistor dann gesperrt, muss sich an diesem 
Knotenpunkt die Spannung erst über diesen großgewählten Widerstand und 
der Eingangskapazität – oder generell der Kapazität an diesem ganzen 
Knotenpunkt – aufladen und das dauert dann entsprechend. Bei einer 
PWM-Auflösung von 256 Schritten dauert ein Schritt ca. 4µs, bei 1024 
dann ca. 1µs – solche kurzen Pulse können dann das Filter, welches Du 
versehentlich und ahnungslos mit Deinem Optokoppler aufgebaut hast, auf 
der Ausgangsseite des Optokopplers nicht passieren und ab-/nachgebildet 
werden. Die grundsätzliche Frage, ob hier überhaupt ein Optokoppler – 
und damit das ganze selbstgenerierte Theater drumherum – nötig ist, 
bleibt natürlich bestehen.

: Bearbeitet durch User
von Keine A. (karabennemsi)


Lesenswert?

Lothar M. schrieb:
> In welchem Tastverhältnis-Bereich?

0-100%, wobei alles unter 100% löchgrig wie ein Käse ist.

Rainer W. schrieb:
> Wie stellst du fest, dass Flanken fehlen?

Mit dem Oszilloskop. Tut mir leid, es kann auch sein, dass ganze Takte 
fehlen. Auf jedenfall ist das unvollständig.

Wie ich das noch merke? Mit der PWM steuer ich einen Motortreiber und 
dessen Geschwindigkeit ist entsprechend "wandernd", bzw. oszillierend. 
Gemessen habe ich ohne den Treiber, also kann der nicht der Grund sein.

Ich werde heute zunächst mal die Widerstände verändern.

Laut Datenblatt hat der Collector aber als typical value 1mA, was bei 5V 
5kOhm sind. Ist ja gar nicht so weit weg von meinen 10k.

Welche Werte soll ich also nehmen?

von M. K. (sylaina)


Lesenswert?

Keine A. schrieb:
> Inzwischen würde ich den Optokoppler einfach weglassen

Warum hast du hier überhaupt einen OK eingesetzt wenn beide Seiten des 
OKs auf schlicht dem selben Potential unterwegs sind? Der Einsatz des 
OKs macht so schlicht gar keinen Sinn. Es ist ja schon fragwürdig, wenn 
beide Seiten die selbe Masse haben aber bei dir ist ja sogar die 
Versorgung beider Seiten identisch...der OK wäre so schlicht 
überflüssig. Und ja, das n.b. habe ich gelesen (was aber im Grunde auch 
falsch ist ein "nicht bestücken" so zu kennzeichnen).

Ansonsten dürfte schon alles gesagt sein, dein OK ist ziemlich sicher 
viel zu hochohmig auf der Ausgangsseite beschaltet für die 1 kHz. Mach 
aus R37 mal 100Ω statt 10kΩ und schau dann noch mal.

von Marcel V. (mavin)


Angehängte Dateien:

Lesenswert?

M. K. schrieb:
> aus R37 mal 100Ω statt 10kΩ

Das ist zu niederohmig, dann zieht der nicht mehr richtig auf GND 
runter! Der OK hat schließlich nur ein CTR von 50%!

Nimm für R8 820R und am Ausgang 3k9. Emitter direkt an GND.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Keine A. schrieb:
> Ja, fast alle GPIOs sind 5V tolerant.
Klar, als Eingang. Kann der mit vermutlich 3V3 versorgte µC auch 
tatsächlich 5V ausgeben, um die OK-LED sicher auszuschalten? Oder 
schaltest du zum Abschlaten der LED den Ausgang hochohmig?

Marcel V. schrieb:
> dann zieht der nicht mehr richtig auf GND runter!
Muss er das?

> Emitter direkt an GND.
Da ist doch generell die elementare Frage: was ist am J3 Pins 1+2 
angeschlossen?

M. K. schrieb:
> Warum hast du hier überhaupt einen OK eingesetzt wenn beide Seiten des
> OKs auf schlicht dem selben Potential unterwegs sind?
Ja, ich vermute auch sehr, dass hier gar kein OK nötig ist. Aber dazu 
sollte man links und rechts ein paar cm mehr vom Schaltplan sehen. Am 
einfachsten gleich den ganzen Plan.

von Gregor J. (Firma: Jasinski) (gregor_jasinski)


Lesenswert?

Keine A. schrieb:
> Welche Werte soll ich also nehmen?

Das weiß und wird hier auch niemand wissen können, nicht einmal die gute 
Fee weiß das – die „5 Teile samt Optokoppler” auf einem kleinen Stück 
Lochrasterplatine etc. nachbauen, am Eingang und Ausgang 220R mit 
jeweils einem Poti 1-2k in Reihe schalten (damit man versehentlich nicht 
zu wenig hat), Oszilloskop einschalten, das PWM-Signal anlegen, an den 
Potis drehen und die optimalen Einstellungen über den Bildschirm des 
Oszilloskops herausfinden, dabei das PWM-Tastverhältnis ändern, um die 
kritischen Bereiche abfahren zu können. Wenn alles passt, Verbindungen 
wieder trennen, die Gesamtwiderstände nachmessen und ähnliche 
Festwiderstände aus den bekannten Reihen in den richtigen Schaltungsteil 
einlöten. Danach nochmal die Extremstellen abfahren/überprüfen und ggfs. 
noch etwas ein wenig ändern oder anpassen.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Keine A. schrieb:
> R37 habe ich mit 10k bestückt., R38 0Ohm.

Na ja, bei 500uA ist er nicht mehr schnell.

Da du 17mA reinschickst kannst du bei CTR50 bis 8mA schalten, so 1kOhm 
R37 ist kein Problem, schon ist er schneller.

Wen es noch schneller sein muss:

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.0.1

von Marcel V. (mavin)


Lesenswert?

Gregor J. schrieb:
> die „5 Teile samt Optokoppler” auf einem kleinen Stück Lochrasterplatine
> etc. nachbauen,

Dann nimm aber gleich den LTV827C der hat ein CTR von 200 bis 400% und 
ist vorm Zug schon allein deswegen schneller und der kann auch noch ganz 
andere Sachen schlucken.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Marcel V. schrieb:
> Dann nimm aber gleich den LTV827C der hat ein CTR von 200 bis 400% und
> ist vorm Zug schon allein deswegen schneller.

Sicher?

Ich dachte, je mehr man einen Transistor übersteuert, umso langsamer 
schaltet er danach wieder ab. Bin allerdings nicht sicher, ob das auch 
für die optische Ansteuerung gilt.

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Steve van de Grens schrieb:
> Ich dachte, je mehr man einen Transistor übersteuert, umso langsamer
> schaltet er aus "aus". Bin allerdings nicht sicher, ob das auch für die
> optische Ansteuerung gilt.

Ist auch da so.

von Marcel V. (mavin)


Lesenswert?

Steve van de Grens schrieb:
> Ich dachte, je mehr man einen Transistor übersteuert, umso langsamer
> schaltet er danach wieder ab.

Dafür kannst du die LED schwächer ansteuern, so dass sie deutlich unter 
5mA kommt (Stichwort Lebensdauer).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

H. H. schrieb:
> Steve van de Grens schrieb:
>> Ich dachte, je mehr man einen Transistor übersteuert, umso langsamer
>> schaltet er aus "aus". Bin allerdings nicht sicher, ob das auch für die
>> optische Ansteuerung gilt.
> Ist auch da so.
Und vor allem: beim OK kann man nicht mit einer "Beschleunigerschaltung" 
zwischen B und E die Basisladung schneller "freiräumen". Nein, die muss 
beim OK ganz gemütlich über die BE-Diode entfleuchen.

Wenn man ihn aber nicht ausreichend übersteuert, dann hat man eine hohe 
verbleibende Uce.

Die Spec gibt z.B. das hier an:
Response time (tr : TYP. 4μs at VCE = 2V, IC = 2mA, RL = 100Ω)

Für eine Reaktionszeit von 4µs braucht man einen Ic mit 2mA bei einem 
Lastwiderstand von 100 Ohm. Als Uce müssen dann im durchgesteuerten 
ungesättigten(!!) Zustand noch 2V verbleiben. Wenn der CTR besser ist 
und der Transistor auf 1V durchgesteuert wird, dann wird er schon wieder 
langsamer.

Marcel V. schrieb:
> LTV827C der hat ein CTR von 200 bis 400%
Der LTV827 kann sogar bis zu 600% haben.

Gregor J. schrieb:
> Das weiß und wird hier auch niemand wissen können
Ich bin immer noch fest mit der Fraktion verbunden, die behauptet, dass 
man dank der gleichen +5V links und rechts vom OK gar keine 
Potentialtrennung braucht und somit auch keinen schwerkalkulierbaren 
OK braucht. Und wenn man keinen OK braucht, dann nimmt man auch 
keinen.

Ich sags mal so: OK werden von (Arduino-)Anfängern und von Profis 
verwendet. Die einen, weil sie nicht wissen, was sie da tun, die 
anderen, weil sie wegen einer Potentialtrennung unbedingt einen 
brauchen.

: Bearbeitet durch Moderator
von Steve van de Grens (roehrmond)


Lesenswert?

Lothar M. schrieb:
> Wenn man ihn aber nicht ausreichend übersteuert, dann hat man eine hohe
> verbleibende Uce.

Und: Die LED wird im Laufe der Zeit schwächer. Dafür muss Reserve 
eingeplant werden.

von Gregor J. (Firma: Jasinski) (gregor_jasinski)


Lesenswert?

Lothar M. schrieb:
> Ich sags mal so: OK werden von (Arduino-)Anfängern und von Profis
> verwendet. Die einen, weil sie nicht wissen, was sie da tun, die
> anderen, weil sie wegen einer Potentialtrennung unbedingt einen
> brauchen.

Tja, es kann übrigens auch sein, dass es hier noch eine ganz andere 
Baustelle gibt und alles Geschriebene zu der ersten quasi umsonst war, 
denn wie das Signal, das vom Optokoppler an diesen Stecker geht, dann 
„weiterverarbeitet” wird, bleibt schaltplantechnisch geheim.

von H. H. (hhinz)


Lesenswert?

Gregor J. schrieb:
> und alles Geschriebene zu der ersten quasi umsonst war,

Daran ist nicht mehr zu zweifeln.

von Keine A. (karabennemsi)


Lesenswert?

Lothar M. schrieb:
> Da ist doch generell die elementare Frage: was ist am J3 Pins 1+2
> angeschlossen?

Im Moment gar nichts.

Lothar M. schrieb:
> Ich bin immer noch fest mit der Fraktion verbunden, die behauptet, dass
> man dank der gleichen +5V links und rechts vom OK gar keine
> Potentialtrennung braucht und somit auch keinen schwerkalkulierbaren
> OK braucht. Und wenn man keinen OK braucht, dann nimmt man auch
> keinen.

Korrekt, aber wie ich bereits sagte: Nun ist der halt da.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Keine A. schrieb:
> Im Moment gar nichts.

Und wo sind jetzt die Oszi-Bilder von den Signalen? Am besten von Pin 
3+6 des OK mit einem Zweikanal-Oszi. Und wenn Du noch mehr Kanäle hast, 
dann am besten von allen Pins des OK ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Keine A. schrieb:
> Lothar M. schrieb:
>> Da ist doch generell die elementare Frage: was ist am J3 Pins 1+2
>> angeschlossen?
> Im Moment gar nichts.
Dann juckt es auch im Moment gar nichts, wenn der Mosfet in der 
originalen Schaltung ohne R37 und R38 (sind ja beide nb) irgendwas 
"verschluckt".

Oder hast du meine Frage nur allzu wörtlich genommen und ich hätte 
fragen müssen: was wird am J3 an den Pins 1+2 angeschlossen?

> Korrekt, aber wie ich bereits sagte: Nun ist der halt da.
Löte statt des OK eine Brücke von 4 nach 5.

: Bearbeitet durch Moderator
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.