Forum: Mikrocontroller und Digitale Elektronik WS2812 flackern


von danny L. (da_danny)


Lesenswert?

Hallo Zusammen,

ich bin hier mit meiner Pixelmatrix am verzweifeln!

Ich habe eine Matrix aus 48 WS2812B gebaut. Die LEDs sind alle einzeln 
auf eine Holzplatte im Abstand von 5cm geklebt und mit 1,5mm^2 
verkabelt. Ich speise an 4 Stellen (quasi jede Zeile). Gesteuert wird 
das ganze mit einem STM32 Nucleo und für die Pegelanpassung (3,3V=>5V) 
der Signalleitung habe ich den HEF4050 verwendet. Spannungsversorgung 
ist ein 5V/4A Steckernetzteil.

So nun zum eigentlichem Problem: wenn ich die Geschichte nur mit dem 
Steckernetzteil betreibe flackern die LED...manchmal sporadisch....oder 
wenn ich mit der Hand in die Nähe der Schaltung komme => EMV!?

Wenn die ganze Geschichte dann noch über USB mit dem Rechner verbinde 
geht das ganze einwandfrei. Gleiches gilt beim Oszi; sobald ich die 
Masse der Probe anschliesse ist das Flackern weg! Während der 
Entwicklung ist mir das gar nicht aufgefallen, weil das Nucleo Board ja 
immer zum Flashen am Rechner angeschlossen war.

Was ich schon probiert habe:
- alles nachgelötet
- 300Ohm R in die Signalleitung
- dicken Kondensator in die Versorgung
- anderes Steckernetzteil
- geschirmte Datenleitung
ALLES OHNE ERFOLG!

Kann mir da bitte wer weiter helfen?
Danke schon mal!

Danke
danny

: Bearbeitet durch User
von Leo B. (luigi)


Lesenswert?

Schalung? Bilder? Input?

Beschreiben ist zwar schön, aber manchmal sagen Bilder mehr als 1000 
Worte!

von danny L. (da_danny)


Angehängte Dateien:

Lesenswert?

Hallo,

naja, so wirklich viel "Schaltung" gibts eigentlich nicht. Ich habe den 
HEF4050 Pegelwandler und nicht wie in meiner Schematic 4504 verwendet... 
der andere war nicht in Eagle zu finden.

Ciao
danny

von dummy (Gast)


Lesenswert?

Du kannst doch nicht die Ausgänge vom 4050 an GND legen.

von danny L. (da_danny)


Lesenswert?

Ups... da hat sich beim Eagle Klickern ein Fehler eingeschlichen...sind 
nur die Eingänge!

von Florian F. (flof3000)


Lesenswert?

Im Datenblatt der WS2812b ist bei jeder LED noch ein 100nF Kondensator 
zwischen Ground und Supply dabei.

von danny L. (da_danny)


Lesenswert?

Richtig. Der Kondensator ist schon mit auf dem Stripe direkt neben jeder 
LED drauf.

von Benedikt P. (bepa)


Lesenswert?

Ein ähnliches Problem hatte ich auch mal.
Nachdem ich dann für die ca. 60cm lange Signalleitung vom Controller zur 
ersten LED abgeschirmtes Kabel genommen habe, ging es dann.

Gruß
Benedikt

von danny L. (da_danny)


Lesenswert?

Hallo Benedikt,

das habe ich leider auch schon probiert. Mikrofonkabel: Schirm auf Masse 
und Seele auf DI. Leider ohne Erfolg.

von Erwin R. (er-tronik)


Lesenswert?

CMOS 4050 benutzt? Der ist ja nicht besonders schnell für das WS2812 
Signal und wird bei 800 kHz die Signalflanken schon ganz schön 
verfälschen. Versuch einfach mal diesen Chip wegzulassen, ich habe schon 
so manche WS2812 mit 3,3V Signalpegel ohne Probleme angesteuert. Oder 
setze wenigstens einen schnellen 74HC-Typ ein. Und ganz wichtig, am 
besten den Stripe von beiden Seiten mit Strom versorgen. Die WS2812 
reagieren ziemlich empfindlich mit Flackern, wenn die Spannung zum Ende 
des Stripes hin zusammenbricht. Der Spannungsabfall über die recht 
dünnen Leiterbahnen ist schon enorm.

von Frank K. (fchk)


Lesenswert?

Dein Aufbau ist ungünstig.

Denke daran, dass Du immer mit StromKREISen arbeitest. Heißt also: wenn 
der Strom über eine einzelne Signalleitung irgendwo hin fließt, muss er 
auch irgendwo wieder zurück kommen. Damit hast Du eine Leiterschleife. 
Je größer die durch diese Leiterschleife aufgespannte Fläche ist, desto 
leichter können Störungen einstreuen - Du hast ja eine Spule mit einer 
Windung, und ein durch eine zweite solche Spule erzeugtes Magnetfeld 
kann eine Spannung in dieser Spule induzieren. Das willst Du hier nicht. 
Daher machst Du die Fläche der Leiterschleife minimal, indem Du der 
einzelnen Signalleitung noch eine zweite Leitung für den Rückweg über 
Ground spendierst - am Besten noch verdrillt.

