Hallo,
da ich momentan an einem RGB-LED-Projekt arbeite und mittels PWM dimme,
bräuchte ich einen "PWM-IC". Bisher machte ich das ganze mit einem
Atemga8, jedoch ist der bei einer 10bit PWM mit 200Hz recht stark
ausgelastet, und wenn ich dann alle PWM-Kanäle (8) mit 40Hz update, geht
gar nichts mehr.
Die 10bit sind eigentlich schon ein Kompromiss, lieber wären mir 12bit
oder noch mehr. Die 200Hz sind eigentlich akzeptabel, obwohl man bei
geringer Helligkeit, wenn man etwas schnell vorbei geht, unter Umständen
ein flackern sieht. Aber momentan würden mir die 200Hz dicke reichen.
Von daher wollte ich mal wissen, wie ich am besten PWM-Signale erzeugen,
oder ob ihr mir sowas wie einen "PWM-IC" empfehlen könnt, der für privat
gut zu besorgen ist und nicht ein kleines Vermögen kostet. Als
Ausstattung steht mir leider nur "Standard Atemga"-Material zur
Verfügung, also nichts besonderes, zum programmieren nutze ich den
ISP-Adapter von ulrichradig.de
Ein paar Eckdaten wären:
-min. 8 Kanäle
-~200Hz
-10bit und mehr
-Updaterate: ~40Hz
-digitale Ansteuerung (SPI, I2C, ...)
Hab natürlich etwas das Forum durchsucht, da wurde dann z.B. ein CPLD
vorgeschlagen, nur leider habe ich davon absolut keine Ahnung, weder wie
ich die Programmiere noch wie ich das Programm da "rein brenne"
geschweige denn Ausstattung dazu.
Und die ICs, die ich bis jetzt gefunden haben, sind leider für mich
nicht beschaffbar, wie MBI5030 oder die Bauteile von hier:
http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=analog&familyId=480&uiTemplateId=NODE_STRY_PGE_T
Was ich sonst noch so gefunden habe, wäre z.B. einfach einen CortexM3
oder ähnliches einzusetzen, der einfach mit einem entsprechende hohem
Takt läuft, aber davon hab ich dann auch weder Erfahrung/Ahnung noch
Ausstattung.
Hoffe, ihr könnt mir da ein wenig helfen.
Viele Grüße
Julian
Falk Brunner schrieb:> TLC5940 & C0 von Texas Instruments
Danke, endlich ein IC, den ich über den HBE-Shop beziehen kann. Ist zwar
nicht ganz günstig, hat aber alles, was ich brauche :) :) :)
Viele Dank, bist meine Rettung ;)
Julian W. schrieb:> Falk Brunner schrieb:>> TLC5940 & C0 von Texas Instruments>> Danke, endlich ein IC, den ich über den HBE-Shop beziehen kann. Ist zwar> nicht ganz günstig, hat aber alles, was ich brauche :) :) :)
Tip.
Bis zu 5 Muster kannst du auch bei TI sampeln.
Wenn du heute das Formular ausfüllst, hast du sie spätestens am Freitag
am Schreibtisch. Kostenfrei.
Karl heinz Buchegger schrieb:> Julian W. schrieb:>> Falk Brunner schrieb:>>> TLC5940 & C0 von Texas Instruments>>>> Danke, endlich ein IC, den ich über den HBE-Shop beziehen kann. Ist zwar>> nicht ganz günstig, hat aber alles, was ich brauche :) :) :)>> Tip.> Bis zu 5 Muster kannst du auch bei TI sampeln.>> Wenn du heute das Formular ausfüllst, hast du sie spätestens am Freitag> am Schreibtisch. Kostenfrei.
Gut, mir würden 3 reichen, da die ja 16 Kanäle haben. Einer zum
Einbauen, einer als Reserve und den anderen, mal seh'n ;)
Noch eine kurze Frage zu dem TLC5940:
Dieser wird ja über ein externes Takt-Signal getaktet, also für 200Hz
PWM-Frequenz müssen etwa 820kHz anliegen. Danach wird ja Blank
ausgelöst. Muss ich nach jedem Blank die PWM-Werte neu in den TLC5940
schreiben?
Und noch was. Die RGB-Leds treibe ich über extra KSQ, die natürlich
einen hochohmigen Enable Eingang haben, von daher würde mir doch der
PWM-Modus reichen und die Dot Correction kann ich getrost ignorieren, da
der TLC5940 ja nicht als Stromquelle dient. Aber das dürfte dem TLC5940
ja nichts ausmachen, dass dann nahezu kein Strom fließt.
Auf jeden Fall schon mal Danke für eure Hilfe :)
Julian W. schrieb:> Gut, mir würden 3 reichen, da die ja 16 Kanäle haben. Einer zum> Einbauen, einer als Reserve und den anderen, mal seh'n ;)
:-)
> Noch eine kurze Frage zu dem TLC5940:> Dieser wird ja über ein externes Takt-Signal getaktet, also für 200Hz> PWM-Frequenz müssen etwa 820kHz anliegen.
Nimm den TLC5947. Der hat auch noch den Takt intern und 24 Kanäle.
> Danach wird ja Blank> ausgelöst. Muss ich nach jedem Blank die PWM-Werte neu in den TLC5940> schreiben?
Nein.
Blank gibt nur die Ausgangstreiber frei. Die eigentliche PWM Generierung
ist davon nicht betroffen.
> Und noch was. Die RGB-Leds treibe ich über extra KSQ, die natürlich> einen hochohmigen Enable Eingang haben,
den 5940 kenn ich nicht.
aber der 5947 hat auch die KSQ eingebaut. Leider nur für alle Kanäle
denselben Strom, aber immerhin
> von daher würde mir doch der> PWM-Modus reichen und die Dot Correction kann ich getrost ignorieren, da> der TLC5940 ja nicht als Stromquelle dient. Aber das dürfte dem TLC5940> ja nichts ausmachen, dass dann nahezu kein Strom fließt.>> Auf jeden Fall schon mal Danke für eure Hilfe :)
Also der TLC5947 sieht auch sehr interessant aus. Mit welcher
PWM-Freqzenz läuft der dann, hab den Wert im Datenblatt noch nicht
gefunden.
Was mich nur wunder ist, warum der auch einen "Blank"-Leitung hat!?
Auf jeden Fall viele Dank für die Tipps :)
So, hab mich etwas über den TLC5947 eingelesen und hab nun noch eine
Frage dazu, dafür hat sich die Frage mit der "Blank"-Leitung erledigt ;)
Sehe ich das so richtig:
Wenn ich neue PWM-Daten in den TLC5947 schiebe, dann muss ich, nachdem
ich die Daten reingeschoben habe, die Blank-Leitung aktivieren, damit
die PWM von vorne startet. Ansonsten würde das ganze wohl flackern, weil
der TLC5947, sobald er neue PWM-Daten bekommt, einfach alle Ausgänge auf
LOW schaltet, bis die PWM von alleine durchläuft.
Schafft dass den z.B. ein Atmega8 überhaupt, da Falk hier
Beitrag "Re: TLC5947 ansteuern, dass kein Flackern entsteht"
meinte, dass die AVRs da etwas überfordert sein könnten. Immerhin soll
bei meinem Projekt der AVR nicht nur PWM-Daten ausgeben, sondern diese
auch mittels CAN empfangen.
Und welches Schema muss man da einhalten??? Angenommen, ich aktualisiere
die Daten mit 50Hz, dann dürfte es doch nichts machen, wenn ich 50mal in
der Sekunde die PWM zurücksetzte, um die Daten zu updaten, oder hab ich
da jetzt einen Denkfehler?
Ansonsten, wie kann ich das ganze denn dann synchron bekommen, so dass
ich z.B. ab dem 4000 Takt anfange, die PWM-Daten zu aktualisieren?
@ Julian W. (julian-w) Benutzerseite
>Schafft dass den z.B. ein Atmega8 überhaupt, da Falk hier>Beitrag "Re: TLC5947 ansteuern, dass kein Flackern entsteht">meinte, dass die AVRs da etwas überfordert sein könnten.
Könnte, wenn man es rein in Software macht. Mit einem Timer und der
Output-Compare Funktion geht es spielend.
>Und welches Schema muss man da einhalten??? Angenommen, ich aktualisiere>die Daten mit 50Hz, dann dürfte es doch nichts machen, wenn ich 50mal in>der Sekunde die PWM zurücksetzte, um die Daten zu updaten, oder hab ich>da jetzt einen Denkfehler?
Naja, es sollte synchron zur PWM sein, sonst könnte es ggd. komisch
flackern.
>Ansonsten, wie kann ich das ganze denn dann synchron bekommen, so dass>ich z.B. ab dem 4000 Takt anfange, die PWM-Daten zu aktualisieren?
Mit dem einfachen TLC5940. Ein Timer gibt den Takt von 820 kHz aus, ein
zweiter Timer macht dir dein 5ms Intervall, in dem du den TLC nachlädst.
Ist nicht viel anders als normales LED-Multiplexen.
MFG
Falk
Falk Brunner schrieb:> @ Julian W. (julian-w) Benutzerseite>>>Schafft dass den z.B. ein Atmega8 überhaupt, da Falk hier>>Beitrag "Re: TLC5947 ansteuern, dass kein Flackern entsteht">>meinte, dass die AVRs da etwas überfordert sein könnten.>> Könnte, wenn man es rein in Software macht. Mit einem Timer und der> Output-Compare Funktion geht es spielend.
Da ich auch erst diese Woche meinen ersten 5947 verdrahtet habe aber
noch nicht getestet habe, hab ich da noch keinen Anhaltspunkte.
Darf ich nachfragen:
Du meinst nach ddem raustakten, nach dem XLAT, mit dem Timer einen PWM
Zyklus abwarten und erst dann den Blank hinten nachschieben.
Korrekt?
(Ich könnt mich in den A. beissen. der 5947 will nach GND sinken und ich
hab RGB-LED mit gemeinsamer Kathode. Grrrr. Bin erst drauf gekommen
nachdem ich 2 Stunden lang die 9 Fädeldrähte an die Pins gefummelt
habe.)
Gut, dann werd ich wohl den TLC5940 nehmen, 16 Kanäle reiche mir auch
locker aus^^
Noch eine Frage zu den Samples:
Auf
http://focus.ti.com/docs/prod/folders/print/tlc5940.html
gibt es mehre Variaten von dem TLC5940, einmal TLC5940NT und
TLC5940NTG4.
Erst mal gehe ich doch hoffentlich recht der Annahme, dass diese in DIP
sind, also für Lochraster geeignet sind.
Doch was ist der Unterschied. Ich kann eigentlich keinen finden!?