WS2812 Signal i.O., led leuchtet nicht

OP #4920979
Lesenswert?

Hallo Community

Ich habe ein Beispiel aus der Neopixel Library auf einen selbst 
gemachten Print geladen mit einem aTmega 328 (16MHz). Das Programm 
funktioniert, das Signal am uC-Pin stimmt. Das Signal stimmt auch noch 
am Pin der LED. Es handelt sich um einen LED-Strip.Die Led sollte grün 
leuchten und das Signal ist folgendermassen: 10010110, dann folgen viele 
nullen. Die 50us Pause stimmen auch, es sind sogar 70. Die Frequenz 
stimmt ebenfalls, das Verhältnis der Bits auch (also die Verhältnisse 
für 0 und 1). Die Led hat auch eine Speisung von 5VDC. Das Signal wird 
nach der LED auch nicht weitergegeben, also am Ausgang kommt nichts 
raus.
Die Led ist nicht kaputt, beim Einschalten leuchtet sie kurz zufällig 
auf. Um das auszuschliessen habe ich diese Led abgeschnitten und es mit 
der nächsten versucht. Es klappt immer noch nicht.

Hat jemand erfahrung damit?

Ich habe den LEDstrip auf Aliexpress gekauft, es könnte sich also auch 
um gefälschte leds handeln, die eine andere Ansteuerung brauchen?...

Falls ihr noch mehr wissen wollt, fragt einfach.


Vielen Dank
#4921045
Lesenswert?

Anonym L. schrieb:
> Das Programm funktioniert, das Signal am uC-Pin stimmt.
> Das Signal stimmt auch noch am Pin der LED.
Sicher?

> Es handelt sich um einen LED-Strip. Die Led sollte grün leuchten
Du meinst die erste LED?

> und das Signal ist folgendermassen: 10010110, dann folgen viele nullen.
Tja..., wieviele denn?

> Die 50us Pause stimmen auch, es sind sogar 70.
Wann machst du die Pause?

> Die Frequenz stimmt ebenfalls, das Verhältnis der Bits auch (also die > 
Verhältnisse für 0 und 1).
Kannst du die Frequenz mal konkret nennen?

> Die Led hat auch eine Speisung von 5VDC.
Du meinst sicher den ganzen Streifen?

> Das Signal wird nach der LED auch nicht weitergegeben, also am Ausgang kommt
> nichts raus.
Dazu nochmal:
Anonym L. schrieb:
> das Signal ist folgendermassen: 10010110, dann folgen viele nullen.
Wieviele Nullen?
#4921058
Lesenswert?

Anonym L. schrieb:
> Das Signal wird
> nach der LED auch nicht weitergegeben, also am Ausgang kommt nichts
> raus.

Wenn nur eine Led angesteuert wird, also nur 24Bit ausgegeben werden, 
wird auch nichts weitergegeben.

Anonym L. schrieb:
> Um das auszuschliessen habe ich diese Led abgeschnitten und es mit
> der nächsten versucht.

Das ist auch sicher DI und GND ist auch verbunden?
Nicht, daß ich dich für blöd halte, aber sowas kann jedem passieren.
OP #4921080
Lesenswert?

Wie viele nullen? 16. Also mit dem Signal, das ich bereits 
aufgeschrieben habe 24. Also 24bit. Falls nötig kann ich davon auch noch 
ein foto machen, wenn jemand nachzählen will;)


Die frequenz ist 800Khz.(plus minus 3khz, das DPO misst nicht sooo 
genau)


Du meinst die erste LED?
Nein alle, also die ersten 16. Es sind mehr auf dem streifen aber zum 
testen halt.

Du meinst sicher den ganzen Streifen?
Ja.

Das ist auch sicher DI und GND ist auch verbunden?
Beim neustarten der Speisung leuchten zufällig Leds auf dem streifen in 
zufälligen Farben(nur volle, keine Mischungen.) Also gehe ich davon aus, 
dass gnd angeschlossen ist. DI habe ich am Pin der Led gemessen.

Danke für die schnellen antworten.
Angehängte Dateien:
OP #4921103
Lesenswert?

Es sind 3.6 Volt. Auch eher wenig. Sogar eigentlich fast zu wenig. Danke 
für den Tipp. Weisst du woher das kommen kann?

Es sind 2V pro Häusschen und der Trigger ist auf 2V.


Breaking news:

Im leerlauf(ohne angeschlossene Led) kommt das signal mit 5V daher.


