Go Down

Topic: TLC 5940 anschließen (Read 9011 times) previous topic - next topic

uwefed


Das Problem scheint darin zu liegen, dass der TLC ja selbst schon eine Konstantstromquelle für die Ansteuerung von LEDs ist und nicht die passenden Pegel für den PWM-Eingang deiner Konstantstromquelle liefert. Hierfür ist der TLC meiner Meinung nach ja auch nicht gedacht, sondern für die sehr einfache und komfortable Ansteuerung von 16 simplen LEDs.

Eine Möglichkeit könnte vielleicht darin bestehen, die LEDs (natürlich die am TLC  ;))durch Widerstände zu ersetzen. Ein Ende des Widerstands an den Ausgangs-Pin des TLC, das andere Ende an +5V. Dann Ground vom TLC an Ground der Konstantstromquelle, Ausgangs-Pin vom TLC (da wo der Widerstand dran ist) an +-Pol der Konstantstromquelle. Ich weiß allerdings nicht genau, ob man auf diese Art und Weise die nötigen Pegel erzeugen kann (eine Konstantstromquelle als Ausgang des TLC ist ja schließlich kein simpler Schalttransistor).

Genau da ist das Problem.
Lösungsverssuch: Man kann den Widerstand an Iset, der den Ausgangsstrom bestimmt so setzen, daß ein kleiner Strom fließt (1mA oder kleiner) und dann mit einem Widerstand auf 5V (2,2kOhm oder größer) müßte man den Spannungshub 0-5V haben. Aber das mußt Du erst durch den Aufbau der Schaltung verifizieren.
Grüße Uwe

currymuetze

Hallo,
also zum EIngangspegel der KSQ, bisher regel ich die über die 5V des Arduino, da wo ich die her habe finde ich auch keine Infos zum PWM:
Quote
Hier nochmal die Fakten:
- Schaltregler-Konstantstromquelle mit PT4115 (datasheet)
- Ausgangsstrom ~680 mA oder 1000 mA (je nach Bestückung, 1,2A ebenfalls möglich)
- Eingangsspannung 8 - 30V
- per PWM dimbar
- Im Gegensatz zur Dealextreme-Variante ohne Gleichrichter (weniger Verluste beim Betrieb mit Gleichspannung) und mit angenehmer dimensionierten Kondensatoren/Spulen


Zu eurem Lösungsvorschlag 2 Fragen:
- Wo finde ich den Iset bzw was ist das?
- Was genau soll ich verifizieren? Den Widerstand auf 5V?

Ich versuche mal später nen kleinen Schaltplan zu erstellen. Glaubt ihr denn, dass das irgendwie überhaupt möglich ist oder wird das eher in einem Versuch enden?

Gruß
THorsten

voithian

#17
Apr 06, 2011, 07:19 pm Last Edit: Apr 06, 2011, 07:25 pm by voithian Reason: 1

Zu eurem Lösungsvorschlag 2 Fragen:
- Wo finde ich den Iset bzw was ist das?

An Pin 20 des TLC kann ein Widerstand gegen Masse angeschlossen werden, mit dem die Höhe des Konstantstroms durch die LEDs (jetzt den Widerstand) festgelegt wird.
Der zugehörige Anschluss heißt IRef. Den meinte Uwe sicherlich.
Formel für die Berechnung des Widerstandswertes steht im Datenblatt auf Seite 14:
http://focus.ti.com/lit/ds/slvs515c/slvs515c.pdf
6,8 kOhm sollte einen Wert von ca. 5,8 mA ergeben.

@uwefed
Der Strom sollte laut Datenblatt mindestens 5mA betragen.

Quote

- Was genau soll ich verifizieren? Den Widerstand auf 5V?

