Led streifen mit 5V versorgen, signal aber nur 3,3V

Gast #6227719
Lesenswert?

mahlzeit,

ich habe vor mit einen atmega, welcher mit 3,3V versorgt wird ein 
led-streifen (ws2812) (5V) zu betreiben.

Meine versorgungsspannung sind 5V. da ich auch für andere module 3,3V 
brauche, wollte ich die 5V mit einem regler auf 3,3V bringen und die 
anderen Module ebenfalls versorgen. Der LED-streifen wird weiterhin mit 
den 5V versorgt.

Wenn jetzt aus dem atmega-pin das LED-Signal auch nur 3,3V beträgt, 
funktioniert das?

Also der LED-Streifen mit 5V und das Signal nur 3,3V?

Da ich die sachen noch nicht hier habe, wollte ich vorerst mal fragen. 
dementsprechend würde ich dann bestellen
Gast #6237757
Lesenswert?

Marcel schrieb:
> Der LED-streifen wird weiterhin mit den 5V versorgt.
>
> Wenn jetzt aus dem atmega-pin das LED-Signal auch nur 3,3V beträgt,
> funktioniert das?

Versorgungsspannung des LED-Streifens und Ansteuersignal sind nicht 
voneinander abhängig. Zwischen ATmega und LEDs muss normalerweise 
irgendein Treiber sitzen, da so ein LED-Streifen gewöhnlich mehr Strom 
benötigt, als ein ATmega an seinem Pin liefern kann. Von der 
Spezifikation dieses Treibers hängt es ab, ob du den direkt mit den 3.3V 
des ATmega ansteuern kannst.
Ohne ein paar mehr Fakten zu deinem LED-Streifen und dessen Treiber ist 
das hier reine Kaffeesatzleserei.
Gast #6237762
Lesenswert?

sorry, habe den WS2812 überlesen.
Im Datenblatt sind die Pegelanforderungen für das Eingangssignal 
angegeben:

Input voltage level
V_IH > 0.7 VDD (=0.7 * 5V)
V_IL < 0.3 VDD (=0.3 * 5V)

Marcel schrieb:
> Wenn jetzt aus dem atmega-pin das LED-Signal auch nur 3,3V beträgt,
> funktioniert das?

Deine Frage muss besser heißen: Steht der Hersteller dafür gerade, dass 
es unter allen Betriebbedingungen funktioniert?

Und da 0.7 * 5V = 3.5V < 3.3V lautet die Antwort NEIN.
Du kannst Glück haben, dass es eventuell manchmal noch geht, aber mehr 
nicht.
Gast #6237779
Lesenswert?

tja da haben wir wieder die Thematik Theorie/Datenblatt und Realität.

Bei mir laufen 12m SK6812 mit einem ESP8266 als Signslgeber während die 
Stripes und der ESP direkt am 5V Netzteil hängen und das Steuersignal 
eben vom ESP kommt.

Läuft seit 2 Jahren störungsfrei und vollkommen normal.
Gast #6237795
Lesenswert?

Das war schon x-mal ein Thema hier im Forum, mit vielfältigen 
Lösungsvorschlägen.
Einer z.B. ist, eine einzelne WS2812 vor den Strang zu schalten, die 
aber von den 5V über eine Diode zu versorgen, so dass sie statt 5V nur 
mit 4.3V versorgt wird. Es kann auch die erste im Strang sein, deren VCC 
man vom Rest abtrennt und die Diode in die VCC-Leitung von der zweiten 
zur ersten LED legt. 5V VCC wird dann an der zweiten LED eingespeist.
Die kommt dann mit dem 3.3V Logiksignal klar und liefert selber 4.3V 
Logikpegel ab. Das wiederum reicht der zweiten LED und die liefert dann 
eh die 5V Pegel ab.

(Auch wenn dann die erste außerhalb der Spec betrieben wird: ein Versuch 
zeigte, dass so ein Strang auch noch unterhalb von 3V VCC funktioniert.)
#6237828
Lesenswert?