Im Datenblatt steht, dass bereits 0.7 Volt als High Pegel erkannt 
werden.(Seite 3 mittlere Tabelle)
#4921129
Lesenswert?

1
   pixels.setPixelColor(i, pixels.Color(150,150,0)); // Moderately bright green color.
Wenn ich mir den Funktionsnamen so ansehe, wird hier sicherlich eine 
Farbe gesetzt ;-)
Auf Grund der Verteilung könnte man 'gelb' vermuten, die grüne LED 
leuchtet etwas heller als die rote, also immer noch 'grün' als 
Endfarbe... _Aber:_ Das passt nicht zur Übertragung. Es müsste dann 
zweimal '0b10010110' gesendet werden. Danach acht Nullen. (Und das ganze 
16x)

Anonym L. schrieb:
> Im Datenblatt steht, dass bereits 0.7 Volt als High Pegel erkannt
> werden.(Seite 3 mittlere Tabelle)

nee, nee...
das sind 70% von der anliegenden Versorgungsspannung!

Anonym L. schrieb:
> Im leerlauf(ohne angeschlossene Led) kommt das signal mit 5V daher.
Da würde ich auf einen Kurzschluss tippen.
OP #4921131
Lesenswert?

das sind 70% von der anliegenden Versorgungsspannung!

Dann müsste es aber noch knapp gehen.

Ja das mit der Farbe stimmt, ich habe es dann wieder auf nur 
grün(0,150,0) geändert. Sorry, blöder fehler, habe ich vergessen zu 
erwähnen. Ich werde mich jetzt aber mal drauf konzentrieren den 
Spannungsabfall zu finden.
Gast #4921145
Lesenswert?

Anonym L. schrieb:
> Es sind 3.6 Volt. Auch eher wenig. Sogar eigentlich fast zu wenig. Danke
> für den Tipp. Weisst du woher das kommen kann?
>
> Im leerlauf(ohne angeschlossene Led) kommt das signal mit 5V daher.

Also wird der Ausgabepin über Gebühr belastet.
Liegen die 5V Versorgung überhaupt noch an der LED an?
OP #4921200
Lesenswert?

Damit der Ausgang des µC 1.4V einbricht muss da ein erheblicher Strom
fliessen. Und diese Senke gilt es zu finden.

Den Streifen versehentlich am falschem Ende angeschlossen?


------------------------------------------------------------------------ 
-----


GENIAL. DANKE, das wars..... sehr peinlich. So offensichtlich, dass ich 
nicht mal dran gedacht habe.

VIELEN DANK an alle, die sich für mich Zeit genommen haben.
Moderator Persönliche Seite #4921310
Lesenswert?

Marc V. schrieb:
> Hier fährt gerade ein STM32F 312 Stück WS2812 mit 3V3 und 1MHz ohne
>  Probleme.

Bei mir funktionierts auch. Aber sobald man die LED-Spannung auf etwas 
über 5,2V bringt, reichen die 3V3 als Pegel nicht mehr und es gibt 
zumindest Aussetzer im Streifen. Das ist nachvollziehbar.

Deshalb ein Tipp: Setze den Ausgabe-Pin des STM32 auf Open-Drain und 
benutze einen Pullup von 1,8k (an 5V) vor der ersten LED.

Wird bei dem WordClock mit WS2812-Projekt mittlerweile hundertfach 
so gemacht, nachdem mehrere User meldeten, dass bei zu hoher 
Betriebsspannung (>= 5,2V) die LEDs teilweise ausfielen. Seit dem Ändern 
auf Open-Drain ist Ruhe und es läuft zuverlässig.
(Firma: Vescomp) #4921502
Lesenswert?

Frank M. schrieb:
> Bei mir funktionierts auch. Aber sobald man die LED-Spannung auf etwas
> über 5,2V bringt, reichen die 3V3 als Pegel nicht mehr und es gibt
> zumindest Aussetzer im Streifen. Das ist nachvollziehbar.

 Ja, die 3V3 reichen knapp für 5V. Die Schwelle für Log.1 hängt
 (leider) mit VCC zusammen.

> Deshalb ein Tipp: Setze den Ausgabe-Pin des STM32 auf Open-Drain und
> benutze einen Pullup von 1,8k (an 5V) vor der ersten LED.

 Falls es ein Tipp für mich war:
 WS2812 wird mit SPI und DMA gefahren, gerade deswegen wird der STM32
 benutzt und nicht der AVR.
 Am Anfang noch 6K8 als Pullup benutzt, jetzt aber nicht mehr, vor
 allem da die DI Leitung kaum 25 cm hat.

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