Versuch macht kluch (oder schreibt man klug?). Schaltung aufbauen und feststellen, ob es so geht oder nicht.
Mit den Werten beider Widerstände etwas "herumspielen"...
Die Spannung am Ausgang des TLC messen bei einem PWM-Verhältnis von 100% und bei 0%. Sollten bei 5V bzw. 0 liegen. Kann man machen ohne anschlossene Power-LED-Konstantstromquelle.
Schön ist es natürlich, wenn man jemanden kennt der einen kennt der ein Oszilloskop hat oder man selbst eines hat. Macht alles leichter.

Viel Erfolg.
Wolfgang

uwefed

#18
Apr 06, 2011, 11:09 pm Last Edit: Apr 06, 2011, 11:11 pm by uwefed Reason: 1

Der zugehörige Anschluss heißt IRef. Den meinte Uwe sicherlich.

Ja, IRef meinte ich. Ich war auf den Sprung (hatte eine Verabredung und darum schlecht recherchiert), man verzeihe mir bitte dieses eine mal  ;) ;)
Quote from: voithian
6,8 kOhm sollte einen Wert von ca. 5,8 mA ergeben.
@uwefed Der Strom sollte laut Datenblatt mindestens 5mA betragen.

Wie gesagt, hatte nicht die Zeit genommen nachzuschauen. Hatte aber darauf hingewiesen daß das erprobt werden muß.
Quote from: voithian
Versuch macht kluch (oder schreibt man klug?). Schaltung aufbauen und feststellen, ob es so geht oder nicht.
Mit den Werten beider Widerstände etwas "herumspielen"...
Die Spannung am Ausgang des TLC messen bei einem PWM-Verhältnis von 100% und bei 0%. Sollten bei 5V bzw. 0 liegen. Kann man machen ohne anschlossene Power-LED-Konstantstromquelle.
Schön ist es natürlich, wenn man jemanden kennt der einen kennt der ein Oszilloskop hat oder man selbst eines hat. Macht alles leichter.

Klug  ;). Wie voithian sagt (und auch ich sagte) es ist auzuprobieren. These aufstellen ( haben wir schon), These verifizieren (darfst Du machen), verifizierte These anwenden (machen wir dann alle, wenn wir dasselbe Problem haben werden).  ;) ;)

Grüße Uwe


currymuetze

Hallo Wolfgang,
vielen Dank.
Warum muss ich denn den Strom auf ca 5.8 mA oder wie Uwe sagt 1mA begrenzen?
Soweit ich weiss schalte ich doch sonst auch mit dem DigitalOut des Arduino 20mA oder nicht?

Aber wenn ich das richtig verstehe mach ich folgendes:
Die 2 Widerstände anlegen und dann durch Rumspielerei versuchen, eine max 5V Spannung zu erreichen?

Echt dämlich, dass ich das alles missverstanden habe damals. Aber jetzt werd ich mal mit rumspielen.
Gruß



uwefed

Hallo currymuetze

Wir reden hier von den Ausgängen des TLC5940, nicht von den Ausgängen des ATmega.

Stromsenke an Ausgängen des TLC auf 5,8mA begrenzen  ist besser. (bei Stromquelle kommt Strom heraus und fließt gegen Masse ab, Stromsenke nimmt Strom auf und kommt von der Versorgungspannung).  Das Datenblatt des TLC5940 sagt, daß der Strom der Ausgängen zwischen 5 und 120 mA sein muß. ( höher geht der Ausgang kaputt, weniger ist die Stromsenke instabil).
Grüße Uwe

currymuetze

Hallo,
so langsam wirds mir auch klar:
Im Normalbetrieb wird der Strom vom Arduino (+5v) ausgehen und fließt in den TLC, daher also Senke ;)
(Versteh ich das denn richtig, dass der Ausgang des TLC Strom aufnimmt?)
Da dieser Strom begrenzt werden muss (um den TLC nicht duchzufackeln) pack ich nen Widerstand davor? Damit begrenze ich dann aber auch den Strom, der in meinen Arduino fliesst, korrekt? (Da ich ja (siehe Zeichnung) den +Pol des Arduino erst hinter den Widerstand verschalte.)

