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
Schaltplan? Aussagekräftige Fotos vom Aufbau? Vollständiges Beispielprogramm? Sorry, meine Glaskugel ist in reparatur...
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?
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.
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.
Auf deinem Oszi-Bild lese ich was von 2.00V. Soll das der Pegel sein? Dann wäre das zu wenig.
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)
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
Anonym L. schrieb: > Dann müsste es aber noch knapp gehen. 'müsste' und 'knapp'... das ist nicht so gut ;) 0.7 * 5V = 3.5V -> das ist mehr als knapp daneben. 2V sind da weniger als die Hälfte...
Anonym L. schrieb: > Dann müsste es aber noch knapp gehen. Oder gerade eben nicht mehr. Am DI, das ist ein hochohmiger Eingang, muß der gleiche Pegel wie am µC-Port liegen. Sonst ist irgendwas faul.
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?
Anonym L. schrieb: > Es sind 3.6 Volt. Auch eher wenig. Sogar eigentlich fast zu wenig. Nein. Hier fährt gerade ein STM32F 312 Stück WS2812 mit 3V3 und 1MHz ohne Probleme.
Hier fährt gerade ein STM32F 312 Stück WS2812 mit 3V3 und 1MHz ohne Probleme. Also sind die 3.6V kein Problem und sollten klappen? Sorry aber ich will sicher sein:=)
Anonym L. schrieb: > Also sind die 3.6V kein Problem und sollten klappen? Sorry aber ich will > sicher sein:=) Bis jetzt nicht. 100-150 Ohm in der DI Leitung als Sicherheit. Ohne Widerstand ist die Einschaltreihenfolge wichtig, mit Widerstand ist es egal.
:
Bearbeitet durch User
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?
Die 300 Ohm haben dazu geführt, dass vor dem Widerstand 5 und nachher 1V sind, es fliessen also 13mA. Das Signal bei der LED ist aber eben 1V. Habe ich etwas falsch verstanden oder muss das so sein? Es funktioniert immer noch nicht.
>Die 300 Ohm haben dazu geführt, dass vor dem Widerstand 5 und nachher 1V >sind, es fliessen also 13mA. Das Signal bei der LED ist aber eben 1V. Dann sind die 5V am LED Streifen nicht angeschlossen.
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.
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.
:
Bearbeitet durch Moderator
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.
Anonym L. schrieb: > GENIAL. DANKE, das wars..... sehr peinlich. Nööö, passiert schon mal, irren ist menschlich. Genial finde ich, dass du es zugegeben hast.
Marc V. schrieb: > Falls es ein Tipp für mich war: Der Tipp war eher algemeiner Natur. > WS2812 wird mit SPI und DMA gefahren, gerade deswegen wird der STM32 > benutzt und nicht der AVR. Genauso ist es auch beim oben angegebenen Projekt: STM32 mit DMA, aber ohne SPI. Letzteres ist nicht notwendig.
Frank M. schrieb: > Genauso ist es auch beim oben angegebenen Projekt: STM32 mit DMA, aber > ohne SPI. Letzteres ist nicht notwendig. Wie man's nimmt. SPI braucht zwar 4 Mal so viel RAM, dafür werden die bits aber mit genau 1MHz rausgeschoben. RAM ist hier kein Problem aber die Timers werden anderweitig gebraucht. Deswegen.
Den zweiten GND (Pin 22) solltest Du trotzdem anschliessen ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.