TLC5940 & SD Card

hi,

glaub mir, Megaionstorm, einem nicht-elektroniker kommt das, noch dazu in englisch, spanisch vor. den 74HC595 konnte ich als computermensch anhand des shiftOut-bespiels problemlos verstehen, aber der tlc scheint mir unergründlich. deswegen die fragen, nur um die problematik grundsätzlich zu kapieren. es scheint mir nicht logisch, warum es einen solch einfach zu bedienenden baustein wie den 595er nicht auch für PWM gibt (oder doch?).

gruß stefan

Der TLC5940 steuert ja nicht nur die Helligkeit der Leds durch PWM (12 bit (4096 Steps) Grayscale PWM Control).

Sondern zudem:
Dot Correction – 6 bit (64 Steps)
Drive Capability (Constant Current Sink) The TLC5940 is a 16-channel constant-current sink LED driver. Each channel has an individually adjust-
– 0 mA to 60 mA (VCC < 3.6 V) able 4096-step grayscale PWM brightness control
0 mA to 120 mA (VCC > 3.6 V)

Selbst wenn Du das nötige PWM mit einem 74HC595 erzeugen könntest würdest Du immer noch einen current sinking driver benötigen der die Leds mit dem nötigen Strom versorgt !

hi,

muß ich sowieso, weil meine LEDs 184 mA ziehen. und die dot-correction ist bei lauter gleichen lampen nur zur beleuchtung auch nicht interessant. nur warum der arduino dauernd zu tun hat, damit der tlc funktioniert, weiß ich immer noch nicht...

gruß stefan

Der Arduino hat dauernd zu tun weil: 1) die LED von Megaionstorm in einer Matrix gemultiplext werden 2) weil der TLC5940 nach einem PWM Zyklus von 4096 Takten einen Startimpuls auf den BLANK-PIN braucht um einen neuen Zyklus zu starten. Andere ICs machen das Multiplex selbst wie zb der MAX7219 der eine 8x8 monocolor-Matrix selbständig ansteuern kann (aber leider keine Farbmatix).

Grüße Uwe

Desweiteren gäbe es noch den AS1107, der sich aber auch nur für einfarbige 8X8 Matrixen eignet !

ich dachte, der 5940 macht das alles selbständig, das heißt, ich sag' ihm, schick auf ausgang 12 ein pwm-signal von zb. 16/256el und er tut das, bis ich ihm was anderes sage. die library hielt ich für beiwerk, um genze matrizen reihenweise anzusteuern.

TLC5940 Programming Flowchart: http://www.ti.com/lit/sw/slvc106/slvc106.pdf

Die Ansteuerung des TLC gliedert sich in mehrere Teile: 1) Übertragung von 96 Bit (6Bit x 16) Dot Correction ins Ram. (DCPRG Pin =H, VPRG=H, XLAT) 2) Speicherung der Dot Correction Data im internen EEprom; Default-Wert 0x3f bzw B111111 (DCPRG Pin = L) 3) Benutzung der Dot Correction im EEprom oder im Ram falls übertragen. (VPRG=H) Dot Correction Data bestimmen den Konstantstrom der Stromsenke der Ausgänge. 4) Übertragung der PWM Werte von 192 Bit (12Bit x 16) für die PWM der Ausgänge. (VPRG = L, XLAT) 5) PWM-Zyklus : BLANK auf LOW; 4096 Impulse auf GSCLK (PWM Ausgabe auf Ausgänge); BLANK auf HIGH (Reset PWM Counter) und dann wieder von vorne.

Der gesteuerte PWM-Zyklus macht es möglich daß der TLC5940 im Multiplexbetrieb verwendet wird. Würde er frei laufen wäre die Umschaltung zur nächsten Reihe zufällig.

Grüße Uwe

hi, und danke,

endlich licht im dunkel. sorry, Megaionstorm, aber 70 seiten elektroniker-english versteh ich beim besten willen nicht (eigentlich auch kein elektroniker-deutsch ;o) ).
es ist immer die rede davon, matrizen anzusteuern, das ist aber garnicht meine absicht. ich möchte einfach 26 12V-LED-lampen einzeln dimmen können. die PWM-signale sollen konstant gleich bleiben, bis der arduino was anderes befiehlt, also sozusagen in diesem fall die schieberegister mit “anderen” 4096 bit befüllt. keine matrix, keine dot-correction, kein RGB nötig.
ich dachte halt in meiner einfältigkeit, ich kann meine schaltung mit den 4 74HC595 und den 8 ULN2003 (ich nutze nur 3-4 kanäle pro 2003er) ein wenig umbauen, das arduino-programm umschreiben (also 384 bit rausschreiben statt 32), und das wär’s im großen und ganzen. unendliche einfältigkeit…
gibt es einen IC, der das kann?
übrigens, uwe, woher weiß der arduino, daß ein zyklus zu ende ist?

ich häng’ mal mein layout dran, falls es interessiert.

gruß stefan

ich möchte einfach 26 12V-LED-lampen einzeln dimmen können. die PWM-signale sollen konstant gleich bleiben ...

Durch die 74HC595 und ULN2003 hast du aber keine PWM Signale und der Atmega328 selber kann dir nur 6 PWM Signale liefern !

Der Atmega328 steuert die 74HC595 und durch diese werden die ULN2003 gesteuert. Die Kathoden der LED-Lampen werden an die Ausgänge des ULN2003 angeschlossen. Die PWM-Signale an die Anoden der LED-Lampen.

hi,

Durch die 74HC595 und ULN2003 hast du aber keine PWM Signale und der Atmega328 selber kann dir nur 6 PWM Signale liefern !

natürlich, das weiß ich. so ist meine schaltung jetzt. steuert seit etwa 2 monaten mein wohnzimmerlicht über arduino als webserver. jetzt wollt' ich rein aus spaß an der freud' umstellen auf PWM.

Der Atmega328 steuert die 74HC595 und durch diese werden die ULN2003 gesteuert. Die Kathoden der LED-Lampen werden an die Ausgänge des ULN2003 angeschlossen. Die PWM-Signale an die Anoden der LED-Lampen.

genau, so ist es ja auch beabsichtigt. nur daß die polung bei meinen LED-lampen egal ist. sind so 31mm-plättchen mit je, sag' ma mal, 10 LEDs vorne und ein wenig elektronik hinten. etwa wie die:

http://www.net-elektronik.de/product_info.php/info/p1046/LED-Chip-fuer-G4-Lampensockel-Seitlich-mit-10-SMD-LEDs-2-4W-kaltw.html

ich weiß auch nicht, ob diese elektronik überhaupt das PWM-signal verdaut, hätt' halt probiert...

gruß stefan

Vermute mal das Du es mit einer ausprobieren müssen wirst um es ganz genau zu wissen !