HildeK schrieb:
> Das war schon x-mal ein Thema hier im Forum, mit vielfältigen
> Lösungsvorschlägen.
> Einer z.B. ist, eine einzelne WS2812 vor den Strang zu schalten, die
> aber von den 5V über eine Diode zu versorgen, so dass sie statt 5V nur
> mit 4.3V versorgt wird. Es kann auch die erste im Strang sein, deren VCC
> man vom Rest abtrennt und die Diode in die VCC-Leitung von der zweiten
> zur ersten LED legt. 5V VCC wird dann an der zweiten LED eingespeist.
> Die kommt dann mit dem 3.3V Logiksignal klar und liefert selber 4.3V
> Logikpegel ab. Das wiederum reicht der zweiten LED und die liefert dann
> eh die 5V Pegel ab.

Genau so habe ich das bei mehreren LED-Strip-Controller-Platinen mit 
ESP-Mikrocontrollern gemacht.
Funktioniert einwandfrei, man ist auf der sicheren Seite, weil man die 
Spezifikation einhält, die dafür nötige WS281x-LED hat man durch den 
LED-Strip ja eh, man benötigt also eigentlich nur eine einzige Diode 
(und optional noch einen 100nF-Kondensator).
Die bei dieser Lösung vor den eigentlichen LED-Strip geschaltete RGB-LED 
agiert dann einerseits als Treiber, und kann andererseits z.B. als vom 
LED-Streifen unabhängige Status-LED verwendet werden, für die man nicht 
mal einen einzigen zusätzlichen GPIO-Pin benötigt.

Früher habe ich die LED-Streifen direkt mit 3.3V-Signalen vom 
Mikrocontroller angesteuert, also streng genommen ausserhalb der 
Spezifikation. In der Praxis hat das meistens auch funktioniert - aber 
nicht immer. Da kam es dann schon mal zu Störungen oder es hat nicht 
mehr zuverlässig funktioniert, wenn das Anschlusskabel am LED-Streifen 
einfach nur minimal länger war.
Das kann funktionieren, aber es ist irgendwo ein Glücksspiel.
Gast #6237829
Lesenswert?

Frank K. schrieb:
> Für solche Zwecke gibts Bausteine wie den 74LVC1T45. 5V an
> VCCA(1), 3.3V
> an VCCB(6), GND an GND(2), AVR Signal an B(4) rein, mit 5V Pegel an A(3)
> raus, DIR(5) auf GND.
>
> http://www.ti.com/lit/ds/symlink/sn74lvc1t45.pdf
>
> fchk

Korrekt, aber es geht in diesem Fall einfacher, ein beliebiges 75HCT... 
Gatter reicht (nicht 74HC!).

Grund: Die erkennen ab 2V HIGH auch bei 5V, damit kann man auch bei 
5V-Versorgung mit 3V3 hineinfahren.

Möglich wäre ein 74HCT1G125:
http://www.farnell.com/datasheets/1245564.pdf

HildeK schrieb:
> Das war schon x-mal ein Thema hier im Forum, mit vielfältigen
> Lösungsvorschlägen.
> Einer z.B. ist, eine einzelne WS2812 vor den Strang zu schalten, die
> aber von den 5V über eine Diode zu versorgen, so dass sie statt 5V nur
> mit 4.3V versorgt wird. Es kann auch die erste im Strang sein, deren VCC
> man vom Rest abtrennt und die Diode in die VCC-Leitung von der zweiten
> zur ersten LED legt. 5V VCC wird dann an der zweiten LED eingespeist.
> Die kommt dann mit dem 3.3V Logiksignal klar und liefert selber 4.3V
> Logikpegel ab. Das wiederum reicht der zweiten LED und die liefert dann
> eh die 5V Pegel ab.
>
> (Auch wenn dann die erste außerhalb der Spec betrieben wird: ein Versuch
> zeigte, dass so ein Strang auch noch unterhalb von 3V VCC funktioniert.)

Oida...
Wer sowas baut, ist ein Makerpfuscher und hat keine Ahnung von 
Elektronik.
#6237837
Lesenswert?

Marcel schrieb:
> Wenn jetzt aus dem atmega-pin das LED-Signal auch nur 3,3V beträgt,
> funktioniert das?

Nein, wegen

Wolfgang schrieb:
> Und da 0.7 * 5V = 3.5V < 3.3V lautet die Antwort NEIN.

aber:

Du kannst das Ausgangssignal des ATmega mit einem Widerstand (z.B. 4k7 
an 5V)
1
       +5V