So, mit dieser Information gehst Du jetzt hin und identifizierst jede 
mögliche Leiterschleife, um die durch sie aufgespannte Fläche zu 
minimieren.

fchk

von danny L. (da_danny)


Angehängte Dateien:

Lesenswert?

@Erwin: danke für den Hinweis; ich werde gleich mal einen HCT08 testen, 
sowas habe ich noch da und sollte schneller sein.

@fchk: Mit "Signalleitung" meinst du die Serielle Datenleitung? Im Bild 
ist die Signalleitung Gelb eingezeichnet, sie geht quasi von Zeile zu 
Zeile. Zuleitung für die Versorgung habe ich alle 4 Pixel.

Mit "indem Du der einzelnen Signalleitung noch eine zweite Leitung für 
den Rückweg über Ground spendierst - am Besten noch verdrillt" meinst du 
ich soll die Datenleitung schirmen?

Danke an alle!

von Leo B. (luigi)


Lesenswert?

Ich komm zwar grad nicht zu 100% mit, aber lange signalleitungen (> 
30cm) sind bei dem Protokoll leider sehr Kritisch. Die WS2812 reagieren 
höchst empfindlich auf Jitter im Signal (kann u.A. durch rauschen 
verursacht werden).
Und bei deiner Verkabelung: Alle Paar LEDs mit eigener Spannung zu 
versorgen ist zwar ein guter Gedankenansatz, aber wenn du dabei 
zumindest den GND nicht trennen würdest wäre das schon sehr 
empfehlenswert. Ich würde allerdings alle 3 Kupferbahnen des Stripes 
kontaktieren und einfach zusätzliche "Einspeisepunkte" anlöten, wenn du 
verstehst was ich meine.

: Bearbeitet durch User
von danny L. (da_danny)


Angehängte Dateien:

Lesenswert?

@Leo: Danke für den Tip. Mit Einspeisepunkt emeinst du 5V UND GND 
einspeisen (wie der ersten Zeile von verkabelung1.png) oder NUR 5V (wie 
inder 2. Zeile)?

von Frank K. (fchk)


Lesenswert?

danny L. schrieb:

> @fchk: Mit "Signalleitung" meinst du die Serielle Datenleitung? Im Bild
> ist die Signalleitung Gelb eingezeichnet, sie geht quasi von Zeile zu
> Zeile. Zuleitung für die Versorgung habe ich alle 4 Pixel.

Das ist der erste Kandidat. Im Prinzip geht es um jede Leitung, auch um 
die Stromversorgung. Auch hier musst Du versuchen, die Fläche innerhalb 
eines jeden Stromkreises zu minimieren, indem Du Hin- und Rückleitung 
möglichst eng beieinander hältst. Mit dieser Strategie kannst Du viele 
EMV-Probleme vermeiden.

> Mit "indem Du der einzelnen Signalleitung noch eine zweite Leitung für
> den Rückweg über Ground spendierst - am Besten noch verdrillt" meinst du
> ich soll die Datenleitung schirmen?

Ein geschirmtes Kabel ist nicht notwendig, verdrillen reicht hier 
vollkommen.

Literaturempfehlung:
http://www.amazon.de/Trilogie-induktiven-Bauelemente-Applikationshandbuch-HF-Schaltungen/dp/3899291514

fchk

von Ain A. (ain)


Lesenswert?

Da du über den Software Teil schon hinaus bist wahrscheinlich 
uninteressant:
Beitrag "neue ws2811 Lib + Anwendungsfall"

Ich habe die Erfahrung gemacht, dass der erste Pixel in einer Reihe 
während des Einbaus gerne mal kaputt geht (EMV?, Overshoot?). Diese 
kaputten Pixel gehen dann manchmal noch teilweise, jedoch mit allerhand 
Fehlern. Ersten Pixel austauschen ist die Lösung.

Auch mag der erste Pixel es gar nicht, wenn man ihm in eingeschaltenem 
Zustand die Datenleitung aus und einsteckt.

Pegelanpassung braucht man auch unbedingt, da die meisten neuen ws2812 
nicht mehr mit 3,3V funktionieren.

: Bearbeitet durch User
von Wolle (Gast)


Lesenswert?

Ein ähnliches Problem hatte ich bei mir auch.

Nachdem ich die Datenleitung mit GND verdrillt hatte und einen 300 Ohm R 
in die Datenleitung gelegt hatte hatte ich immer noch ein Flackern in 
den LEDs, manchmal auch buntes "Kauderwelsch".

Das Flackern ging erst mit einer anderen Versorgungsschaltung weg 
(Strips à 30 LEDs; 5V am einen Ende, GND am anderen -> alle gleich hell, 
kein Flackern)

