Hallo Liebe Leute Habe mir heute so ein dünnes RGB Led Band von der Firma Action gekauft. Mit Controller und für USB Anschluss Habe das mal zerlegt und da sind kleine SMD-Leds drauf mit 4 Anschlüssen. Farben sind nur RGB (kein weiß) (Spannung ca. 4 Volt) Jetzt würde ich gerne wissen, wie könnte ich die selber ansteuern. Habe mal das Signal am Osci angeschaut Das Datenpaket schau so aus: 16 Bits (1Bit hat 1,2 µs Länge) Pause von 3µs 8 Bits Die Dattenpakete kommen alle 100ms Habe mal so nach Leds geschaut, die in Frage kommen könnten: z.B. WS2812 Aber da scheint der Datenstrom durchgehend 24 Bit zu sein. Die scheinen auch 6 Anschlüße zu haben ?! Was könnte das für eine RGB-LED sein ???? Jemand eine Idee ?
:
Bearbeitet durch User
Robert P. schrieb: > Jetzt würde ich gerne wissen, wie könnte ich die selber ansteuern. > Habe mal das Signal am Osci angeschaut > Das Datenpaket schau so aus: > 16 Bits (1Bit hat 1,2 µs Länge) > Pause von 3µs > 8 Bits Da fehlt noch etwas zur Synchronisation. Warum zeigst du keinen Screen Shot > Die Dattenpakete kommen alle 100ms > ... > Jemand eine Idee ? Schick einfach solche Datenpakete, wie du sie auf dem Oszi (mit 'z') gesehen hast. Dann kann dir der Typ egal sein. Zeig einmal ein vernünftiges Bild von den LEDs und verrate die Abmessungen.
:
Bearbeitet durch User
Die laufen unter der Bezeichnung WS2812B 0807 https://files.waveshare.com/wiki/ESP32-S3-Nano/XL-0807RGBC-WS2812B.pdf
Ok, Danke Also ein WS2812er ? Warum sind dann die 16 Bit von den 8 Bit so getrennt oder ist das normal für den ?
Robert P. schrieb: > Also ein WS2812er ? Sehr wahrscheinlich, ja. > Warum sind dann die 16 Bit von den 8 Bit so getrennt Hat nix mit den LEDs selber zu tun, sondern mit der Ansteuerung. Die ist halt Scheisse. Allerdings nicht so Scheisse, dass nix mehr geht. Die WS281x haben nicht wirklich ein starres Timing, sondern reichlich (undokumentierte) Spielräume, die im konkreten Fall offensichtlich von der Ansteuerung teilweise genutzt werden. Hier hat sich jemand mal ausführlich mit diesen Timing-Spielräumen beschäftigt: https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
Robert P. schrieb: > Warum sind dann die 16 Bit von den 8 Bit so getrennt oder ist das normal > für den ? Solange die Pause nicht die Grenze für die Reset-Zeit überschreitet, ist das egal. Robert P. schrieb: > IMG_20251128_223819.jpg p.s. Die USB-Buchse an deinem Oszi hast du gesehen? ;-)
Jede einzelne LED verwendet ein Paket von 24 Impulsen. Das sind 3 Bytes welche die Helligkeit der Farben grün, rot und blau (in dieser Reihenfolge) bestimmen. Jede LED-Farbe kann also Helligkeitswerte von 0 bis 255 annehmen. Das höherwertige Bit wird zuerst übertragen. Eine 0 überträgt man durch einen kurzen HIGH Impuls mit 250 … 380 ns. Eine 1 überträgt man durch einen langen HIGH Impuls mit 750 … 1000 ns. Mit der nachfolgenden LOW Phase muss jedes Bit insgesamt 1250 … 5000 ns lang sein. Nachdem alle LEDs ihre Helligkeitswerte erhalten haben, halte die Daten-Leitung für mindestens 280 µs auf LOW. Dann ändert sich die Helligkeit aller LEDs auf den vorher festgelegten Wert. Dieses Timing ist zu allen Versionen der WS2812 kompatibel.
:
Bearbeitet durch User
Danke ob.s für den Link Danke Nemopuk für die Erklärung Ganz ist mir die Funktionosweise vom dem WS2812 noch nicht klar. Wenn ich z.B. 10 Leds habe (WS2812er) Muss ich dann 10* 24 Bit reinschieben und dann den Reset auslösen und dann werden die Werte auf die 10 Leds durchgeschaltet ? Also alle Leds zuerst laden und dann Reseten?! Oder kann ich eine Led laden, reseten und dann immer um eins weiterschieben lassen ? Bei mir habe ich nämlich immer ein 24Bit Signal und dann 100ms Pause und dann wieder 24Bit. Und es entstehen Lauflichter, Muster usw..
Robert P. schrieb: > Muss ich dann 10* 24 Bit reinschieben und dann den Reset auslösen und > dann werden die Werte auf die 10 Leds durchgeschaltet ? > > Also alle Leds zuerst laden und dann Reseten?! Eher anders herum. Erst resetten, damit alle "wissen", dass jetzt Daten kommen. (ist aber nur meine Vermutung). Robert P. schrieb: > Bei mir habe ich nämlich immer ein 24Bit Signal und dann 100ms Pause und > dann wieder 24Bit. Könnte die Pause nicht auch vorher kommen, und du siehst sie nicht (nach dem Einschalten)? > Und es entstehen Lauflichter, Muster usw.. Naja, das ist ja nur eine Änderung der Helligkeiten (der drei Farben) bei jedem Aktualisierungszyklus). Das Timing ist eigentlich halbwegs gut im Datenblatt ( https://cdn-shop.adafruit.com/datasheets/WS2811.pdf ) auf Seite 4 (graphisch) mit einem Beispiel für drei LEDs beschrieben. Zum Testen habe ich mir einfach mal einen Arduino mit einem Neopixels Beispiel bespielt.
:
Bearbeitet durch User
Robert P. schrieb: > Ganz ist mir die Funktionosweise vom dem WS2812 noch nicht klar. Die einzelnen Bits werden wie eine Zelle betrachtet: Hi:400ns, Lo:850ns => ›0‹ Hi:800ns, Lo:450ns => ›1‹ ' >=50µs (50000ns) Lo wird als Reset erkannt. Dann n*24 Zellen (für n-LEDs) werden am Stück gesendet. Die erste LED greift sich die ersten 24 Zellen und reicht alles Folgende an die dahinter liegende Kette weiter.
:
Bearbeitet durch User
Norbert schrieb: > ' >=50µs (50000ns) Lo wird als Reset erkannt. > Dann n*24 Zellen (für n-LEDs) werden am Stück gesendet. > Die erste LED greift sich die ersten 24 Zellen und reicht alles Folgende > an die dahinter liegende Kette weiter. Sonst würde es wohl kaum "Reset" heißen, sondern eher "Latch" oder so.
Robert P. schrieb: > Wenn ich z.B. 10 Leds habe (WS2812er) > Muss ich dann 10* 24 Bit reinschieben und dann den Reset auslösen und > dann werden die Werte auf die 10 Leds durchgeschaltet ? ja Der Begriff "Reset" ist hier ein bisschen irreführend, aber dafür kann ich nichts.
:
Bearbeitet durch User
Rahul D. schrieb: > auf Seite 4 (graphisch) mit einem Beispiel für drei LEDs beschrieben. ja, diese Diagramm habe ich eben nicht verstanden..... jetzt schon eher. Aber trotzdem lässt sich meine Lichterkette damit nicht erklären. Habe da ein paar hundert Leds in der Kette und es kommen nur einmal 24Bit und dann 100ms Low und dann erst wieder einmal 25 Bit Müssten da dann nicht 100 mal 24Bit kommen und dann Pause (Reset) ?
Robert P. schrieb: > Aber trotzdem lässt sich meine Lichterkette damit nicht erklären. > Habe da ein paar hundert Leds in der Kette und es kommen nur einmal > 24Bit und dann 100ms Low und dann erst wieder einmal 25 Bit > > Müssten da dann nicht 100 mal 24Bit kommen und dann Pause (Reset) ? Nicht wenn die DataIn Eingänge parallel liegen.
Robert P. schrieb: > sind seriell in einer Kette Dann sind's wohl keine WS2812, sondern welche die alle eingehenden Daten einfach weiter geben.
Robert P. schrieb: > Oszi Tolles Bild. Man könnte auch Butterbrotpapier in Bildschirmgröße zurechtschneiden, das dann auf den Bildschirm legen und mit Blei- oder Buntstift abmalen. So machte man das vor 50 Jahren, wenn man keinen Poloroid-Vorsatz für sein Scope hatte.
Ob S. schrieb: > Die WS281x haben nicht wirklich ein starres Timing, sondern reichlich > (undokumentierte) Spielräume, die im konkreten Fall offensichtlich von > der Ansteuerung teilweise genutzt werden. Es ist alles bestens* dokumentiert"! Leider interpretieren die meisten das nur falsch. Norbert schrieb: > Die einzelnen Bits werden wie eine Zelle betrachtet: > Hi:400ns, Lo:850ns => ›0‹ > Hi:800ns, Lo:450ns => ›1‹ Die Lo Zeit ist hier als Minimum zu erachten. Max. Frequenz... 850ns bis knap vor "Reset" 450ns bis knap vor "Reset" *) Die Fehler in den Ersten Dablas, mal außen vor. :}
:
Bearbeitet durch User
Teo D. schrieb: > Die Lo Zeit ist hier als Minimum zu erachten. Max. Frequenz... Nicht laut Datenblatt, und das ist für mich die einzig maßgebliche Instanz. Vom Timing der einzelnen Pulse bzw. Pausen kann jedoch sowohl ›+‹ als auch ›-‹ 150ns abgewichen werden.
Klaus F. schrieb: > Robert P. schrieb: >> Oszi > > Tolles Bild. > > Man könnte auch Butterbrotpapier in Bildschirmgröße zurechtschneiden, > das dann auf den Bildschirm legen und mit Blei- oder Buntstift abmalen. > So machte man das vor 50 Jahren, wenn man keinen Poloroid-Vorsatz für > sein Scope hatte. Najaa.. ein Bild wurde gewünscht und die Timings hatte ich vorher ja schon angegeben.. So ging es halt schneller und einfacher Mit einer hohen Auflösung hättest du vermutlich auch nicht mehr Infos herausgelesen ? --------------------------------- Aber ich habe jetzt meinen Denkfehler gefunden.... (peinlich) Ich hatte das Oszi ja am Ende der Lichterkette angehängt (ups) Am Anfang sieht das natürlich anders aus! Habe jetzt Daten von 9000µs länge Die einzelnen 24 Bit sind 32µs lang Sind also so ca. 280 Leds Die komische Lücke (3µs) von den ersten 16Bit zu den letzten 8 Bit ist noch immer, aber scheint so zu funktionieren.... Also alles klar. Danke für die Antworten! :-) l.G. Robert
Norbert schrieb: > Nicht laut Datenblatt, und das ist für mich die einzig maßgebliche > Instanz. Doch, das steht so im Dabla, man muss es nur richtig lesen können.
Teo D. schrieb: > Norbert schrieb: >> Nicht laut Datenblatt, und das ist für mich die einzig maßgebliche >> Instanz. > > Doch, das steht so im Dabla, man muss es nur richtig lesen können. Ich weiß ja nicht woher dieses Verlangen kommt, ständig persönlich zu werden… Alles zwischen den gezeigten Werten und der magischen 50µs Schwelle ist nicht definiert und gilt deshalb als nicht definiert. Im Sinne von ›Es ist nicht definiert‹
Robert P. schrieb: > Die komische Lücke (3µs) von den ersten 16Bit zu den letzten 8 Bit ist > noch immer Vermutlich wurde da eine 16Bit-SPI-Einheit ohne Hardware-Buffer zur Ausgabe benutzt. Die 3µs sind einfach die Zeit, die bnötigt wird, um das nächste Datenwort in die Hardware zu laden.
Norbert schrieb: > Alles zwischen den gezeigten Werten und der magischen 50µs Schwelle ist > nicht definiert und gilt deshalb als nicht definiert. Im Sinne von ›Es > ist nicht definiert‹ Das sind Bauteiltoleranzen. Das ist ein Dabla, da wird dir nicht vorgeschrieben was DU einhalten must. Da garantiert dir der Hersteller, was für Grenzen das Bauteil einhält. Die Logischen Konsequenzen daraus, musst du schon selber ziehen.
Teo D. schrieb: > Die Logischen Konsequenzen daraus, musst du schon selber > ziehen. Ja, mache ich. Da erschließen sich zwei Möglichkeiten: 1. So wie im Datenblatt beschrieben 2. Ich denke mir einfach etwas aus was mir gerade passt. Einen weiteren Teil wünsche ich mir und den Rest lese ich aus dem Kaffeesatz. Mitternacht, Vollmond, Friedhof, tote Katze, heftig schwenken.
Teo D. schrieb: > Das sind Bauteiltoleranzen. Nein, nicht unbedingt. Es sagt was der Hersteller garantiert. Und wenn er auf die Idee kommt, ein Re-Design des Chips durchzuführen, kann sich das Zeitverhalten der Bauteile ändern. Bei Einhaltung der genannten Zeiten funktioniert dann der neue Chip genauso, ohne dass an der Software etwas geändert werden muss. Robert P. schrieb: > Ich hatte das Oszi ja am Ende der Lichterkette angehängt ... Dann passt vermutlich die Anzahl der gesendeten Datenblöcke nicht zur Anzahl deiner LEDs. Sonst dürfte hinten nichts mehr raus kommen.
:
Bearbeitet durch User
Rainer W. schrieb: > Teo D. schrieb: >> Das sind Bauteiltoleranzen. > > Nein, nicht unbedingt. Es sagt was der Hersteller garantiert. Und wenn > er auf die Idee kommt, ein Re-Design des Chips durchzuführen, kann sich > das Zeitverhalten der Bauteile ändern, bleibt aber innerhalb der laut > Datenblatt garantierten Zeiten. Ja, der Begriff mag hier etwas hacken aber wenn, und das hat er hier mehrfach getan, Bauteilwerte sich ändert, gibts auch ein neues Dabla zu. Erst waren die angegebenen 15ms bis zum Reset, doch nur 5ms... Was so einige MCs und deren Programmierer ins Schwitzen brachte. Dann kam V2 wo die 15ms eingehalten wurden... Mein letzter Stand ist V6. Reset-Time 50ms und was an den LED Strömen geändert o. nur im Dabla korrigiert(?). Ein Abblock-C ist da auch schon verbaut... Oder ist der C erst V7 integriert? PS: V6 scheint die Letzte V zu sein. 280µs bis Reset (sorry das ich hier immer ms angegeben habe) und voller 3,3V Support (zuvor nur 3,5V) und integriertem C. http://world-semi.com/web/userfiles/productfile/WS2812B-2020-V6_V1.0_EN.pdf "RESET time>280μs , it won't cause wrong reset while interruption, it supports the lower frequency and inexpensive MCU."
:
Bearbeitet durch User
Teo D. schrieb: > Ja, der Begriff mag hier etwas hacken aber wenn, und das hat er hier > mehrfach getan, Bauteilwerte sich ändert, gibts auch ein neues Dabla zu. Was meinst du in diesem Zusammenhang mit "hacken"? https://www.google.com/search?q=hacken+bedeutung&oq=hacken Solange die Daten sich innerhalb der im Datenblatt genannten Spezifikationen bewegen, gibt es KEIN neues Datenblatt. Du bemerkst i.d.R. gar nicht, ob ein Chip in einem neuen Prozess hergestellt wurde oder in einer anderen Fab produziert wurde.
Rainer W. schrieb: > Was meinst du in diesem Zusammenhang mit "hacken"? > https://www.google.com/search?q=hacken+bedeutung&oq=hacken Er meint sicherlich "haken". Mit gedehntem "a" gesprochen (und deswegen gerade nicht mit "ck" geschrieben). "Etwas hakt" - es läuft nicht glatt, nicht problemlos
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.