2
        |
3
       4k7
4
        |
5
ATmega--+--WS2812
von 3.3V auf 4V hochziehen.

Höher geht die Ausgangsspannung zwar nicht wegen der Schutzdioden, aber 
4V sind ausreichend für die Schaltschwelle der WS2812.

Das erspart echte Pegelwandler, die auch noch schnell sein müssten.

Damit erspart man sich:

Joachim S. schrieb:
> Früher habe ich die LED-Streifen direkt mit 3.3V-Signalen vom
> Mikrocontroller angesteuert, also streng genommen ausserhalb der
> Spezifikation. In der Praxis hat das meistens auch funktioniert - aber
> nicht immer.
Gast #6237848
Lesenswert?

Michael B. schrieb:
> Du kannst das Ausgangssignal des ATmega mit einem Widerstand (z.B. 4k7)
> von 3.3V auf 4V hochziehen.

Ganz toll, damit betreibt man den Mikrocontroller außerhalb seiner 
Spezifikation. Er darf dabei so kaputt gehen, ohne dass du dich 
beschweren kannst.

Außerdem erwarte ich schlechte Flanken. Für solche schäbigen Workarounds 
ist die Übertragungsrate viel zu hoch.
Gast #6237871
Lesenswert?

Stefan ⛄ F. schrieb:
> Ganz toll, damit betreibt man den Mikrocontroller außerhalb seiner
> Spezifikation. Er darf dabei so kaputt gehen, ohne dass du dich
> beschweren kannst.

Wegen 250µA durch die Schutzdiode geht da gar nichts kaputt.

Wer die Innenschaltung des GPIO vom µC verstanden hat, der darf das.
Selbst Atmel schlägt das in einer AppNote vor - ich such sich jetzt aber 
nicht raus.
Gast #6238043
Lesenswert?

Wolfgang schrieb:

> Wegen 250µA durch die Schutzdiode geht da gar nichts kaputt.

Sehr wahrscheinlich nicht, insofern hast du Recht. Es ist halt nur 
leider nicht spezifiziert...

> Selbst Atmel schlägt das in einer AppNote vor - ich such sich jetzt aber
> nicht raus.

Mach' mal bitte...

Ich hantiere jetzt nämlich seit 15 Jahren mit den Teilen. Ich habe in 
der ganzen Zeit NICHTS gefunden, wo Atmel irgendwas zur 
Strombelastbarkeit der Schutzdioden garantiert, dafür aber in JEDEM DB 
Spannungsbegrenzungen, die nahelegen, dass man die Schutzdioden wohl 
möglichst nicht in den leitenden Zustand bringen sollte, zumindest 
jedenfalls nicht dauerhaft...
Gast #6238061
Lesenswert?

HildeK schrieb:
> Wenn du namenloser Gast das sagst, dann wird es schon stimmen ...

Ganz unrecht hat er nicht. Ich bin bei dem Thread hier immer wieder 
erstaunt wie viel Energie in halbgare Lösungen investiert wird. Obwohl 
es doch so schöne fertige und preiswerte Lösungen wie die 74LVC.. gibt!
Gast #6238071
Lesenswert?

Andre schrieb:
> Ich bin bei dem Thread hier immer wieder
> erstaunt wie viel Energie in halbgare Lösungen investiert wird.
Was ist an eine (Schutz)-Diode und einem Pull-up Widerstand halbgar?

Ok, das hat jetzt mit Mikrocontroller oder digitaler Elektronik nicht 
direkt etwas zu tun, aber ein bisschen Kennnisse in Analogelektronik 
können manch aufwändigeres Transistorgrab (74LVC..) als übertrieben 
erscheinen lassen.
Gast #6238086
Lesenswert?

c-hater schrieb:
> Ich habe in
> der ganzen Zeit NICHTS gefunden, wo Atmel irgendwas zur
> Strombelastbarkeit der Schutzdioden garantiert, dafür aber in JEDEM DB
> Spannungsbegrenzungen, die nahelegen, dass man die Schutzdioden wohl
> möglichst nicht in den leitenden Zustand bringen sollte, zumindest
> jedenfalls nicht dauerhaft...

Für eine *Spannu#ng* ist das klar, einen Strom konnte man angeben und 
einen Maximalwert wäre auch feststellbar von denen.

