www.mikrocontroller.net

Forum: Codesammlung TLC5922, TLC5923, TLC5924 Ansteuerung für zB Mood Light

Autor: Kai Franke (kai-) Benutzerseite
Datum: 02.02.2008 16:45
Dateianhang: tlc5922.zip (3,8 KB, 161 Downloads)

Hallo allerseits,

ich habe mich endlich dazu durchringen können eine Ansteuerung für den
TLC5922 zu schreiben. Dafür musste heute morgen zwar die Mathe
Übungsklausur ausfallen (war spät gestern), aber ich denke es hat sich
gelohnt.


Ganz kurz zum TLC selbst:

Es handelt sich um einen Konstantstrom LED Treiber mit 16 seperat
modifizierbaren Ausgängen und 7 Bit Farbtiefe (über 2 Mio Farben)
Der größte Vorteil im Gegensatz zu anderen Treibern wie zB dem MAX6957
ist, dass er eigentlich keine Adressierung hat und dadurch um einiges
schneller anzusteuern ist. Wo ich gerade bei Ansterung bin muss ich noch
erwähnen, dass er SPI Signal vorgesetzt bekommt und dieses auch an
weitere Treiber übergeben kann. Dazu ist es nötig alle Treiber
daisy-chained anzuschließen.

Genau diese daisy-chained Eigenschaft habe ich bei meinem Code
ausgenutzt, so ist es möglich beliebig viele Treiber "in Reihe"
anzusteuern. Die Anzahl der angeschlossenen Treiber muss nur noch bei
den defines eingestellt werden


Jetzt zum Programm:

Ich habe mir Mühe gegeben so viel wie möglich zu kommentieren, damit es
recht einfach nachzuvollziehen ist, hoffe ihr kommt damit klar.
Es stehen viele Funktionen wie zB ein Moodlight Effekt oder ein
Lauflicht zur Verfügung, das sogar über alle angeschlossenen Treiber
"rüber läuft".
Zur einfacheren Veränderung der Helligkeit bzw des AN/AUS Status habe
ich zusätzlich Arrays eingeführt in die der Benutzer seine Daten
reinschreiben kann und dieses dann mit einer Funktion in ein SPI
geeignetes Array zu transferieren.
Alle Funktionen sind allerdings auch noch im Code erklärt und
aufgelistet.

Für die schnellen unter euch habe ich ein Testprogramm hinzugefügt in
dem alle wichtigen Funktionen aufgerufen werden, sodass man sieht was
welche Funktion bewirkt und nicht im Source wühlen muss.


So, jetzt muss ich noch was beichten... ich habe den Code mit Codevision
geschrieben, weshalb er auch nur dort compiliert. Wer sich mit dem GNU
auskennt kann gerne auch noch eine Alternativversion posten.
Alle die darauf nicht warten wollen können sich auch einfach die
Trialversion herunterladen, die reicht aus vorrausgesetzt man compiliert
nach Speed und nicht nach Größe (kleiner Tip am Rande, ist wohl ein Bug
beim Programm ;)


Wer sich die Treiber mal anschauen will, dem kann ich gerne mal einen
vorbeischicken, Adapter für Lochraster hab ich auch machen lassen.
Wenn sich hier noch ein paar finden, die den TLC5922 auch gerne verbauen
würden, gebt mir bitte Bescheid, dann organisier ich eine digikey
Bestellung sobald wir 100 Treiber zusammen haben (dann werden die sehr
billig)


