Ich habe einen TLC5942 Treiber welchen mittels eines uP's angesteuert wird. 16 mal 7 Bit schreibe ich raus und setze den XDCLAT kurz auf high. (1/18.42MHz) = 54 ns des Signal muss ja mindestens 30 ns lang sein. Dass sollte klappen. OUT 0-11 habe ich LED's angehängt. DCSCLK clk von uP DCSIN signal von uP IREF = 1KOhm GSSIN = 0V GSSCLK = 0V XGSLAT = 0V BLANK = 0V VCC = 5V Das Signal habe ich mittels KO überprüft. Habe ich etwa vergessen oder fehlerhaft angeschlossen? Da gal was ich für ein Code in den Treiber schreibe keiner der Ausgänge schaltet.
ich kommuniziere über die SPI dort gebe ich das Signal raus und der Clock ist ja somit automatisch. Wie oben erwähnt habe ich es mit dem ko geprüft und die Bits stimmen mit dem Clock überein. Einen Schaltplan habe ich nicht da es ja nur ein clk das signal und den XDCLAT setze. 3 drähte di anderen eingänge auf 0 gezogen und den iref mittels 1kOhm auf o gezogen. LED's direkt auf 5V da ja der Strom begrenzt wird und somit die max. Spanung irrelevant wird.
Frank schrieb: > Einen Schaltplan > habe ich nicht da es ja nur ein clk das signal und den XDCLAT setze. 3 > drähte di anderen eingänge auf 0 gezogen und den iref mittels 1kOhm auf > o gezogen. LED's direkt auf 5V da ja der Strom begrenzt wird und somit > die max. Spanung irrelevant wird. du füllst also nur die Korrekturwerte, aber hast keine PWM-Daten geladen? dann ist doch klar, dass nix passiert. null mal korrekturwert ist doch immer noch null
Sind bei diesem Baustein nicht einfach 2 Möglichkeiten. 1. über PMW die LED steuern 2. über Konstantstrom
Frank schrieb: > Sind bei diesem Baustein nicht einfach 2 Möglichkeiten. > > 1. über PMW die LED steuern > 2. über Konstantstrom naja indirekt. bei Nr zwei zweckentfremdest du ein Feature. Das ding heißt dot correction und ist dazu da, dass man fertigungsbedingte Helligkeitsschwankungen korrigieren kann. Man stellt hier einen Korrekturwert ein, dass eine LED anstatt mit 20mA nur mit 18mA betrieben wird. Damitt die LED aber überhaupt angeht, muss sie ja aber einen PWM-Wert != 0 haben. sprich, damit du die Helligkeit über die dc steuern kannst, solltest du alle Kanäle einmal auf Maximum setzen. Warum willst du überhaupt die dc (7bit anstatt 12bit) benutzen? Bandbreitenprobleme? edit: ich finde den TLC5940/TLC5941 besser, da gibts einen seperaten Eingang für den PWM-Takt, so dass man Daten befüllen und PWM-Takterzeugung mit unterschiedlichen Frequenzen erledigen kann.
Aha ja dann geht das so nicht wie ich mir das erhofft habe. Nun habe ich das so abgeändert wie sie es mir empfohlen haben. Aber die LED's brennen noch nicht al zu hell :D. Besser gesagt gar nicht. Stimmt meine überlegung. PAOUT |= ~0x05; for(n=0; n < 192; n++) { PAOUT |= 0x02; PAOUT |= 0x03; PAOUT &= ~0x03; PAOUT &= ~0x02; } PAOUT |= ~0x04; PAOUT &= ~0x04; PAOUT &= ~0x05; zum ausprobieren damit ich die Spi nicht neu setzen muss. blank auf high dann die verschiedene Bits alle auf high paout2 ist mein gebastelter counter. dann mit xgslat die daten in das latchs schreiben und blank auf low for(n = 0; n < 16; n++) { SPIDATA = 0x7F<<1} PAOUT |= 0x01; PAOUT &= ~0x01; nun noch den strom aller auf high .
Nun leuchten die LED's aber das Steuern geht noch nicht ganz. Verstehe ich das richtig. PAOUT |= 0x05; // Blank for(n=0; n < 112; n++) { PAOUT |= 0x03; // DCSIN PAOUT |= 0x02; // DCSCLK PAOUT &= ~0x03; PAOUT &= ~0x02; } PAOUT |= 0x01; //XDCLAT PAOUT &= ~0x01; PAOUT |= 0x05; for(n = 0; n < 4; n++) { SPIDATA = 0xFF; SPIDATA = 0x0F; SPIDATA = 0x00; SPIDATA = 0x00; SPIDATA = 0x00; SPIDATA = 0x00; } PAOUT |= 0x04; // GS XLAT PAOUT &= ~0x04; PAOUT &= ~0x05; Blank low Kurz gesagt blank high dc setzen gs setzen blank low und eine ständige Frequenz auf gssclk geben. Habe ich das richtig verstanden? Falls das jemand schon gemacht hat wie realisiere ich das am besten mit der Frequenz? Ein Bauteil auf welches die Frequenz und den SPIClock draufgebe und mit einem Ausgang vom uP das Bauteil schalte, entweder SPI Clock oder Frequenz?
@ Frank (Gast) >Falls das jemand schon gemacht hat wie realisiere ich das am besten mit >der Frequenz? Ein Bauteil auf welches die Frequenz und den SPIClock >draufgebe und mit einem Ausgang vom uP das Bauteil schalte, entweder SPI >Clock oder Frequenz? Viel zukompliziert. Nutzt die Output Compare Funktion um einen Takt der gewünschten Frequenz zu erzeugen. Das entlastet die CPU massgeblich. MFG Falk
Frank schrieb: > Aha ja dann geht das so nicht wie ich mir das erhofft habe. > Nun habe ich das so abgeändert wie sie es mir empfohlen haben. Aber die > LED's brennen noch nicht al zu hell :D. Besser gesagt gar nicht. meiner meinung nach müsste es trotzdem fast so gehen. du musst nur auf alle kanäle einen PWM-Wert ungleich 0 geben (am besten maximum) und dafür sorgen, dass er mit seinem PWM-Zyklus beginnt, also eins, zwei Takte geben, damit die Ausgänge eingeschaltet werden. Dann kannst du die GS_Clock in ruhe lassen. Dann müssten die LEDs ja entsprechend des im Dot-Corroection-Register eingestellten Wertes, unterschiedlich hell leuchten. Ist aber nur Vermutung. getestet habe ich das nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.