Xilinx (klar, ist hier nicht in der Diskussion) hat mal für den Betrieb 
eines 1.8V-Eingangs an 3.3V eine Beispielschaltung angegeben. Der Strom 
war ca. 10mA ...
Gast #6238096
Lesenswert?

Wolfgang schrieb:

> 
http://ww1.microchip.com/downloads/en/Appnotes/Atmel-2508-Zero-Cross-Detector_ApplicationNote_AVR182.pdf

Danke, da steht doch tatsächlich ein ganzer Satz drin, wo sie irgendwas 
spezifizieren:

> The series resistor can also be modified to make the detection closer but
> note that the maximum current
> through the AVR’s clamping diode should not be higher than 1mA.

Ich frage mich, warum dieser Wert dann nicht einfach auch in den 
Datenblättern steht. Das ist doch was, worauf man in vielen Anwendungen 
aufbauen könnte. Das sollte also im DB stehen.
Gast #6238344
Lesenswert?

Joachim S. schrieb:
> Name: schrieb:
>> Wer sowas baut, ist ein Makerpfuscher und hat keine Ahnung von
>> Elektronik.
>
> Das habe ich sinngemäss schon mehrfach gelesen. Leider aber noch nie
> gepaart mit einer guten Begründung.

Man verheizt viele Watt in einer Diode, wenn man auch einen 
Pegelshiftern nehmen kann, der mit wenigen µW zurechtkommt?

Bei längeren Stripes kommt da schon einiges zusammen an Verlusten. Wenn 
du 5A hast, sind das mindestens 3,5W.
Allein der Kühler für die Diode ist teurer als ein Pegelshifter.

Dazu verbrennt man Spannung, die man speziell bei längeren Stripes schon 
mal gebrauchen kann. Die LED ganz hinten bekommen nämlich durch den 
Spannungsabfall weniger Spannung ab als die vorn, und umso weniger man 
hineinlässt, umso eher bekommt man hinten raus Probleme.
Gast #6238399
Lesenswert?

Blumpf schrieb:
> Bei längeren Stripes kommt da schon einiges zusammen an Verlusten. Wenn
> du 5A hast, sind das mindestens 3,5W.
> Allein der Kühler für die Diode ist teurer als ein Pegelshifter.

Warum sollte eine einzige WS2812 einer zum Absenken der VDD 
vorgeschalteten Diode einen Strom von 5A ab verlagen.
Du hast das Prinzip noch nicht verstanden.
#6239238
Lesenswert?

Blumpf schrieb:
> Bei längeren Stripes kommt da schon einiges zusammen an Verlusten.

Nein. Die ERSTE Lampe wird durch die Diode versorgt.

Die erste LED hat eine Versorgungsspannung von 4.3V.
Der 3.3V-Logikpegel vom Controller ist damit innerhalb der Spec.
Alle weiteren LEDs haben eine Versorgungsspannung von 5V.
Der 4.3V-Logikpegel(!) der ersten LED damit innerhalb der Spec.

Man muss andere Menschen nicht grundsätzlich für vollkommen bescheuert 
halten.
#6239341
Lesenswert?

Michael B. (laberkopp) schrieb:

>Du kannst das Ausgangssignal des ATmega mit einem Widerstand (z.B. 4k7
>an 5V)
>
>       +5V
>        |
>       4k7
>        |
>ATmega--+--WS2812
>
>von 3.3V auf 4V hochziehen.

Und ich dachte, CMOS-Gegentaktendstufen (welche es ja sicherlich beim 
ATmega sind) lassen sich nicht einfach durch einen hochohmigen Pullup 
verscheißern.
Da würde ich noch eine Diode direkt in die Ausgangsleitung schalten, um 
den Grundpegel generell zu erhöhen.

Hier mal noch eine schmutzige Variante:
Schalte einfach eine Diode in Durchflußrichtung in die Masseleitung zw. 
LED-Streifen und ATMega (inkl. seinem 3,3V-Regler).
Die 5V-Spannungsquelle muß dann an die LED-seitige Masse.
Damit wird der Grundpegel bzw. dessen Logiksignale um irgendwas um die 
0,6V nach oben verschoben, und man liegt voll im erlaubten Bereich für L 
und H.
Man sollte sich halt nur bewußt sein, daß ATMega-Masse und LED-Masse 
nicht mehr so ganz daselbe ist, wenn man da noch anderen Krimskrams mit 
anschalten will.
Gast #6239353
Lesenswert?