Ansonsten kannst du noch ein bisschen mit deinem Netzteil spielen. Ich 
hatte mein 5V Netzteil auf maximum gestellt (ca. 5,5V) um den Abfall auf 
der Leitung auszugleichen, ging erst gar nicht, dann mit beidseitiger 
Versorgung nur buntes Durcheinander. Spannung runter auf ca. 4,8V -> 
Super.
Die WS2811-Chips scheinen da sehr empfindlich zu sein.

BTW: mein Signal kommt direkt aus einem 3,3V uC und das funktioniert bei 
mir super (Klingeldraht, ca. 50cm) Nach der ersten LED ist die 
Datenleitung ohnehin auf 5V.

Beim Versuchen auf dem Steckbrett hat sich auch gezeigt das der 300 Ohm 
Widerstand nur dann etwas bringt wenn er ganz nah am uC hängt. Bei mir 
hab ich den R an die Platine gelötet, und daran das Kabel.
Vorher hatte ich den uC und den Widerstand im Steckbrett und diese 10mm 
zwischen den beiden machen tatsächlich noch einen Unterschied.
Oszi hilft hier auch weiter...

von danny L. (da_danny)


Lesenswert?

Ich habs in den Griff bekommen! Folgende Massnahmen haben den Erfolg 
gebracht:
1. Ersetze 4050 durch HCT08 für die Pegelanpassung
2. ALLE Datenleitungen sind jetzt geschirmt! auch die kurze Leitung vom 
STM32 zum HCT08

Das Flackern ist jetzt (fast) weg; wenn ich mit dem Finger die Seele der 
Datenleitung berühre (wo sie frei liegt) fackert es immer noch, aber 
damit kann ich leben ;)

Nur noch so zur Info: bei den neuen WS2812B brauchts definitiv eine 
Pegelanpassung! mit 3,3V passiert da gar nichts.

VIELEN DANK IN DIE RUNDE!!!

von da_danny (Gast)


Lesenswert?

Nur mal so interessehalber: wie würdet/habt ihr die Stripes mit Spannung 
versorgt?
Einspeisung nur am Anfang des Stripes von Masse und VCC, zusätzlich 
dazwischen noch VCC einspeisen, von beidem Seiten mit Masse und 
VCC...ganz anders?

Es gibt ja das Problem mit Spannungsabfall bei den "hinteren" LEDs und 
daraus resultierende Farbveränderung...

Danke für die Infos.
Danny

von Frank K. (fchk)


Lesenswert?

da_danny schrieb:

> Es gibt ja das Problem mit Spannungsabfall bei den "hinteren" LEDs und
> daraus resultierende Farbveränderung...

Querschnitte der Spannungsversorgung vergrößern

von danny L. (da_danny)


Lesenswert?

Frank K. schrieb:
> da_danny schrieb:
>
>> Es gibt ja das Problem mit Spannungsabfall bei den "hinteren" LEDs und
>> daraus resultierende Farbveränderung...
>
> Querschnitte der Spannungsversorgung vergrößern

Hmm...klar..und wie? Die Leiterbahnen auf den Stripes kann ich schlecht 
vergrößern ;)

von Frank K. (fchk)


Lesenswert?

danny L. schrieb:
> Frank K. schrieb:
>> da_danny schrieb:
>>
>>> Es gibt ja das Problem mit Spannungsabfall bei den "hinteren" LEDs und
>>> daraus resultierende Farbveränderung...
>>
>> Querschnitte der Spannungsversorgung vergrößern
>
> Hmm...klar..und wie? Die Leiterbahnen auf den Stripes kann ich schlecht
> vergrößern ;)

Eine Parallelschaltung zu einer Versorgungsleitung mit 1.5 oder 2.5mm^2 
Cu-Volldraht sollte Dich nicht vor Probleme stellen. Bei 2.5mm^2 hast Du 
pro Meter einen Widerstand von 7 mΩ, d.h. bei 1 A Stromstärke verlierst 
Du pro Meter 7 mV.

Rechne aus: Drahtwiderstand R=l/A*0.0178 Ωmm^2/m
l=Drahtlänge in m; A=Querschnitt in mm

Denke aber daran, dass der Strom auf der 5V-Schiene auch wieder auf der 
Masseschiene wieder zurück muss, d.h. Du hast bei Deiner Lichterkette 
pro Meter Länge zwei Meter Kupferkabel und damit zweimal den 
Spannungsverlust.

von Wolle (Gast)


Lesenswert?

> Hmm...klar..und wie? Die Leiterbahnen auf den Stripes kann ich schlecht
> vergrößern ;)

Eben. Das, und nicht die Kabel zu der Leiterbahn stellt den 
"Flaschenhals" dar. Daher 5V von der einen Seite des Srips, GND von der 
anderen. So haben alle LEDs des Strips die gleiche Leiterbahn-länge und 
sind immerhin gleich hell.
Zumindest bei kurzen parallelen Stücken geht super. Bei einem 5m langen 
Streifen muss man natürlich dazwischen auch nochmal rein.

Beitrag #4981173 wurde von einem Moderator gelöscht.
Beitrag #4981176 wurde von einem Moderator 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.