Schaut euch mal das Schaubild an
Gruß
Thorsten

voithian

#22
Apr 07, 2011, 10:27 am Last Edit: Apr 07, 2011, 10:30 am by voithian Reason: 1
Ach, da hat sich wohl was überschnitten...


Warum muss ich denn den Strom auf ca 5.8 mA oder wie Uwe sagt 1mA begrenzen?
Soweit ich weiss schalte ich doch sonst auch mit dem DigitalOut des Arduino 20mA oder nicht?

Hallo currymuetze,
ich glaube, dass es hier möglichwerweise ein paar Missverstände gibt, die ich mal versuche, aufzuklären:

- Der Arduino erzeugt bei der Lösung mit dem TLC das PWM-Signal nicht mehr selbst. Also kein PWM am Arduino-Pin.
- Du kannst daher auch nicht die Funktion analogWrite() verwenden, um das PWM-Signal auszugeben.
- Du musst einige Ausgänge des Arduino mit einigen Eingängen des TLC verbinden (siehe Tutorials/Playground und Links in deinem ersten Beitrag des Threads).
- Du musst ein Programm schreiben, mit dem du dem TLC sagst, dass er auf einem der 16 Ausgänge einen Strom mit einem bestimmten  PWM-Verhältnis ausgeben soll. Dazu darf man natürlich abschreiben, was andere zu diesem Thema schon der Arduino-Gemeinschaft zur Verfügung gestellt haben. ;)
- Du wandelst diesen Strom über den von Uwe und mir beschriebenen Widerstand am Ausgang des TLC in eine Spannung um.
- Du leitest diese Spannung an den Eingang deiner Power-LED-Konstantstromquelle.
Quote

Aber wenn ich das richtig verstehe mach ich folgendes:
Die 2 Widerstände anlegen und dann durch Rumspielerei versuchen, eine max 5V Spannung zu erreichen?

Ich denke, der Wert von 6,8 kOhm ist schon Anfangswert für den Widerstand an IRef. Da würde ich erstmal nicht "spielen".
Dann mit dem oben erwähnten Programm den Ausgang des TLC so ansteuern, dass ein PWM-Verhältnis von 100% eingestellt wird. Dann sollte die Spannung am Ausgangspin des TLC ungefähr 5V sein (oder ungefähr 0V). Nun das ganze umgekehrt: über das Programm ein PWM-Verhältnis von 0% einstellen. Jetzt sollte die Spannung ungefähr 0V sein (oder ungefähr 5V). Und bei 50% PWM sollten es etwa 2,5V sein.
Das ist natürlich nur eine ganz grobe Überschlagsmethode. Mir einen Oszilloskop könnte man viel besser erkennen, ob es funktioniert.

Das ganze wäre wahrscheinlich mit einem kleinen Schaltplan etwas besser verständlich, aber ich bin momentan "zeichentechnisch" etwas eingeschränkt.

Gruß
Wolfgang

uwefed

#23
Apr 07, 2011, 10:33 am Last Edit: Apr 07, 2011, 10:36 am by uwefed Reason: 1

Im Normalbetrieb wird der Strom vom Arduino (+5v) ausgehen und fließt in den TLC, daher also Senke ;)
(Versteh ich das denn richtig, dass der Ausgang des TLC Strom aufnimmt?)
Da dieser Strom begrenzt werden muss (um den TLC nicht duchzufackeln) pack ich nen Widerstand davor? Damit begrenze ich dann aber auch den Strom, der in meinen Arduino fliesst, korrekt? (Da ich ja (siehe Zeichnung) den +Pol des Arduino erst hinter den Widerstand verschalte.)

Nein. Du steuerst den TLC ganz normal digital an und dieser hat (leider)Stromausgänge und keine Spannungausgänge. Mit dem Trick des niederen Konstantstroms und des Widerstands am Ausgang bekommst Du einen Spannungsausgang mit dem Du Deine Konstantstromquelle (KSQ) für die LEDs ansteuern kannst.
Quote
Versteh ich das denn richtig, dass der Ausgang des TLC Strom aufnimmt?
Ja, ist richtig, aber den Strom, der an den Ausgängen angeschlossenen LEDs.
Das Schaltbild ist aber richtig (wenn man annimmt daß, die LEDs am TLC nicht angeschlossen werden).
Grüße Uwe

voithian

#24
Apr 07, 2011, 10:48 am Last Edit: Apr 07, 2011, 11:02 am by voithian Reason: 1


Im Normalbetrieb wird der Strom vom Arduino (+5v) ausgehen und fließt in den TLC, daher also Senke ;)

ja
Quote

(Versteh ich das denn richtig, dass der Ausgang des TLC Strom aufnimmt?)

ja
Quote

Da dieser Strom begrenzt werden muss (um den TLC nicht duchzufackeln) pack ich nen Widerstand davor?

nein. Der TLC ist eine Konstantstromquelle (besser gesagt Senke). Der Strom der in den TLC hineinfließt, wir durch den Widerstand an IRef festgelegt. Ich würde gefühlsmäßig sagen, auch wenn du den Widerstand durch ein Stück Draht ersetzt, fließt kein größerer, als der mit IRef eingestellte Strom.
Durch die PWM-Modulation dieses Stromes wird der Strom ja für eine bestimmte Zeit eingeschaltet und für eine bestimmte Zeit ausgeschaltet.
Wenn der Strom ausgeschaltet ist, fällt an dem Widerstand keine Spannung ab. damit liegen am Ausgangspin 5Volt. Wenn der Strom eingeschaltet ist, fällt an dem Widerstand nach dem Ohmschen Gesetz eine Spannung UR=R*I ab. Die Spannung am Ausgangspin ist dann 5V-UR und sollte nahe 0V sein.

Ergänzung: wenn der Spannungsabfall an R genau 5Volt betragen soll (damit die Ausgangsspannung 0V ist), muss bei bei einem Strom von 5,8 mA der Widerstand 862 Ohm betragen. Soviel die Theorie. Wie die Konstantstromquelle des TLC das sieht, ist ein anderes Thema. Daher die früheren Worte mit Verifizieren, Versuch usw. ;)

uwefed

#25
Apr 07, 2011, 12:41 pm Last Edit: Apr 07, 2011, 12:54 pm by uwefed Reason: 1


Im Normalbetrieb wird der Strom vom Arduino (+5v) ausgehen und fließt in den TLC, daher also Senke ;)

ja

Bei Der Spannungsversorgung (+5V und Masse) würde ich aber diese Betrachtung nicht machen. ( außer, daß wenn Strom herausfließt eine Quelle ist und hineinfließt eine Senke ist, also laut Deine Betrachtung sind die +5V eine Quelle und die Masse ist eine Senke).

Die +5V sind einfach die Spannungsversorgung und damit basta. Ob Du sie vom Arduino hernimmst oder von einem 5V Netzteil mit dem Du Deine Schaltung mit dem TLC und den Arduino versorgst ist unerheblich für die Funktion.

Grüße Uwe

currymuetze

#26
Apr 07, 2011, 01:19 pm Last Edit: Apr 07, 2011, 01:22 pm by currymuetze Reason: 1
Hi,
hört sich zunächst kompliziert an, aber so langsam komme ich glaub ich dahinter.
Werd ich auf jeden fall mal bauen und dann testen.

Eine Sache noch:
Quote
Dann sollte die Spannung am Ausgangspin des TLC ungefähr 5V sein (oder ungefähr 0V). Nun das ganze umgekehrt: über das Programm ein PWM-Verhältnis von 0% einstellen. Jetzt sollte die Spannung ungefähr 0V sein (oder ungefähr 5V). Und bei 50% PWM sollten es etwa 2,5V sein.