Blumpf schrieb:
> Bei längeren Stripes kommt da schon einiges zusammen an Verlusten. Wenn
> du 5A hast, sind das mindestens 3,5W.

Wenn du 5A hast, ja.
Eine WS2812 hat aber maximal 60mA, mit 0.7V Flussspannung sind das 
gerade mal 42mW. Und du musst ja nur die erste LED in der Kette mit 
etwas weniger Spannung versorgen.  Das ist verkraftbar, spezielle wenn 
man den minimalen Aufwand dafür in Betracht zieht.
Gast #6239779
Lesenswert?

Jens G. schrieb:

> Und ich dachte, CMOS-Gegentaktendstufen (welche es ja sicherlich beim
> ATmega sind) lassen sich nicht einfach durch einen hochohmigen Pullup
> verscheißern.

Naja, es sind im Prinzip natürlich PushPull-Ausgänge, man kann sie aber 
auch als OpenDrain verwenden. Der Trick ist einfach: statt auf "aktiv 
High" schaltet man sie auf "Eingang".

Der OpenDrain-Ausgang wird also insgesamt so realisiert:

PORTXn auf Low initialisieren (nach Reset nichtmal nötig, da das der 
default-Wert ist) und dann nur noch mit DDXn hantieren. 1="Aktiv low"; 
0="high Z". Es ist im zweiten Fall also nur noch der (externe) Pullup 
wirksam.

Dass die Sache bezogen auf das DDXn-Bit invertiert ist, ist kein 
Problem, muss man halt bloß dran denken und entsprechend programmieren.

Blöd ist eher, dass viele Peripherie-Einheiten zwar PORTXn "übernehmen" 
können, um ihre Ausgaben zu tätigen, aber nicht DDXn. Sprich: Dieser 
Trick geht nur für Bit-Banging.

Einige wenige Peripherie-Einheiten haben allerdings auch direkte 
Unterstützung für OpenDrain-Funktionalität eingebaut. TWI und USI (im 
TWI-Mode).
Gast #6239799
Lesenswert?

Wolfgang schrieb:
> Was ist an eine (Schutz)-Diode und einem Pull-up Widerstand halbgar?

Spontan fallen mir zwei Dinge ein: Man muss es im Programm 
berücksichtigen und den Pin statt auf High, auf Eingang konfigurieren. 
Damit funktionieren alle "schönen" Ansteuerungen über DMA & Timer nicht 
mehr.

Außerdem versaust du dir mit einem Pull-Up die Anstiegszeit. Das mag 
funktionieren, aber wenn zwischen Controller & LEDs mal 30cm Kabel 
liegen kann es dir auf die Füße fallen.

Wie gesagt, ich empfinde das als halbgar. Auch als Hobbyist kann man 
solide designen. Also im Fall LED Controller, einen sauberen 
Datenausgang mit Pegelwandler bauen. Gerne mit kleinem Serienwiderstand 
gegen Reflektionen und ner simplen Schutzdiode. Das kostet in den 
Bastler-Stückzahlen "nichts" und man bekommt ein Produkt dass sogar 
langlebiger als kommerzieller Kram ist.
Aber vielleicht habe ich ans "basteln" auch einfach andere Ansprüche.
#6239910
Lesenswert?

c-hater (Gast) schrieb:

>Jens G. schrieb:
>
>> Und ich dachte, CMOS-Gegentaktendstufen (welche es ja sicherlich beim
>> ATmega sind) lassen sich nicht einfach durch einen hochohmigen Pullup
>> verscheißern.
>
>Naja, es sind im Prinzip natürlich PushPull-Ausgänge, man kann sie aber
>auch als OpenDrain verwenden. Der Trick ist einfach: statt auf "aktiv
>High" schaltet man sie auf "Eingang".
>
>Der OpenDrain-Ausgang wird also insgesamt so realisiert:

Ja, kann man machen. Ich glaube aber nicht, daß der TO das so macht, und 
er wurde ja auch nicht darauf hingewiesen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren