Folgender Setup, wir habe ein Arduino Duemilanove mit einem Led Painter
Board mit jeweils einem TLC5940 für einen Farbkanal (RGB) verbunden, und
damit 15x Seoul P5 II als ersten Test verkabelt. Die TLCs laufen alle im
GS Modus, keine dot correction aktiviert. Das Arduino Board bekommt 9
Volt und gibt geregelte 5 Volt an die TLC VCC Eingänge weiter, die LED
Versorgung an den TLCs erfolgt über separate 5 Volt Netzteile. Die TLCs
werden ziemlich heiss im Betrieb.
Wenn alle Leds auf Maximum gesetzt werden, um weiß zu erhalten (z.b.
über Tlc.init(4095)), haben wir deutlich sichtbare Farbschwankungen
(siehe Anhang, die Kamera übertreibt die Farben ein wenig). Ich hätte
erwartet, das der TLC5940 bei gleicher Parameterisierung und Last
identische Ausgangswerte auf allen Pins liefert. Wo dran kann das
liegen, wenn das nicht der Fall ist?
Folgende Tests haben wir noch gemacht:
- Umstecken zweier LEDs an den LED Painter Boards: die Farbschwankung
bleibt dem Anschluss zugeordnet, d.h. ein Einfluss der RGB LED selbst
scheint es nicht zu sein
- Darstellung nur eines Farbkanals, z.b. Blau: Man erkennt, das nicht
alle 15 LEDs den Farbkanal gleich hell darstellen. Das führt im
Endeffekt zu der Verfärbung durch unterschiedliche Anteile
- Austausch des 'R' gegen den 'B' TLC auf dem Led Painter Board: die
Farbschwankung wechselt mit dem Kanal, d.h. es liegt an den jeweiligen
TLCs selbst.
Ich bin etwas ratlos, natürlich kann man das über Profilierung oder Dot
Correction beseitigen, aber die TLC Ausgänge dürfen eigentlich keine
unterschiedlichen Ausgangssignale bei gleicher Parameterisierung haben,
oder?
Hast du mal nachgemessen ob wirklich unterschiedliche Ströme fließen?
Es könnte nämlich auch an einem Softwarefehler bei der Ansteuerung
liegen. Ich konnte etwas derartiges bei mir zumindest nicht beobachten.
Ich habe die einzelnen Ströme noch nicht gemessen, wollte aber am
Wochenende mal mit dem Scope die PWM Signale anschauen. Software sollten
wir eigentlich ausschliessen können, das Programm hat nur eine relevante
Zeile, den Tlc.init(4095); :)
Habt Ihr RGB LED setups mit TLCs kalibrieren müssen, oder war das weiss
der einzelnen LEDs korrekt?
Vieleicht sind es ja nicht die TLC´s sondern die Led´s. Wenn alle Led´s
bei gleichen Strom gleich hell leuchten würden bräuchte man keine dot
correction.
Und so eine RGB Led besteht im grunde aus 3 einzelnen Led´s was die
Chance von Abweichungen in der Gesammtfarbe nicht umbedingt verringert.
adrian wrote:
> Habt Ihr RGB LED setups mit TLCs kalibrieren müssen, oder war das weiss> der einzelnen LEDs korrekt?
Ich habe die LEDs angeschlossen und mich über die schönen Farben gefreut
(die Helligkeitsunterschiede auf dem Foto kommen vom unterschiedlichen
Blickwinkel auf die LEDs).
Allerdings sind das auch RGB LED Matrix Displays, die vermutlich alle
LEDs aus der selben Charge verwenden. Wie gut Einzelleds sind, kann ich
nicht sagen, aber bei dir sieht es doch etwas extrem unterschiedlich
aus. Davon ausgehend, dass das Auge eine eher logarithmische Kennlinie
hat, und daher kleine Unterschiede kaum Wahrgenommen werden, müssen
entweder deine LEDs extreme Toleranzen haben, oder es existiert doch ein
Problem in der Software oder Hardware.
Wenn ich im Betrieb die Anschlusskabel einer rotstichigen RGB LED mit
einer blaustichigen austausche, wandert die Farbverfälschung mit dem
Anschlusskabel mit. Daraus habe ich geschlossen, das es nicht die
Helligkeitsvariation der RGB Leds selbst ist, richtig?
Wenn ich nun den TLC Chip gegen einen anderen austausche, habe ich ein
anderes Pattern an Verfärbungen, das interpretiere ich eigentlich auch
auf den Chip als Arbeitsthese.
Bei der Library von Alex Leone kann ich mit einem einfachen Init Befehl
alle LEDs auf weiss setzen und den Effekt provozieren, da kann man
eigentlich keinen Fehler einbauen. Ein Freund hat ein paar weitere
Testprogramme geschrieben, die auch sehr ähnliche Ergebnisse geliefert
haben. Insofern habe ich auch erstmal Software als Problem
ausgeschlossen (Die Hardware ist schuld, die alte Diskussion ;)
Damit wären entweder die TLC Chips die Fehlerursache (das ist für mich
momentan das naheliegendste, obwohl ich keine Erklärung dafür finde),
oder ein Bug in der Arduino IDE liefert fehlerhaften Code, aber das
passt nicht zu dem Versuch mit dem Austausch der TLCs.
Als nächstes würde ich mir die PWM Signale mit dem Scope für die
einzelnen RGB Kanäle von zwei farbstichigen RGB Leds anschauen, macht
das Sinn, oder hättet Ihr noch einen Vorschlag, was man noch testen
könnte?
Im Notfall könnte ich eine dot correction für alle 150 Leds per Hand
machen, aber davon würde ich lieber Abstand nehmen wollen :)
adrian wrote:
> Bei der Library von Alex Leone kann ich mit einem einfachen Init Befehl> alle LEDs auf weiss setzen und den Effekt provozieren, da kann man> eigentlich keinen Fehler einbauen.
Setzt die Init sowohl die Stromquellen als auch die PWM Werte?
> Als nächstes würde ich mir die PWM Signale mit dem Scope für die> einzelnen RGB Kanäle von zwei farbstichigen RGB Leds anschauen,
Mach das mal. Ich tippe darauf, dass die Ströme unterschiedlich sind, da
das Dot Correction Register nicht beschrieben wurde.
So, ein paar Messungen und TLCs später haben wir einige neue Effekte.
TLC ist über VCC mit 5 Volt versorgt, die LED Anoden mit 3,3 Volt. Für
den Test haben wir 15x Seoul P5-II mit drei TLCs (getrennt nach R/G/B
Kanal) angebunden, und schrittweise alle LEDs mit weiss (RGB full)
dazugeschaltet.
Der Anodenstrom in der Summe ist gemessen ~1400 mA, d.h. 30 mA per LED,
das sollten laut Datenblatt 60 mA max (bei 3,3 Volt Anodenspannung)
sein.
Bei dem schrittweisen Einschalten der LEDs haben wir den Effekt, das die
zuerst eingeschalteten LEDs stufenweise leicht dunkler werden, so als ob
der Gesamtstrom für die LEDs nicht ausreicht!
Das war uns beim gemeinsamen einschalten zuerst nicht aufgefallen.
Das ist alles leicht verwirrend :) Ich würde als nächstes IREF vom TLC
für Rot auf 500 Ohm (78 mA) ändern, und Blau/Grün auf 330 Ohm (120 mA)
lassen, um die helleren roten Leds zu kompensieren. Dann hänge ich ein
regelbares Labornetzteil an die Anodenversorgung und schaue mir mal den
Strom per LED an.
Insgesamt hab ich den Eindruck, das der TLC5940 überhaupt nicht mit den
Seoul P5-II zurande kommt, obwohl wir bereits einen sehr niedrigen (60
mA) Strom per Kanal fahren.