Forum: Mikrocontroller und Digitale Elektronik Pegelwanlder falsch?


von Nuri O. (nurios)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

ich habe ein custom-board mit einem ESP32, der unter anderem WS2812b 
LEDs ansteuert. Da der ESP ja mit 3,3 V arbeitet, hatte ich eine 
Pegelwandler-Schaltung mit eingefügt. Schaltplan ist angefügt.

Das seltsame ist jetzt, dass sobald ich die 5V anschließe, funktionieren 
die Neopixels nicht. Wenn ich aber meinen programmer anschließe (3,3 V) 
ohne die 5 V funktoniert es aufeinmal.

Hab ich beim Pegelwandler etwas falsch gemacht, oder stimmt etwas 
anderes nicht?

vielen Dank!

mfg

von Steve van de Grens (roehrmond)


Lesenswert?

Der Pegelwandler ist für die (fast) 1 MHz viel zu hochohmig.

Versuche mal, R19 auf 1kΩ zu verringern und R13 auf 33 Ohm. Wenn das 
dann immer noch nicht klappt, wird dir ein Oszilloskop zeigen, woran es 
hapert.

Bessere Vorschläge: http://stefanfrings.de/ws2812/index.html

: Bearbeitet durch User
von Roland E. (roland0815)


Lesenswert?

Notfalls auf einen TXS0102 setzen. Der ist schnell genug.

von Rainer W. (rawi)


Lesenswert?

Nuri O. schrieb:
> ich habe ein custom-board mit einem ESP32, der unter anderem WS2812b
> LEDs ansteuert. Da der ESP ja mit 3,3 V arbeitet, hatte ich eine
> Pegelwandler-Schaltung mit eingefügt.

Die WS2812b ab V5 arbeiten ab 2.7V Ansteuerpegel.
Welche Version benutzt du?

von Nuri O. (nurios)


Lesenswert?

Steve van de Grens schrieb:
> Versuche mal, R19 auf 1kΩ zu verringern und R13 auf 33 Ohm.

Ganz funktioniert es leider noch nicht aber jetzt leuchten, zwar nicht 
wie sie sollten, immerhin die ersten 3 LEDs, was sie vorher nicht getan 
haben. villeicht noch weiter verringern ?

Roland E. schrieb:
> Notfalls auf einen TXS0102 setzen. Der ist schnell genug.

Layout anderungen gehen leider nicht mehr. Den gibts auch als Modul. 
Würde ich zu not auch nehmen, wenns gar nicht geht mit meiner Schaltung.

Rainer W. schrieb:
> Die WS2812b ab V5 arbeiten ab 2.7V Ansteuerpegel.
> Welche Version benutzt du?

Die hatte ich auch gesehen. Welche Version ich genau habe, weiß ich 
nicht, aber die Streifen die ich hier habe sind alle schon einige Jahre 
alt, also hab ich die V5 wohl eher nicht. Würde auch ungerne neue 
kaufen, da ich hier noch etliche Meter habe.

von Steve van de Grens (roehrmond)


Lesenswert?

Nuri O. schrieb:
> villeicht noch weiter verringern ?

Das Problem ist, dass deine Schaltung für I²C gedacht ist, nicht für das 
hier verwendete Protokoll. Eigentlich müsste sie sowohl beim HIGH Pegel 
als auch beim LOW Pegel den gleichen Ausgangswiderstand von ca 100 Ohm 
(entsprechenden deinen Leitungen) haben, aber das ist bei dieser 
Schaltung leider nicht einmal ansatzweise umsetzbar.

Kann sein, dass du mit 470 Ohm Erfolg hast. Kann aber auch sein, dass 
der nur bis zur nächsten Mondphase anhält, weil das immer noch sehr weit 
vom Soll entfernt ist. Und 100 Ohm als Pull-Up kannst du vergessen, denn 
durch diesen würden 50 mA fließen, das schafft der ESP nicht.

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


Lesenswert?

Nuri O. schrieb:
> Das seltsame ist jetzt, dass sobald ich die 5V anschließe, funktionieren
> die Neopixels nicht.
In so einem Fall nimmt man ein Oszi und misst am Eingang(!) des 
nachgeschlteten Empfängers einfach mal, wie die Pegel und Flanken 
aussehen.

Und dann findet man schnell heraus, dass dieser passive Pegelwandler 
eben nur die H-L-Flanke gut hinbekommt und die L-H-Flanke viel zu 
langsam ansteigt und deshalb das Tastverhältnis nicht mehr stimmt.

Für schnelle Signale nimmt man dann einfach richtige aktive Pegelwandler 
und setzt eine passende Serienterminierung direkt an den Ausgang. Dann 
bekommt der nachgeschaltete Eingang die richtigen Pegel mit knackigen 
Flanken.

von Rainer W. (rawi)


Lesenswert?

Nuri O. schrieb:
> Layout anderungen gehen leider nicht mehr.

