Forum: Analoge Elektronik und Schaltungstechnik Wie 36-Bit Farbtiefe bei dieser RGB LED-Matrix realisiert


von Markus B. (lordnoxx) Benutzerseite


Lesenswert?

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
von Sascha (Gast)


Lesenswert?

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

von Raimund R. (corvuscorax)


Lesenswert?

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.

von Markus B. (lordnoxx) Benutzerseite


Lesenswert?

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?

von Oliver R. (orb)


Lesenswert?

Sascha schrieb:
> Bitwinkelmodulation

Bitte was?

von Sascha (Gast)


Lesenswert?

> 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

von Oliver R. (orb)


Lesenswert?

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
von Sascha (Gast)


Lesenswert?

> 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.

von Markus B. (lordnoxx) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.