robuster LED-Controller gesucht
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
robuster LED-Controller gesucht
Hi,
nachdem der MY9942 mir einige graue Haare gebracht und mich etliche Stunden gekostet hat, suche ich nach einer Alternative.
Ich bin angesichts der Auswahl etwas ratlos und suche einen LED-Controller, der idealerweise folgendes bietet:
-PWM mit >>8 Bit am Ausgang
-"Gammakorrektur" (habe gehört dass das mit dem Gamma nichts zu tun haben soll, aber ich hoffe hier weiß jeder was ich meine)
-Eingabe mit 8 bit reicht
-PWM-Ausgang, der ohne große Bastelei mit einem N-Mosfetgate verbunden werden kann.
(somit ist der TLC5940 schon mal raus, den habe ich hier schon herumliegen)
-eigenständige Taktung (spricht auch gegen den TLC5940, ich will nur ein paar Streifen und keinen LED-Würfel dimmen, da muss es nicht synchron sein)
-SPI oder noch besser I2C
-mindestens 4 Kanäle
-DIP-Gehäuse (sonst brauche ich halt ne Adapterplatine...)
nachdem der MY9942 mir einige graue Haare gebracht und mich etliche Stunden gekostet hat, suche ich nach einer Alternative.
Ich bin angesichts der Auswahl etwas ratlos und suche einen LED-Controller, der idealerweise folgendes bietet:
-PWM mit >>8 Bit am Ausgang
-"Gammakorrektur" (habe gehört dass das mit dem Gamma nichts zu tun haben soll, aber ich hoffe hier weiß jeder was ich meine)
-Eingabe mit 8 bit reicht
-PWM-Ausgang, der ohne große Bastelei mit einem N-Mosfetgate verbunden werden kann.
(somit ist der TLC5940 schon mal raus, den habe ich hier schon herumliegen)
-eigenständige Taktung (spricht auch gegen den TLC5940, ich will nur ein paar Streifen und keinen LED-Würfel dimmen, da muss es nicht synchron sein)
-SPI oder noch besser I2C
-mindestens 4 Kanäle
-DIP-Gehäuse (sonst brauche ich halt ne Adapterplatine...)
Re: robuster LED-Controller gesucht
Da gibs den WS2801.
Oder eine WS2812 das ist eine RGB-LED mit integrierten Controller.
http://www.adafruit.com/datasheets/WS2801.pdf
Oder eine WS2812 das ist eine RGB-LED mit integrierten Controller.
http://www.adafruit.com/datasheets/WS2801.pdf
Re: robuster LED-Controller gesucht
Der WS2801 ist nicht gänzlich unbrauchbar, aber ich habe ihn in der Bucht bisher noch nicht im DIP-Gehäuse gesehen, 8 Bit habe ich auch am AVR...
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: robuster LED-Controller gesucht
Klingt ganz und gar nach nem AVR!
Der hat auch nicht nur 8 Bit, es gibt auch welche mit 16bit PWM und die stellste auf 10 oder 12 bit für die Gamma LUT.
Dem TLC5940 kann man übrigens "Eigentaktung" beibringen, hab ich auch gemacht.
An nen Mosfet kannste den auch anschließen mit nem Pullupwiderstand.
Schaltplan:
Funktionsbeschreibung (zitiere mich mal aus nem anderen Forum):
Der hat auch nicht nur 8 Bit, es gibt auch welche mit 16bit PWM und die stellste auf 10 oder 12 bit für die Gamma LUT.
Dem TLC5940 kann man übrigens "Eigentaktung" beibringen, hab ich auch gemacht.
An nen Mosfet kannste den auch anschließen mit nem Pullupwiderstand.
Schaltplan:
Funktionsbeschreibung (zitiere mich mal aus nem anderen Forum):
Wenn man GSCLK und BLANK vor Ort erzeugt (Tiny25) und ein kleines Anpassungsnetzwerk erzeugt, dann geht das auch mit normalem SPI.
Alle 4096 GSCLK Impulse brauchts nen BLANK Impuls, damit der interne PWM Zähler resettet wird.
XLAT darf nur HIGH sein, wenn BLANK dies auch ist.
MODE muss mitgeführt werden, weil die Latches zufällig initialisieren und somit auch die DOTcorrection eingestellt werden muss.
GSCLK hat dann komischerweise das 4096fache der PWM Freqenz. Also bei Flimmerfreien 250Hz schon 1MHz
Allerdings statt den Transen etwas aus Gattern bauen (4x NAND sollte reichen).
MODE Umschaltung erfolgt durch längeres LOW halten der CS Leitung.
Das nur wegen Pinmangel am Hauptprozessor, MODE kann ja mitgeführt werden.
Re: robuster LED-Controller gesucht
Die vom Atmega 2560 mit 100 Pins sind sogar recht brauchbar angeordnet.Fritzler hat geschrieben: Der hat auch nicht nur 8 Bit, es gibt auch welche mit 16bit PWM
Mal mit den TCCRs spielen...
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: robuster LED-Controller gesucht
Wenn der DIP is fress ichn Besen.
Ich dachte da eher an den 1284P, total oversized aber hat eben 4x 16 bit PWM.
Aber nich so oversized wie ein 2560 Allerdings sind 12x16bit kanäle auch ned schlecht.
Ansonsten kann man noch in Software ne 4x13bit PWM zaubern oder man macht BAM (Bit Angle Modulation).
In meinem Zimmerlicht werkelt nen mega64, der hat 6x 16bit PWM.
Was willste denn bauen?
Ich dachte da eher an den 1284P, total oversized aber hat eben 4x 16 bit PWM.
Aber nich so oversized wie ein 2560 Allerdings sind 12x16bit kanäle auch ned schlecht.
Ansonsten kann man noch in Software ne 4x13bit PWM zaubern oder man macht BAM (Bit Angle Modulation).
In meinem Zimmerlicht werkelt nen mega64, der hat 6x 16bit PWM.
Was willste denn bauen?
Re: robuster LED-Controller gesucht
Der 2560 sitzt hier schon auf ner Platine
Ich will mal mit RGBW-LED-Beleuchtung im Auto experimentieren.
Der 2560 holt sich mittels MCP2515 Daten vom CAN-Bus, da mir ELM327 und STN1110 zu viel Strom brauchen und ich nicht so viel Abstraktion brauche.
Etwas doof:
Ich habe zwar Timer 5 erfolgreich für die PWM gewinnen können, aber da habe ich ja nur 3 Kanäle.
Fehlt einer für RGBW :/
Und am TLC5940 hasse ich die Furgelei die eine richtige Ansteuerung der Mosfets erfordert... (also dass die LEDs vor der Initialisierung aus sind - die durch +B-Trennung auszuknipsen finde ich etwas pfuschig-wohlfeil)
Ich will mal mit RGBW-LED-Beleuchtung im Auto experimentieren.
Der 2560 holt sich mittels MCP2515 Daten vom CAN-Bus, da mir ELM327 und STN1110 zu viel Strom brauchen und ich nicht so viel Abstraktion brauche.
Etwas doof:
Ich habe zwar Timer 5 erfolgreich für die PWM gewinnen können, aber da habe ich ja nur 3 Kanäle.
Fehlt einer für RGBW :/
Und am TLC5940 hasse ich die Furgelei die eine richtige Ansteuerung der Mosfets erfordert... (also dass die LEDs vor der Initialisierung aus sind - die durch +B-Trennung auszuknipsen finde ich etwas pfuschig-wohlfeil)
-
- Beiträge: 51
- Registriert: So 11. Aug 2013, 18:41
Re: robuster LED-Controller gesucht
Den gibt's auch noch als WS2803, im DIP-28 Gehäuse. Hat dann auch 18 Ausgänge, dürfte ja reichen.Nicki hat geschrieben:Der WS2801 ist nicht gänzlich unbrauchbar, aber ich habe ihn in der Bucht bisher noch nicht im DIP-Gehäuse gesehen, 8 Bit habe ich auch am AVR...
Re: robuster LED-Controller gesucht
Ich schlage mich gerade mit dem Timer 5 und dessen Registern...
Initialisierung sieht so aus:
Irgendwie will OCR5AH keine Werte annehmen, beim Lesen kommt nur 0 - im Gegensatz zu OCR5AL...
Weiß jemand wo der Fehler liegt?
Code: Alles auswählen
int pwm(int r, int g, int b)
{
unsigned char sreg;
sreg = SREG;
OCR5AL= r;
OCR5BL= g;
OCR5CL= b;
OCR5AH= (r>>8);
OCR5BH= (g>>8);
OCR5CH= (b>>8);
SREG = sreg;
}
Code: Alles auswählen
DDRL= B00111000 ;
TCCR5A = B10101000;
TCCR5B = B00010010;
ICR5H= B00001111;
ICR5L= B11111111;
OCR5AH= B0000000;
OCR5AL=B00000000;
OCR5BH= B0000000;
OCR5BL=B00000000;
OCR5CH= B0000000;
OCR5CL=B00000000;
Weiß jemand wo der Fehler liegt?
- Bastelbruder
- Beiträge: 11559
- Registriert: Mi 14. Aug 2013, 18:28
Re: robuster LED-Controller gesucht
ist es vielleicht das?
...
OCR5AH= B0000000; . . 7bits
OCR5AL=B00000000; . 8bits
OCR5BH= B0000000; . .7bits
OCR5BL=B00000000; . .8bits
OCR5CH= B0000000; . .7bits
...
...
OCR5AH= B0000000; . . 7bits
OCR5AL=B00000000; . 8bits
OCR5BH= B0000000; . .7bits
OCR5BL=B00000000; . .8bits
OCR5CH= B0000000; . .7bits
...
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: robuster LED-Controller gesucht
Code: Alles auswählen
DDRL= B00111000 ;
TCCR5A = B10101000;
TCCR5B = B00010010;
ICR5H= B00001111;
ICR5L= B11111111;
OCR5AH= B0000000;
OCR5AL=B00000000;
OCR5BH= B0000000;
OCR5BL=B00000000;
OCR5CH= B0000000;
OCR5CL=B00000000;
Ich zieh dir gleich die Hammelbeine lang!
Das wird jetzt ersmal ordentlich geschrieben ala
TCCR5B |= (1<<CS50);
sonst kannste dir den Support an die Backe schmiern, weil das keine Sau lesen kann!
Außerdem musste nicht auf ICR5 und die OCR mit 2x8Bit zugreifen, das macht der Compiler selbst, also: ICR = 0x0fff;
Re: robuster LED-Controller gesucht
Gnade!Fritzler hat geschrieben: WOAH!
Ich zieh dir gleich die Hammelbeine lang!
Das war meine erste Registerspielerei überhaupt
Danke, das hats gebrachtAußerdem musste nicht auf ICR5 und die OCR mit 2x8Bit zugreifen, das macht der Compiler selbst, also: ICR = 0x0fff;
So besser?
Oder kann man die Bitshifts noch zusammenfassen?
Code: Alles auswählen
DDRL= B00111000 ;
TCCR5A |= (1<<COM5A1);
TCCR5A |= (1<<COM5B1);
TCCR5A |= (1<<COM5C1);
TCCR5B |= (1<<CS51);
TCCR5B |= (1<<WGM53);
ICR5= 0x0fff;
OCR5A= 0;
OCR5B= 0;
OCR5C= 0;
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: robuster LED-Controller gesucht
Kommentare sind auch wichtig mit du später mal weist was du da verzapft hast.
So würd ich das schreiben:
So würd ich das schreiben:
Code: Alles auswählen
//PWM init (Timer5), Grundfrequenz (kann ich ned hinschreiben, kenne die Systemclock ned)
//PWM out non inv.
DDRL |= (1<<PL5)|(1<<PL4)|(1<<PL3);
TCCR5A = (1<<COM5A1)|(1<<COM5B1)|(1<<COM5C1);
//CLK/8, Phase_Freq_PWM_ICR
TCCR5B = (1<<CS51)|(1<<WGM53);
//12bit PWM
ICR5 = 0x0fff;
Re: robuster LED-Controller gesucht
Schon wenn ich
statt
verwende tut sich nichts mehr
Scheint der Compiler nicht zu mögen...
Code: Alles auswählen
DDRL |= (1<<PL5)|(1<<PL4)|(1<<PL3);
Code: Alles auswählen
DDRL = B00111000;
Scheint der Compiler nicht zu mögen...
Re: robuster LED-Controller gesucht
Dann mach mal das Oder vor dem Gleich weg. Du willst ja das ganze Byte schreiben und nicht nur die Einsen.
- Weisskeinen
- Beiträge: 3950
- Registriert: Di 27. Aug 2013, 16:19
Re: robuster LED-Controller gesucht
Noch mal zur ursprünglichen Frage: Ich habe mir den PCA9685 bestellt (<2€/Stk.), aber mangels Hardware noch nichts damit gemacht. Das ist ein 16-kanaliger LED-Controller mit 12-Bit-PWM und I²C-Bus. An dessen Push-Pull-Ausgänge kann man direkt FETs anschließen. Der arbeitet mit einem internen Takt, kann aber bei Bedarf auch einen externen annehmen. Der Nachteil von dem Teil ist das TSSOP28-Gehäuse. Für DIL brauchst du da einen Adapter.
- Chaoskreator
- Beiträge: 943
- Registriert: Mo 12. Aug 2013, 20:58
- Wohnort: 92xxx
Re: robuster LED-Controller gesucht
Das blöde ist oft, dass es schöne neue ICs gibt, nur dass es die so gut wie immer nur in SMD oder gar BGA gibt und nicht in DIL. Das wird sicherlich in Zukunft nicht besser werden...
Ich hatte SMD gemieden wie der Teufel das Weihwasser, aber was will man machen. Moderne ICs sind halt doch oft sehr praktisch und da krümme ich mir dann doch mal das Kreuz und löte direkt vor der Nase die Bauteile auf.
Einen Tipp am Rande: Wenn ich ICs suche, nutze ich immer die Seite von Digikey. Da kann man schön halbwegs sinnvoll Parameter auswählen, nicht wie z.B. bei Conrad oder oder Reichelt.
Ich hatte SMD gemieden wie der Teufel das Weihwasser, aber was will man machen. Moderne ICs sind halt doch oft sehr praktisch und da krümme ich mir dann doch mal das Kreuz und löte direkt vor der Nase die Bauteile auf.
Einen Tipp am Rande: Wenn ich ICs suche, nutze ich immer die Seite von Digikey. Da kann man schön halbwegs sinnvoll Parameter auswählen, nicht wie z.B. bei Conrad oder oder Reichelt.
- Weisskeinen
- Beiträge: 3950
- Registriert: Di 27. Aug 2013, 16:19
Re: robuster LED-Controller gesucht
Höheren Tisch oder niedrigeren Stuhl bauen?Chaoskreator hat geschrieben: Moderne ICs sind halt doch oft sehr praktisch und da krümme ich mir dann doch mal das Kreuz und löte direkt vor der Nase die Bauteile auf.
Re: robuster LED-Controller gesucht
Ich auch, bis ich meine ersten Experimente mit Widerständen (erst "1206", dann "0805") angestellt habe... Mit viel!! Licht und einem guten "Optikverstärker" wirst du auch den "Draht dazu" finden. Bei den Chips mit "rundherum 100 Pins" hört es (momentan) bei mir auf, aber *einen* davon habe auch ich schon erfolgreich "bearbeitet"... Und brenn' dir nicht die Nase am Lötkolben anChaoskreator hat geschrieben:Ich hatte SMD gemieden wie der Teufel das Weihwasser, aber was will man machen.