Wenn eine nicht funktionierende Ansteuerung für die WS2812b eine Option 
ist und du den Chip nicht von Hand verdrahtet auf die Platine bauen 
willst, kannst du das Layout natürlich so lassen.

Roland E. schrieb:
> Notfalls auf einen TXS0102 setzen. Der ist schnell genug.

Wozu ein bidirektionaler Wandler an dieser Stelle nötig sein soll, ist 
allerdings nicht klar. Ein Single Gate HCT-Gatter sollte für die WS2812b 
völlig reichen, z.B. ein 74HCT1G125GW oder, wenn man das Signal am µC 
invertiert ausgibt, ein 74HCT1G04GW.

von Sebastian W. (wangnick)


Lesenswert?

Rainer W. schrieb:
> Ein Single Gate HCT-Gatter sollte für die WS2812b
> völlig reichen, z.B. ein 74HCT1G125GW

Oder ein 74LV1T34, oder ein 74LVC1G17, oder sogar ein MCP14E10, ...

LG, Sebastian

von Nuri O. (nurios)


Lesenswert?

Steve van de Grens schrieb:
> Kann sein, dass du mit 470 Ohm Erfolg hast.

Das hat funktioniert!

Lothar M. schrieb:
> die L-H-Flanke viel zu
> langsam ansteigt

nur für mein Verständnis, woran liegt das? an dem hohen 
Pullup-Widerstand?

Rainer W. schrieb:
> z.B. ein 74HCT1G125GW

Die hab ich jetzt nur als IC gefunden. Wenn bräuchte ich ein Modul, was 
ich dann nachträglich einbauen kann.

dann brauch ich zur nächsten Mondphase wohl den TXS0102

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


Lesenswert?

Nuri O. schrieb:
> an dem hohen Pullup-Widerstand?
Ja, zusammen mit den parasitären Kapazitätenvon Eingang, Leitung, usw...

(kleiner Einwurf in Klammern: es ist dann ein "hoher Widerstand", wenn 
er z.B. ganz oben im Regal liegt. Hier kommt das Problem aber eher 
davon, dass es ein hochohmiger Widerstand ist. Selbiges gilt z.B. auch 
für "kleine Widerstände", die eigentlich nur "niederohmig" sind)

> dann brauch ich zur nächsten Mondphase wohl den TXS0102
Wenn du dir das Datenblatt des ICs mal näher anschaust: der ist im 
Prinzip genau so passiv (mit Pullup) aufgebaut wie deine obige langsame 
Schaltung. Nur hat er einen "One Shot Accelerator" hinzugebastelt 
bekommen, der die Flanken steiler macht.

>> z.B. ein 74HCT1G125GW
> Die hab ich jetzt nur als IC gefunden. Wenn bräuchte ich ein Modul
Probier doch mal den Einstieg in die Elektronik, statt nur aus 
irgendwelchen Modulen irgendwas zusammenzufrickeln: kauf dir einfach ein 
Stück Lochrasterplatine und mach dir selber so ein Modul. Siehe z.B. im 
Artikel Pegelwandler

Die eigentlich relevante Passage darin lautet: "3,3 V auf echte 5 V 
(CMOS) geht am einfachsten mit einem Baustein der HCT-Familie (NICHT 
HC!). Diese haben TTL-kompatible Eingänge und echte CMOS-Ausgänge". Also 
nimm irgendeinen 74HCTxxx Buffer, den du zu deinem Modul verarbeiten 
kannst:
https://www.mouser.de/c/semiconductors/logic-ics/buffers-line-drivers/?logic%20family=74HCT

Kleiner Tipp für selbstgebaute "Module": immer einen 100nF Kondensator 
direkt zwischen Vcc und GND an die ICs löten.

: Bearbeitet durch Moderator
von Manfred P. (pruckelfred)


Lesenswert?

Lothar M. schrieb:
>> dann brauch ich zur nächsten Mondphase wohl den TXS0102
> Wenn du dir das Datenblatt des ICs mal näher anschaust: der ist im
> Prinzip genau so passiv (mit Pullup) aufgebaut wie deine obige langsame
> Schaltung. Nur hat er einen "One Shot Accelerator" hinzugebastelt
> bekommen, der die Flanken steiler macht.

Ich verbaue TXS0108E, weil es ihn beim Ali auf lochrasterfreundlichem 
Platinchen billig gab. Ist natürlich doof, wenn man nur zwei Leitungen 
braucht. Der hat Push-Pull Ausgänge und ich bin erstaunt, dass TI das 
bei den kleineren 0104 / 0102 nicht auch gemacht hat.

von Steve van de Grens (roehrmond)


Lesenswert?

Nuri O. schrieb:
> Die hab ich jetzt nur als IC gefunden. Wenn bräuchte ich ein Modul

Entsprechende "SMD Adapterplatinen" sind handelsüblich. Aber mal 
ehrlich: Du wirst es doch wohl schaffen, 4 Drähte direkt an das IC 
anzulöten, oder? Dann passt es auch irgendwie als Rettung auf deine 
Platine.

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


Angehängte Dateien:

