Nachdem ich schon vor zwei Jahren beobachtet habe*, dass der Zusammenhang zwischen PWM-Wert und Helligkeit in der WS2812 nicht linear ist, habe ich heute noch einmal ein paar Messungen gemacht. Dazu habe ich einen umgebungslichtsensor sensor genutzt (BH1750), um die zeitlich gemittelte Helligkeit von unterschiedlichen RGB LEDs zu messen. Das Ergebnis ist im angehängten Plot zu sehen. SK6812 und TX1812 bilden den PWM Setzwert linear auf die Helligkeit ab, während die WS2812 bei kleinen Werten einen geringeren Anstieg hat bei höheren Werten aufholt. Technische ist das anscheinend realisiert, in dem der 8 bit Eingangswert in einen 11bit PWM-Wert umgerechnet wird. Vermutlich will man so erreichen, dass das Dimming für niedrige PWM Werte besser mit der wahrgenommenen Helligkeit skaliert (Gamma). Allerdings handelt es sich nicht um eine echte Gamma-Funktion, was dazu führt, dass die Farbwidergabe ungenau wird. Hat jemand eine Idee, was das für eine Abbilungsfunktion sein könnte? Sie muss sich auf jeden Fall einfach in Hardware umsetzen lassen. Oder was das ganze sonst soll? Interessant ist, dass es im Datenblatt seit 10 Jahren nicht erwähnt wird... *https://cpldcpu.wordpress.com/2020/12/19/power-analysis-probing-ws2812-rgb-leds/
Tim . schrieb: > Dazu habe ich einen umgebungslichtsensor sensor genutzt (BH1750), um die > zeitlich gemittelte Helligkeit von unterschiedlichen RGB LEDs zu messen. > Das Ergebnis ist im angehängten Plot zu sehen. Vergiss' deine Messungen. Oder die Ansteuerung deiner WS2812. > Technische ist das anscheinend realisiert, in dem der 8 bit Eingangswert > in einen 11bit PWM-Wert umgerechnet wird. Nein. Die WS2812 haben keinerlei Gammakorrektur. Richtig angesteuert, ist der Zusammenhang zwischen Helligkeit und PWM-Wert linear. > Interessant ist, dass es im Datenblatt seit 10 > Jahren nicht erwähnt wird... Liegt daran, dass es eine derartige Funktion halt auch wirklich nicht gibt.
c-hater schrieb: > Tim . schrieb: > >> Dazu habe ich einen umgebungslichtsensor sensor genutzt (BH1750), um die >> zeitlich gemittelte Helligkeit von unterschiedlichen RGB LEDs zu messen. >> Das Ergebnis ist im angehängten Plot zu sehen. > > Vergiss' deine Messungen. Oder die Ansteuerung deiner WS2812. Die Messungen sind korrekt. Das Verhalten lässt sich sowhl über den PWM (siehe Link), als auch über die Helligkeit (siehe plots) beobachten. >> Technische ist das anscheinend realisiert, in dem der 8 bit Eingangswert >> in einen 11bit PWM-Wert umgerechnet wird. > > Nein. Die WS2812 haben keinerlei Gammakorrektur. Richtig angesteuert, > ist der Zusammenhang zwischen Helligkeit und PWM-Wert linear. Falsch. Bitte selber nachmessen.
Tim . schrieb: > Die Messungen sind korrekt. Dann passt die Ansteuerung wohl nicht. > Falsch. Bitte selber nachmessen. Vor Jahren bereits erledigt, wenn auch eigentlich in einem anderen Zshg.
Hmm das Thema kommt mir irgendwie bekannt vor. Gab es nicht mal eine Frage, nach welchem Strom einer bestimmten Helligkeit bei der WS2812 entspricht? Was sich dann am Ende auch als ziemlicher Blödsinn heraus gestellt hat.
c-hater schrieb: > Tim . schrieb: > >> Die Messungen sind korrekt. > > Dann passt die Ansteuerung wohl nicht. Doch, denn die Referenzbauteile verhalten sich linear. >> Falsch. Bitte selber nachmessen. > > Vor Jahren bereits erledigt, wenn auch eigentlich in einem anderen Zshg. Zeig doch mal Deine Messungen.
Tim . schrieb: >> Dann passt die Ansteuerung wohl nicht. > > Doch, denn die Referenzbauteile verhalten sich linear. Was'n das für'n Schwachsinn? Die Referenzbauteile werden doch wohl hoffentlich anders angesteuert als die WS2812? Also ich jedenfalls würde sowohl SK6812 als auch TX1812 anders ansteuern als WS2812, aus dem einfachen Grund, weil das UNUNMGÄNGLICH ist...
c-hater schrieb: > Was'n das für'n Schwachsinn? Die Referenzbauteile werden doch wohl > hoffentlich anders angesteuert als die WS2812? Also ich jedenfalls würde > sowohl SK6812 als auch TX1812 anders ansteuern als WS2812, aus dem > einfachen Grund, weil das UNUNMGÄNGLICH ist... Die Bauteile unterstützen das gleiche Protokoll mit kompatiblem Timing. Daher ist die Ansteuerung identisch.
Tim . schrieb: > Die Bauteile unterstützen das gleiche Protokoll mit kompatiblem Timing. Das ist ja mal 'ne spannende Behauptung. Ich sehe da nämlich ganz erhebliche Unterschiede.
c-hater schrieb: > Das ist ja mal 'ne spannende Behauptung. Ich sehe da nämlich ganz > erhebliche Unterschiede. Bitte erhelle uns
c-hater schrieb: > Tim . schrieb: > >> Die Bauteile unterstützen das gleiche Protokoll mit kompatiblem Timing. > > Das ist ja mal 'ne spannende Behauptung. Ich sehe da nämlich ganz > erhebliche Unterschiede. Bitte konkrete Beispiele.
ok,die verschiedenen data transmission times für low und high unterscheiden sich marginal
Also, mit ein wenig googlen findet man auch weitere Referenzmessungen zur WS2812. Da sind sie stehst linear. Somit wohl doch ehr ein Problem mit deinem Aufbau? Wie steuerst du die WS2812 an? Ein paar Bibliotheken bieten zum Beispiel eingebaute Gamma Korrektur.
Labdoc schrieb: > Also, mit ein wenig googlen findet man auch weitere Referenzmessungen > zur WS2812. Da sind sie stehst linear. Somit wohl doch ehr ein Problem > mit deinem Aufbau? Hast Du da einen Link? > Wie steuerst du die WS2812 an? Ein paar Bibliotheken bieten zum Beispiel > eingebaute Gamma Korrektur. Ws2812_light library, bzw. RP2040 PIO im neuen Aufbau. Beide geben direkt die Rohdaten aus.
:
Bearbeitet durch User
c-hater schrieb: > Das ist ja mal 'ne spannende Behauptung. Ich sehe da nämlich ganz > erhebliche Unterschiede. Was hat denn die Übertragung der Daten mit dem mittleren Lichtstrom zu tun? Solange der digitale Wert für die Helligkeitssteuerung heil beim LED-Controller ankommt, ist doch völlig egal, wie das Protokoll den Wert im Detail überträgt.
Labdoc schrieb: > http://rgb-123.com/ws2812-color-output/ Interessant! Der Plot zeigt genau die gleiche Nichtlinearität, wie man am Knick um den PWM-Wert 25 herum sehen kann. (Eigentlich sogar noch schlimmer, da deutlich droop im höheren Bereich sichtbar ist. Wahrschienlich keine gute Stromversorgung, oder self-heating) http://ohararp.com/wp/wp-content/uploads/2013/05/FullRGB.jpg > "You can see that for the most part the output is fairly linear over the full 8 bit pwm range of the WS2812.FullRGB" "Fairly linear" ist halt nicht ganz linear.
:
Bearbeitet durch User
Labdoc schrieb: > http://rgb-123.com/ws2812-color-output/ Es fehlt eine Messung zur Prüfung der Linearität des TCS34717 (z.B. über geometrische Abschwächung).
Stimmt, war mir gar nicht aufgefallen, dass da unten auch ein Knick ist.
Wenn es tatsächlich nur um die kleine Nichtlinearität zwischen 0 und 20/255 handelt: Das hat wahrlich nichts mit Gammakorrektur zu tun. Gammakorrektur bedeutet eine exponentielle Kennlinie über den gesamten Bereich. Ich denke, dass das weitgehend bekannt hier ist. Diese kleine Nichtlinearität halte ich schlicht und ergreifend für einen ungewollten Effekt, der sich nur mit erhöhtem Aufwand in der LED vermeiden ließe. Oder beim Design einfach verschlampt und nicht erkannt oder als irrelevant eingestuft wurde. Erklären kann ich ihn nicht, einen Sinn sehe darin ich auch nicht.
Der Zahn der Zeit (🦷⏳) schrieb: > ... einen Sinn sehe darin ich auch nicht. Sinn wäre, dass sich die Helligkeit im unteren Bereich feiner einstellen lässt.
Wolfgang schrieb: >> ... einen Sinn sehe darin ich auch nicht. > > Sinn wäre, dass sich die Helligkeit im unteren Bereich feiner einstellen > lässt. Hmmmm... Wenn man das angestrebt hätte, hätte man doch wohl keine fußkranke Kennlinie, sondern eine anständige Gamma-Charakteristik realisiert. Aber vielleicht haben die Designer später auch gedacht, "Hey guys, that's not a bug, it's a feature!" (Natürlich in Japanisch und korrekt gegendert.) Mich würde mal interessieren, wie die Kennlinie bei den LED-Panels, mit denen ganze Video-Bildschirme realisierbar sind, aussieht. Bei denen wird ja extern durch die Ansteuerung die PWM definiert. Daher sollte die (weitgehend) linear sein.
Der Zahn der Zeit (🦷⏳) schrieb: > Aber vielleicht haben die Designer später auch gedacht, "Hey > guys, that's not a bug, it's a feature!" ... und dann hätten sie es auch im Datenblatt beschrieben!
Ich vermute dass der flache Verlauf bei niedrigen Werten auf einen langsamen Stromanstieg der internen Konstantstromquellen zurückzuführen ist. Erst wenn die ON-Zeit der PWM größer ist als die Anstiegszeit der KSQ setzt eine Linearität ein.
Magnus M. schrieb: > Ich vermute dass der flache Verlauf bei niedrigen Werten auf einen > langsamen Stromanstieg der internen Konstantstromquellen zurückzuführen > ist. Erst wenn die ON-Zeit der PWM größer ist als die Anstiegszeit der > KSQ setzt eine Linearität ein. So einen Effekt gibt es bei der WS2812B-V5 auch, und der führt dazu, dass die LED bei PWM settings <3 gar nicht einschaltet. Die Nichtlinearität oben wird allerdings im Digitalteil erzeugt, denn sie beeinflusst direkt den Duty-Cycle des Signals.
Habe meine Messungen hier zusammengefasst: https://cpldcpu.wordpress.com/2022/08/15/does-the-ws2812-have-integrated-gamma-correction/
Tim . schrieb: > SK6812 und TX1812 bilden den PWM Setzwert linear auf die Helligkeit ab, > während die WS2812 bei kleinen Werten einen geringeren Anstieg hat bei > höheren Werten aufholt. Bei sehr kurzem Tastgrad der PWM dominiert die Anstiegs- und Abfallzeit des Pulses. Damit ist die Zeit, in der die Flußspannung der LED überschritten wird und diese leuchtet, kürzer als die Einschaltdauer, und die LED erscheint dunkler (oder leuchtet gar nicht mehr). Dieser Effekt hängt von Exemplarstreuungen und von der Temperatur des Bauteils ab.
Tim . schrieb: > Habe meine Messungen hier zusammengefasst: Diese Fußkrankheit der Kennlinie als Gamma-Korrektur zu bezeichnen, wäre wirklich Blödsinn. Ich würde in der Überschrift eher formulieren "The WS2812 has no integrated Gamma-Correction". Sonst ist sie irreführend. Magnus M. schrieb: > Ich vermute dass der flache Verlauf bei niedrigen Werten auf einen > langsamen Stromanstieg der internen Konstantstromquellen zurückzuführen > ist. Erst wenn die ON-Zeit der PWM größer ist als die Anstiegszeit der > KSQ setzt eine Linearität ein. Das klingt sehr plausibel! Ich hatte schon an Kapazitäten gedacht, aber dann würde die Kennlinie anders aussehen. Dieser absichtlich langsame Stromanstieg wäre auch ein plausibler Grund, um die die Stromtransienten der PWM (EMV durch induktive Anteile der Stromversorgung) zu reduzieren und damit auch mit weniger Stützkondensatoren auszukommen. Ich wette, deine Vermutung stimmt! Das müsste sich gut mit Oszillografieren der Stromaufnahme der LED bzw. des LED-ICs nachweisen lassen!
Der Zahn der Zeit (🦷⏳) schrieb: > Tim . schrieb: >> Habe meine Messungen hier zusammengefasst: > Diese Fußkrankheit der Kennlinie als Gamma-Korrektur zu bezeichnen, wäre > wirklich Blödsinn. Ich würde in der Überschrift eher formulieren "The > WS2812 has no integrated Gamma-Correction". Sonst ist sie irreführend. Der Titel ist eine Frage... :) > Magnus M. schrieb: >> Ich vermute dass der flache Verlauf bei niedrigen Werten auf einen >> langsamen Stromanstieg der internen Konstantstromquellen zurückzuführen >> ist. Erst wenn die ON-Zeit der PWM größer ist als die Anstiegszeit der >> KSQ setzt eine Linearität ein. > Das klingt sehr plausibel! Ich hatte schon an Kapazitäten gedacht, > aber dann würde die Kennlinie anders aussehen. Dieser absichtlich > langsame Stromanstieg wäre auch ein plausibler Grund, um die die > Stromtransienten der PWM (EMV durch induktive Anteile der > Stromversorgung) zu reduzieren und damit auch mit weniger > Stützkondensatoren auszukommen. Ich wette, deine Vermutung stimmt! > > Das müsste sich gut mit Oszillografieren der Stromaufnahme der LED bzw. > des LED-ICs nachweisen lassen! Das habe ich gemacht, siehe auch den link im OP. Ich habe noch einmal ein Oszilloskopbild in den neuen Artikel eingefügt, welches zeigt dass die Anstiegszeit nichts mit dem beobachteten Effekt zu tun hat. Es handelt sich um ein Feature im Digitalen Design.
:
Bearbeitet durch User
Jetzt müsstest du eigentlich mal hingehen und mit einer schnellen Fotodiode schauen, wie sich Tastverhältnis und Frequenz der PWM über den Bereich verhalten. Den Knick könnte man ja auf 3 Ursachen schieben. 1. Der Strom durch den Emitter ist nicht über alle PWM Stufen konstant 2. Das Tastverhältnis ist im Knick nicht linear, wie in den oberen Stufen 3. Die Frequenz der PWM ist im Knick eine andere.
Labdoc schrieb: > 1. Der Strom durch den Emitter ist nicht über alle PWM Stufen konstant Der Strom ist konstant. > 2. Das Tastverhältnis ist im Knick nicht linear, wie in den oberen > Stufen Genau das ist der Fall, scheint also im Digitalteil so vorgesehen zu sein. > 3. Die Frequenz der PWM ist im Knick eine andere. Das sollte, in gewissen Rahmen, aber keine Auswirkungen haben, wenn das Tastverhältnis konstant ist.
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.