Welche Spannung sollte denn, wenn ichs richtig mache vorhanden sein? Die Werte in den Klammern oder die davor?
Rein Logisch hätte ich jetzt gesagt, PWM=4095 => 5v & PWM=0 => 0V (es verwirren mich nur grad die Klammerwerte)

Seh ich das richtig, dass je genauer ich den Widerstand setze und dadurch recht nah an genau 0V komme, desto weniger hell wird die LED leuchten bei PWM=1? Ausgangsziel warum ich diese ganze FUmmelei mache war ja, dass ich mit 12 BIT einfach "dezenter" und weniger "treppenstufenähnlich" dimmen kann als mit 8 BIT. Trotzdem sollte die LED bei PWM=0 nicht mehr leuchten .Wie ist das eigentlich mit HIGH und LOW?

Gruß

voithian

#27
Apr 07, 2011, 02:28 pm Last Edit: Apr 07, 2011, 02:36 pm by voithian Reason: 1

Eine Sache noch:
Quote
Dann sollte die Spannung am Ausgangspin des TLC ungefähr 5V sein (oder ungefähr 0V). Nun das ganze umgekehrt: über das Programm ein PWM-Verhältnis von 0% einstellen. Jetzt sollte die Spannung ungefähr 0V sein (oder ungefähr 5V). Und bei 50% PWM sollten es etwa 2,5V sein.

Welche Spannung sollte denn, wenn ichs richtig mache vorhanden sein? Die Werte in den Klammern oder die davor?
Rein Logisch hätte ich jetzt gesagt, PWM=4095 => 5v & PWM=0 => 0V (es verwirren mich nur grad die Klammerwerte)

Ich wollte dich nicht verwirren.
Du musst bedenken, dass bei PWM das Ausgangssignal immer zwischen 0V und 5 V umgeschaltet wird. Zwischenwerte gibt es nicht. Nur ist es bei 4095 innerhalb einer Periode ganz lang auf High und nur ganz winzig kurz auf Low. Daraus resultiert in diesem Fall eine auf dem Voltmeter angezeigte Spannung von 5Volt (weil das Ding ein wenig langsam ist). Und bei 0 ist das Ausgangssignal nur ganz kurz (man könnte auch sagen: garnicht) auf High und es wird 0V angezeigt. Und bei 50% ist das Ausgangssignal die Hälfte der Zeit auf 5Volt und die Hälfte der Zeit auf 0V. Und das Voltmeter bügelt das auf 2,5V aus.

Die Aussage mit den Werten in Klammern rührt daher, dass ich vorhin keine Lust zum Nachdenken hatte. Beim TLC bedeutet 4095 ja, dass die LED den größten Teil der Zeit innerhalb einer Periode eingeschaltet ist (Strom fließt) und die LED am hellsten leuchtet. Bei deiner Schaltung (mit Widerstand statt LED) fließt bei 4095 auch den größten Teil der Zeit ein Strom, der aber in diesem Fall am Widerstand abfällt. Somit bleibt am Ausgangspin des TLC die größte Zeit keine Spannung übrig (5V-UR) und der gemittelte Wert ist 0V. Die Logik ist also invertiert. Es gelten also die Angaben in Klammern.
Quote

Seh ich das richtig, dass je genauer ich den Widerstand setze und dadurch recht nah an genau 0V komme, desto weniger hell wird die LED leuchten bei PWM=1? Ausgangsziel warum ich diese ganze FUmmelei mache war ja, dass ich mit 12 BIT einfach "dezenter" und weniger "treppenstufenähnlich" dimmen kann als mit 8 BIT. Trotzdem sollte die LED bei PWM=0 nicht mehr leuchten .Wie ist das eigentlich mit HIGH und LOW?

Nein. Je genauer du den Widerstand setzt, desto genauer erhältst du die Spannung für LOW am Ausgang des TLC. Die sollte theoretisch bei 0 liegen, darf aber ruhig auch einige hundert mV betragen.

