Forum: Mikrocontroller und Digitale Elektronik Hilfe LUXEON LED Array über TLC5940 und ULN2803


von paul klee (Gast)


Lesenswert?

Ich sitze an folgendem Vorhaben: 64 Hochleistungs-LEDs (350mA / Stück) 
sollen individuell vom Mikrocontroller gesteuert werden (inklusive 
dimmen).

Mein Plan ist, 4 in Reihe geschaltete TLC5940-LED Treiber von TI 
(jeweils Ansteuerung von 16 LEDs) von MC aus zu steuern. Hinter den 
LED-Treiber hängen jeweils 2 ULN2003A (oder ähnliche sink-Transistor 
Arrays) die jeweils 8 der LEDs ansteuern.
Da die TLC5940 Treiber über einen Referenzwiderstand in ihrem Stromwert 
begrenzt werden können brauche ich keinen Vorwiderstand zum schalten der 
einzelnen ULN2003 Transistoren.
Vorwiderstände gebe es nur direkt in Reihe mit den einzelnen LUXEON 
LEDs.


1. Da ich nur wenig Praxiserfahrungen im Schaltungbereich habe, würde 
mich interessieren, ob ich für eine stabil laufende Schaltung noch etwas 
beachten muss.(?)


Zweitens möchte ich, wenn ich schonmal eine größere (im Sinne des 
Materialaufwands) Schaltung baue, sie etwas variabler ist, und nicht 
genau für eine Leistungsspannung und eine LED Größe vorgesehen ist. 
Möglihckeit wäre, statt fester Widerstände, Spindeltrimmer zu nutzen, 
allerdings sind alle die ich gefunden habe für höchstens 0,5 oder 0,75W 
ausgelegt - was fast an der Grenze des jetzigen Setups liegen würde (bei 
5V Einspeisung, 3,42V LED Spannung und 350mA ist die Verlustleistung ca. 
0,55W). Ein wenig mehr Spielraum wär mir schon lieb.


2. Gibt es eine besser Möglichkeit, den Durchflussstrom variabel zu 
halten oder Spindeltrimmer die mind. 1W vertragen?

danke

paul

von Kai E. (kai20)


Lesenswert?

Hallo Paul,

ganz schön anspruchsvolle Schaltung für den Einstieg.

Die Verlustleistung derl TLC Bausteine wird wahrscheinlich zu hoch sein,
je nachdem wie hoch der Spannungsabfall ist.
Beim ULN2003 ist sie mit knapp 5W definitiv zu hoch (1.6V*0.35A*8),
ich bin mir nicht sicher, ob der Baustein auch mit ausreichender
Kühlung auf Dauer funktionieren würde (habe dazu keine Angaben
im ST Datenblatt gefunden).

Die Dimmung solltest du nicht mit Spindeltrimmer oder ähnlichem machen,
die werden bei 350mA auf jeden Fall durchbrennen.
Der TLC hat eine PWM implementiert.

Du bist dir im Klaren, dass du 23A bereitstellen mußt ?

Gruß,
Kai

von paul klee (Gast)


Lesenswert?

Herzlichen Dank für die Antwort Kai,

so kompliziert ist die Schaltung nun auch nicht - und es ist ja auch 
nicht meine erste.

Die PWM Funktion des TLC nutze ich natürlich. Trotzdem brauche ich 
Vorwiderstände an den LEDs zur Strombegrenzung. Die Spindeltrimmer 
dienen nicht der PWM Generierung sondern als variabler Vorwiderstand, um 
auch andere Power-LEDs nutzen zu können. Es sollen 64 Klemmen an die 
Schaltung statt die LEDs direkt zu verlöten. Die Frage ist also, ob ich 
statt Potentiometern eine andere Möglichkeit habe, Spannung bzw. Strom 
variabel zu halten?