Lesenswert?

Manfred P. schrieb:
> Ich verbaue TXS0108E ... Der hat Push-Pull Ausgänge
Auch der ist in der Struktur gleich wie die kleineren Varianten. Die 
PushPull Mosfets werden nur kurz für knackige Flanken eingeschaltet. Den 
Rest muss der Pullup machen.

: Bearbeitet durch Moderator
von Gerald B. (gerald_b)


Lesenswert?

Schnelle Pegelwandlung wurde ja schon gesagt, diverse Levelshifter 
wurden auch genannt.
Einen WS2812 Pixel als "Pegelwandler für Arme", indem du dem einen Pixel 
eine normale Si-Diode in die +5V Leitung baust. Der sieht dann nur 4,3V 
und ist mit dem 3,3V Pegel zufrieden und kann seinerseits dann 4,3V 
liefern, mit dem der 5V Stripe dann wieder glücklich ist.
Oder du missbrauchst RS485 Transciver als Levelshifter und nutzt den 
differentiellen Bus als willkommenes Goodi, weil Stripe und Ansteuerung 
zig Meter auseinander sein dürfen. Am ESP einen xx3485 und am Stripe 
eine 5V Version. Du mußt bei den Transcivern nur aufpassen, es gibt 
vereinzelt auch schnarchlangsame Varianten. Die mit 2,5 MHz langen 
völlig.

von John D. (john_d384)


Angehängte Dateien:

Lesenswert?

Ich nutze immer diese Schaltung am ESP. Funktioniert wunderbar.
Die Widerstände kann man auch beide mit 4K7 ersetzen, als NPN verwende 
ich meistens nen BC337 und fertig. Bisher habe ich damit noch jeden 
WS2812-kompatiblen Strip angesteuert bekommen - und zwar ohne Aussetzer.

von Steve van de Grens (roehrmond)


Lesenswert?

John D. schrieb:
> Ich nutze immer diese Schaltung am ESP. Funktioniert wunderbar.

Glaube ich dir, hat bei mir auch an funktioniert. Doch sie wurde hier im 
Forum kritisiert. Die berechtigte Kritik wurde mit Oszilloskop-Bildern 
untermauert.

: Bearbeitet durch User
Beitrag #7559481 wurde vom Autor gelöscht.
von Rainer W. (rawi)


Lesenswert?

Steve van de Grens schrieb:
> Die berechtigte Kritik wurde mit Oszilloskop-Bildern untermauert.

Link?

Bei der Schaltung tut es nicht jeder Kleinleistungs-NPN.

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


Lesenswert?

Rainer W. schrieb:
>> Die berechtigte Kritik wurde mit Oszilloskop-Bildern untermauert.
> Link?

Beitrag "Re: WS2812B mit 3.3V ansteuern"

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


Lesenswert?

Rainer W. schrieb:
> Bei der Schaltung tut es nicht jeder Kleinleistungs-NPN.
Doch, weil das eine Basisschaltung ist, wenn die Basis direkt an den 
3V3. Da ist jeder übliche Kleinsignaltransistor schnell. Dass die 
steigende Flanke dann wieder nur vom Pullup und den Leitungskapazitäten 
definiert wird, dürfte klar sein.

Steve van de Grens schrieb:
> Die berechtigte Kritik wurde mit Oszilloskop-Bildern untermauert.
Die Schaltung dort ist eine andere. Das mit den zusätzlichen Bauteilen 
um und an der Basis ist eben keine Basisschaltung.

von Rainer W. (rawi)



Lesenswert?

Lothar M. schrieb:
> Doch, weil das eine Basisschaltung ist, wenn die Basis direkt an den
> 3V3. Da ist jeder übliche Kleinsignaltransistor schnell.

Hätte ich auch so gedacht, aber zumindest LTSpice sagt etwas anderes.
Vielleicht ist irgendetwas mit den mitgelieferten Modellen von 
BC337/546/547/817 und 2N2219A (mehr habe ich nicht probiert).

Oder wo steckt der Fehler in der Simulation?

Edit
Zeitdiagramm mit 2N2219A hat andere Y-Skalierung, sorry

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


Lesenswert?

Rainer W. schrieb:
> Oder wo steckt der Fehler in der Simulation?
Nein, ich stehe im Abseits und behaupte das Gegenteil: wegen des R1 ist 
das natürlich keine Basisschaltung. Und der Sperrverzug kommt von dem 
voll aufgesteuerten Transistor. Schnell wäre der Transistor nur, wenn er 
nicht als Schalter übersteuert würde.

Also: ein Single-Gate-Treiber, dahinter eine Serienterminierung und 
fertig ist die Schnitte.

von Rainer W. (rawi)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Beitrag "Re: WS2812B mit 3.3V ansteuern"

Dann deckt sich die Simulation ja gut mit den Oszi-Messungen - kräftige 
Abschaltverzögerung, abhängig vom Transistortyp.

: Bearbeitet durch User
Beitrag #7560537 wurde vom Autor gelöscht.
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.