www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "PWM-IC" oder wie PWM erzeugen? (10bit+, 200Hz, 8 Kanäle)


Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/parametricsea...

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TLC5940 & C0 von Texas Instruments

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :)

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :)

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.)

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!?

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.