Das war jetzt erstmal alles, was mir dazu einfällt, macht mit dem Code
was ihr wollt, ist alles Freeware, ihr müsst ihn ja nicht aufs
Toilettenpapier drucken :(


Grüße an den Rest der Elektroniker oder die, die es werden wollen

Kai
Autor: Florian (Gast)
Datum: 27.02.2008 11:44

Hallo Kai,

ich hätte Interesse an 2 oder 4 Stück von den TLC5922.
Hast du welche über die du, auch gegen Bezahlung, entbehren könntest?

Viele Grüße
Flo
Autor: Kai (Gast)
Datum: 27.02.2008 20:42

Hallo,
kann welche entbehren, schreib mir am besten eine Mail
Autor: Florian Wiesenbacher (mechatroniker82)
Datum: 28.02.2008 08:47

wenn du mir deine email adresse hinterlässt gerne :)
somit hast du jemanden gefunden den du für den tlc5922 begeistert hast.
auch mit dem as1110 möchte ich erfahrungen sammeln.

danke
flo
Autor: Falk Brunner (falk)
Datum: 28.02.2008 09:42

@ Florian Wiesenbacher (mechatroniker82)

>wenn du mir deine email adresse hinterlässt gerne :)

Augen auf! Das erste Posting ganz oben, der Name ist blau, also ein
Link. Draufclicken und Mitteilung abschicken.

MfG
Falk
Autor: Kai (Gast)
Datum: 28.02.2008 20:51

>> auch mit dem as1110 möchte ich erfahrungen sammeln.

Die Treiber sehen ganz nett aus, allerdings haben die keine Dot
Correction, sind also für RGB LEDs unbrauchbar
Autor: Armin (Gast)
Datum: 04.05.2008 18:03

@Kai:

Also ich versuche auch gerade deine Lib in betrieb zu nehmen.
Ich habe jetzt nochmal eine Frage zu den LEDs.

Soweit ich es deinem Code entnehmen kann, gehst du davon aus dass LED1
an auch physikalisch an OUT0 des TLC5922 angeschlossen ist. Fall ich
dann RGB-LEDs einsetzen möchte, dann ist im Code momentan hinterlegt,
dass RGB-LED1 an OUT0 bis OUT2 , RGB-LED2 an OUT3 bis OUT5, ...
angeschlossen sind.

Was mache ich aber jetzt, wenn ich auf Grund meiner Hardware eben nicht
diese Reihenfolge habe. Wo und wie binde ich eine Zuordnungstabelle
meiner LEDs in den Code ein?

Würde mich über ein Feedback freuen.

Bin aber schon echt begeistert von dem Code:) Danke

Gruß Armin
Autor: Kai Franke (kai-) Benutzerseite
Datum: 06.05.2008 10:36

Hallo,
du hast das alles richtig verstanden, leider muss ich dich
enttäuschen...
Dieser Code ist nur für RGB LEDs gedacht, die so angeschlossen sind wie
du es gesagt hast.
Dadurch, dass ich >> Befehle benutze wäre beispielsweise das Lauflicht
außer Funkion.
Wieso kannst du die Hardware denn nicht ändern? eigentlich müsste meine
Anschlussart die am Einfachsten zu realisierende sein.

Gruß
Kai

PS: Updates kommen bald
Autor: Armin (Gast)
Datum: 11.05.2008 17:14

Hallo,

also was mir noch aufgefallen ist.

Du verwendest in deinem Code CS_ON und CS_OFF.
Aber der Pin des ATmega8 mit CS der SPI ist doch gar nicht mit den
LED-Treibern verbunden oder?

wieso setzt du dann diesen Pin des Mega 8 auf 1 bzw. auf 0?


Ich werde mir für oben genanntes Problem wohl noch eine Lösung überlegen
müssen, da auf Grund der Verlegung der Leiterbahnen diese Zuordnung
nicht möglich war.

Gruß Armin
Autor: Kai Franke (kai-) Benutzerseite
Datum: 13.05.2008 09:53

CS_ON und CS_OFF machen nichts anderes als den PORTB.2 auf 1 bzw 0 zu
schalten und genau dort müssen alle XLAT von den Treibern angeschlossen
werden. Das stimmt schon so :)
Wie du was anschließen musst hab ich versucht in den Kommentar zu
schreiben, wenn nötig kann ich auch noch einen Schaltplan hinzufügen

Gruß
Kai

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net