Nochmal zur Klarstellung: bei PWM hängt die erzielte Helligkeit bespielsweise einer LED nur vom Verhältnis der An- und Auszeit ab. Das PWM-Signal pendelt immer zwischen LOW und HIGH (nur halt unterschiedlich lang).

Wolfgang

[Edit]
@currymuetze
Könnte es sein, dass doch der von uns vor ein paar Wochen diskutierte Ansatz mit der Softwarelösung (16-Bit Timer und FAST PWM) weniger aufwändig gewesen wäre?

uwefed

#28
Apr 07, 2011, 02:33 pm Last Edit: Apr 07, 2011, 03:22 pm by uwefed Reason: 1

Eine Sache noch:
Quote
Dann sollte die Spannung am Ausgangspin des TLC ungefähr 5V sein (oder ungefähr 0V).

Welche Spannung sollte denn, wenn ichs richtig mache vorhanden sein? Die Werte in den Klammern oder die davor?
Rein Logisch hätte ich jetzt gesagt, PWM=4095 => 5v & PWM=0 => 0V (es verwirren mich nur grad die Klammerwerte)

Die Werte in Klammern ist Wert für LOW-Pegel.
Quote from: currymuetze

Seh ich das richtig, dass je genauer ich den Widerstand setze und dadurch recht nah an genau 0V komme, desto weniger hell wird die LED leuchten bei PWM=1? Ausgangsziel warum ich diese ganze FUmmelei mache war ja, dass ich mit 12 BIT einfach "dezenter" und weniger "treppenstufenähnlich" dimmen kann als mit 8 BIT. Trotzdem sollte die LED bei PWM=0 nicht mehr leuchten .Wie ist das eigentlich mit HIGH und LOW?


Ich setzte verdächtig oft das Wort "NEIN" ein.

Also:  Nein. PWM-Signal ist ein Rechtecksignel mit konstanter Frequenz. Was sich ändert ist das Verhältnis von HIGH-Zeit zu LOW-Zeit. Bei PWM-Wert von 0 ist die HIGH-Zeit 0% der Periodendauer.  Bei PWM-Wert von 4095 ist die HIGH-Zeit 100% der Periodendauer.  Bei PWM-Wert von 2047 ist die HIGH-Zeit 50% der Periodendauer.  

Die KSQ hat als Eingang ein PWM-Signal. Das PWM-Signal ist ein digitales Signal. Ein bestimmter Spannungsbereich wird als LOW interpretiert und ein anderer als HIGH. Mit der Ausgangsspannung des TLD mußt Du in diesen beiden Bereichen drin sein ansonsten erkennt die KSQ das PWM-Signal nicht. Aus dem Datenblatt: http://www.micro-bridge.com/data/CRpowtech/PT4115E.pdf
VDIM_H DIM input voltage High  min: 2.5 V (Mindestspannung HIGH-Level Eingangsspannung Dim-PWM-Eingang)
VDIM_L DIM input voltage Low max: 0.3 V (Höchstspannung LOW-Level Eingangsspannung Dim-PWM-Eingang)

Die ganze Sinn der Herumfummelei ist, daß die KSQ die Logiklevel des PWM-Signals richtig versteht.

Das PWM Signal geglättet ergibt eine Gleichspannung zwischen 0V und 5V, die Du mit dem Multimeter messen kannst.

Viele Grüße Uwe

voithian

#29
Apr 07, 2011, 02:41 pm Last Edit: Apr 07, 2011, 02:42 pm by voithian Reason: 1
Hallo Uwe,

warum antworten wir eigentlich immer mehr oder weniger gleichzeitig?  ;) ;) ;)
Da machen wir uns doch nur doppelte Arbeit.

Ich bin vorerst mal raus und mache meine Umsatzsteuer-Voranmeldung für das abgelaufene Quartal. Ist zwar langweiliger als Arduino, muss aber leider sein.

Gruß
Wolfgang

Go Up