Hallo, da ich mich gerade aus Interesse mit RGB LED-Matrix Anzeigen befasse, bin ich bei Stöbern im Netz auf eine Matrix gestoßen, bei der ich mich frage, wie hier die Farbtiefe von (laut Datenblatt) 36-Bit erreicht wird. Denn der verwendete LED-Treiber beitzt für seine 16 Kanäle nur einen Externen Widerstand zum einstellen des maximalen Stromes für alle 16 Kanäle zusammen. Ich hätte intuitiv erwartet, dass bei derartigen Matrizen LED-Treiber zum Einsatz kommen, welche es erlauben, an jedem der 16 Kanäle eine 8-Bit PWM mit eigenem Duty-Cycle auszugeben, um somit die Helligkeit jedes einzelnen Pixels (LED) einstellen zu können. Laut dem Datenblatt des Treiber-ICs hat dieser aber diese Fähigkeit nicht. Daher meine Frage an die Experten hier: Wie wird hier die Helligkeit für die einzelnen Farben eingestellt? Noch ein paar Eckdaten aus dem Datenblatt zur Matrix sowie die angesprochenen Datenblätter: Grade level: Red, green and blue 4096 grade/each (36-Bit color depth) Refresh frequency: ≥400 HZ Changing frame frequency: ≥60 HZ Datenblätter: Web: http://www.led-displays-china.com/product/Outdoor-2R1G1B-Series/p12mm_36.html Matrix: http://www.led-displays-china.com/UploadFile/Soft/20091221825286403075.pdf Treiber: http://www.autcomp.com.br/fichas/macroblock/Drivers/DCDC/MBI5024%20Datasheet%20VA%2002-EN%20.pdf
:
Bearbeitet durch User
Die PWM (bzw. Bitwinkelmodulation) wird dann über Software des Treiber-µCs gemacht. Du kannst allerdings nur manche Zwischenwerte der 12bit nehmen, denn das Auge hat eine nichtlineare Kennlinie. Hier hat das mal einer gemacht: http://www.zabex.de/site/sofabeleuchtung.html
Steht doch schon da: "4096 grade/each". Wobei 4096 ja 2^12 entspricht und sich somit eine 'Auflösung' von 12 Bit je (Grund-)Farbe ergibt - das ganze dann mal drei und man kommt auf die 36 Bit. Der Anteil der drei Grundfarben an der finalen Farbe wird sicherlich nicht über den 'R-EXT'-Eingang des Treiber-ICs realisiert, sondern eher über eine PWM, die eben je Grundfarbe in 2^12 (bzw. 4096) Stufen einstellbar sein wird. LEDs tendieren dazu ihre Farbe mit dem eingespeisten Strom leicht zu verändern, deshalb belässt man den Strom und andert nur das Tastverhältnis, d.h. die Ein- zu Ausschaltdauer, um die Helligkeit zu modulieren.
Sascha schrieb: > Die PWM (bzw. Bitwinkelmodulation) wird dann über Software des > Treiber-µCs gemacht. Du kannst allerdings nur manche Zwischenwerte der > 12bit nehmen, denn das Auge hat eine nichtlineare Kennlinie. Hier hat > das mal einer gemacht: http://www.zabex.de/site/sofabeleuchtung.html Hmm, ok....das kann ich mir soweit noch vorstellen. Wenn man mal aber ein einfaches Beispiel nimmt: Matrix mit 10x10 RGB LEDs, 100Hz Refresh-Rate, damit ist jede Zeile für 1ms aktiv. Innerhalb dieser 1ms muss dann eine 12-Bit PWM untergebracht werden. --->1ms/(2^12)=244ns Es muss also das Schieberegister für die jeweilige Zeile alle 244ns (während des Zeitfensters von 1ms) neu geschrieben werden. Und da wir RGB LEDs haben sind das jedes mal 30 Bit in 244ns. Macht pro Bit also ca. 8µs. Und damit eine CLK von 122,8 MHz. Hmm also irgenwie sind das doch schon krasse Anforderungen für einen µC. Werden da dann FPGAs eingesetzt....oder viel einfacher--->Wo liegt mein Denkfehler?
> Matrix mit 10x10 RGB LEDs, 100Hz Refresh-Rate, damit ist jede Zeile > für 1ms aktiv. Wer sagt denn, dass es eine gemultiplexte Matrix ist? Bitwinkelmodulation: http://www.batsocks.co.uk/readme/art_bcm_3.htm Ansonsten hier noch ein reverse-engineering von einer kommerziellen LED-Wand: https://www.youtube.com/watch?v=6iHTbGsnI8Q
Sascha schrieb: > Bitwinkelmodulation: > http://www.batsocks.co.uk/readme/art_bcm_3.htm BinaryCodeModulation ist mir bekannt, aber warum muß man mit Gewalt alles eindeutschen und so mit Begriffen umsich werfen, die sonst kein Mensch benutzt oder versteht? Außerdem verwendet der MBI5024 kein BCM/BAM.
:
Bearbeitet durch User
> Außerdem verwendet der MBI5024 kein BCM/BAM.
Hat auch keiner behauptet, das Teil ist ja auch nix anderes als ein
besseres Schieberegister. Das muss alles der µC machen.
Sascha schrieb: > Ansonsten hier noch ein reverse-engineering von einer kommerziellen > LED-Wand: > Youtube-Video "Outdoor LED Screen teardown (+how to drive LEDs with > video)" Danke schön für diesen Link. War sehr interessant. Wenn ich das in dem Video richtig gesehen habe, handelt es sich hierbei aber um ein nicht gemultiplextes Display. Und bei dem Teil wo er auf die Helligkeitseinstellung via PWM eingeht, ist zu erkennen, dass sich immer die Helligkeit aller LEDs ändert. Und dass sich das über das ENABLE-Signal an den Treiber ICs realisieren lässt, ist mir klar. Die Sache mit der BinaryCodeModulation habe ich jetzt, weil schon spät, auch nur kurz überflogen, aber ist es nicht so, dass es auch damit bei meinem oben skizzierten Beispiel keine Verbesserung bringt? Daher bleibt die Frage: Wie wird es gelöst, wenn einzelne LEDs in ihrer Helligkeit gesteuert werden sollen, der Treiber aber keine PWM Ausgänge hat.
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.