Ich hatte nicht berücksichtigt, daß die ULN2803 auf HIGH schalten. Der 
ULC5940 schaltet ja allerdings auf Ground deshalb muss ich sowieso eine 
andere Transistorlösung finden. (Da die LEDs nie alle zusammen laufen 
würden, wäre P-tot der ULN Arrays ausreichend). Eine Möglichkeit wäre, 
64 TIP120 oder ähnliche Darlingtons zu nutzen und den Ground der 
Darlingtons jeweils an die TLC Ground-Ausgänge zu hängen und die BASE 
konstant mit mit Steuerstrom zu versorgen. (Siehe: 
http://www.ti.com/litv/pdf/slva280 ) Aber dafür ist wesentlich mehr 
Platz nötig und das hätte ich mir gern erspart.

Würde mir die Nutzung der TIP120 Transistoren irgendwelche Probleme 
bereiten (abgesehen vom Material und Platzaufwand)? Immerhin würde auch 
wenn die ULC Treiber nicht schalten müssten, der gesamte Strom zu GND 
durch die Treiber laufen.

Über die notwendigen 23Ampere bin ich mir übrigens vollends bewusst. 
Aber bei 5V fürchte ich mich nicht davor. Am Netzteil wirds nicht 
scheitern. Außerdem werden wohl immer nur wenige der LEDs angesteuert.

Danke

Paul

von paul klee (Gast)


Angehängte Dateien:

Lesenswert?

Anbei eine Skizze des Vorhabens. Allerdings mit nur einem TLC5940 
Treiber.
Letztlich soll es 4 davon geben. Es werden nicht alle LEDs parallel 
laufen und die ULN2803 werden gekühlt. Sollte meiner Meinung nach 
funktionieren. Vielleicht kann ja jemand mal einen Blick drauf werfen 
und Fehler oder Verbesserungen anmerken.

Herzlichen Dank

paul

von Hagen R. (hagen)


Lesenswert?

Die Schaltung ist falsch, bzw. was soll es bringen mit dem TLC die 
Logik-Steurereingänge der ULNs anzusteuern ? Die ULNs sind quasi 
Schalter-Arrays und den Steuereingang dieser Schalter hast du am TLC 
angeschlossen. Der TLC ist selber so ein ULN, nur mit dem Unterschied 
das dessen Ausgangsschalter Konstantstromtreiber sind und per Seriellem 
Shiftregister angesteuert werden, statt parallel wie beim ULN.

Möchtest du den Ausgangsstrom für die LEDs vergrößeren so solltest du 
mehrere Ausgänge der TLC parallel schalten und dann da nur 1 LED 
dranhängen. Laut AppNote zum TLC soll das gehen.

Gruß Hagen

von Hagen R. (hagen)


Lesenswert?

Davon mal abgesehen hat der TLC5940 schon intern eine PWM Einheit und 
kann  somit seine Konstantstrom Ausgänge per PWM schalten und somit die 
LEDs dimmen.

Gruß hagen

von Claude (Gast)


Lesenswert?

Schieberegister und gute Logic Level MosFets, PWM in Software 
serialisiert über den SPI raus schieben?
Bei Strömen von 23A würde ich nicht mehr mit Bipolar 
Transistoren(Arrays) rumspielen. Bei allen LEDs an sind das ~15W 
Verlustleistung an den Transistoren.

Was hast Du den für einen Microcontroller? 64 PWM Kanäle in Software 
sind ein haufen Holz, da kommt ein AVR ganz schön ins schwitzen falls er 
es überhaupt schaffen sollte.

von Fabian B. (fabs)


Lesenswert?

Eine weitere Möglichkeit wäre das Verwenden von TPIC6A595 
Schieberegistern von TI 
(http://focus.ti.com/docs/prod/folders/print/tpic6a595.html). Die 
Schaffen pro IO 350mA cont. und 1.1A max, das sollte also reichen. Dann 
musste dein Dimmen nur noch als SoftPWM umsetzen. Damit Sparst du dir 
zumindest die ganze geschichte mit den extra ULNs.
Vieleicht schauste auch mal bei Allegro (http://www.allegromicro.com) 
vorbei. Die haben auch interessante ICs für LEDs.

Gruß
Fabian

von Hagen R. (hagen)


Lesenswert?

>> Schaffen pro IO 350mA cont. und 1.1A max, das sollte also reichen.

Nicht wenn er alle 8 Ausgänge gleichzeitig einschalten möchte -> 8 * 
350mA = 2.8A, das übersteigt die Leistung der Chips.

Gruß Hagen

von paul klee (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Sicher hast Du mit der Aussage recht, daß ich keinen 
Konstantstromtreiber zum ansteuern der ULNs benötige. Ich nutze die TLC 
Treiber als Shiftregister mit interner PWM Funktion. Damit umgehe ich 
soft-PWM, weil es beim testen wie Fabian richtig bemerkt, an die Grenzen 
meines ATMEGA8 ging.

Die ULNs sind also nur deshalb im Spiel, um auf die 350mA zu kommen weil 
der TLC Treiber nur 120mA per Channel sinken kann. Das Parallelschalten 
von TLCs soll, wie ich gelesen habe, Probleme bereiten sobald die 
interne PWM-Funktion  genutzt wird.

Der Punkt ist: So wie es in dem Schaltplan beschrieben ist funktioniert 
es solide inkulsive dimmen. Nur der Maximalstrom der ULNs begrenzt die 
Einsatzmöglichkeit ein wenig.

Warum also ist die Schaltung falsch?

Einzelne Mosfets oder Darlingtons zu nutzen wäre da aushelfend. Um den 
Aufwand von 64 Stück zu reduzieren war meine Hoffnung auf Arrays 
zurückgreifen zu können - deshalb die ULNs.

Ich werd das Parallelschalten der TLCs nochmal testen.

Auf soft-PWM will ich nicht wieder umsteigen müssen.

soweit herzlichen Dank euch allen

von Fabian B. (fabs)


Lesenswert?

@Hagen: kann ich nicht nachvollziehen. Im Datenblatt 
(http://focus.ti.com/lit/ds/symlink/tpic6a595.pdf) steht auf Seite 4:
Continous drain current, each output, all outputs on      350mA

Sicher, man muß die Verlustleistung beachten, aber 2,8W kann der Chip 
mit KK ... selbst ohne sind ja schon 2,5W angegeben (Seite4, 
NE-Package).

Gruß
Fabian

von paul klee (Gast)


Lesenswert?

Sicher eine nette Lösung - wirft mich aber zurück auf software PWM und 
wie bereits geschrieben, hatte ich damit meine Probleme. Hatte über 
einen Tag daran gesessen und war mit der Geschwindigkeit des Ergebnisses 
bei 64 LEDs nicht zufrieden. trotzdem danke.

von paul klee (Gast)


Lesenswert?

Nun hab ich die Ausgänge des TLC5940 parallel geschaltet. Ohne PWM läuft 
alles. Mit internen PWM genutzt flackert mein Lämpchen. Nicht 
akzeptabel. Es scheint minimale Verschiebungen zu geben. Ärgerlich.

von Hagen R. (hagen)


Lesenswert?

Ja die gibt es, nämlich ~20ns pro Asugang. Ausgang 1 schaltet 20ns nach 
Ausgang 0 und ausgang 2 ebenfalls 20 ns nach Ausgang 1 usw. Ausgang 15 
ist also 15*20ns später als Ausgang 0. Das verhindert den straken 
Impulsstrom wenn die Ausgänge alle gleichzeitig einschalten würden, 
steht auch im Datenblatt. Allerdings dürftest du das garnicht sehen da 
man normalerweise bis zu 30Mhz als PWM Takt benutzt, immerhin hast du 
eine 12 Bit PWM.

Wenn du wirklich nur die Feature Shiftregister mit PWM vom TLC benutzen 
möchtest dann kannst du das so machen wie in deinem Schaltplan, 
allerdings brauchst du denoch deine LED Vorwiderstände. Ich bin davon 
ausgegangen das du Anfänger bist und nicht ganz genau wusstest was der 
TLC für ein Teil eigentlich ist. Ich persönlich finde deine Benutzung 
des TLCs trotzdem sehr ungewöhnlich und würde wohl ein garnz normales 
Shiftregister benutzen und die PWM per AVR machen mit weniger Stufen als 
die 4096 vom TLC.

Gruß Hagen

von paul klee (Gast)


Lesenswert?

Merci,

Natürlich würde ich auch gern meine 595 dranhängen und Mosfets als 
Treiber nutzen - aber meine Programmiererfahrung lässt das nicht zu, 
weil ich die Geschwindigkeit für 64 LEDs und Software PWM nicht 
hinkriege. Hab ich ja bereits versucht, war aber zu langsam. Es kommen 
ständig neue Daten rein, die die LEDs steuern sollen und ich hab es 
nicht geschafft alles parallel mit der PWM über Interrupt zu schreiben. 
Deshalb wollte ich gern auf die PWM Funktion der TLCs zurückgreifen.

Ich werde jetzt wohl n-Kanal Mosfets hintendranhängen.

Problem dabei ist, daß die TLC5940 Treiber auf Masse schalten. Gibt es 
einen Weg, ohne dazwischengeschaltete PNP Transistoren die Mosfets 
direkt anzusprechen. Bis jetzt hab ich mit einem Pullup Widerstand die 
Mosfets entgegengesetzt geschaltet - also TLCs aus -> Mosfet Gate offen; 
TLCs an (also auf Masse) --> Mosfets aus.
Gefällt mir nicht besonders weil bei Ausfall der TLCs die Mosfets voll 
durchlassen. Andersherum wär mir lieber.

Danke

paul

von paul klee (Gast)


Lesenswert?

Schienbar muss ich doch die Logikpegel umkehren da ich keine andere 
Lösung sehe.

Ist es günstiger einen P-Kanal Fet direkt vom TLC aus zu steuern oder 
einen pnp Transistor zwischenzuschalten der dann einen klassischen 
N-Kanal Fet mit weniger Verlustleistung steuert?

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.