Forum: Mikrocontroller und Digitale Elektronik LEDs Dimmen mit 16bit PWM - Frequenz?


von Robert R. (pforcht)


Lesenswert?

Hallo,

Ab welcher Frequenz ist das LED Flackern selbst beim
"drüberschauen" nicht mehr wahrnehmbar?

Im Rahmen meiner RGB-Lichterketten Entwicklung
( Beitrag "RGB-LED-Lichterkette. Niedervolt oder 230V?" )
kam mir das Problem der PWM Frequenz auf.

Ich habe eine 1024 (linear) Stufige PWM, die mit
einer Frequenz (Zyklus) von ca 100Hz läuft.
Diese Soft PWM ist schon das schnellste, was mein
Atmega32 mit 16Mhz und Soft PWM erzeugen kann.

Leider ist beim "drüberschaun" erkennbar, dass die
LED unruhig leuchtet. Wenn ich mir so eine Lichterkette
vorstelle, wird das bestimmt nicht sehr schön.

Im Artikel
http://www.mikrocontroller.net/articles/Pulsweitenmodulation#Dimmen_von_Leuchtmitteln
steht, dass für LEDs eine Frequenz von 1kHz-9kHz
angemessen sei.
Muss es tatsächlich so viel sein?

Hier im Forum laufen die Meinungen jedenfalls auseinander.

Übrigens, da der AVR nicht mehr hergibt, und mir die
1024 PWM Stufen nur 32 Helligkeitsabstufungen erlauben,
möchte ich eine Hardware PWM mit dem TLC5943 von Texas
Instruments verwenden.

Er bietet 65536 Lineare Stufen auf 16 Kanälen.
Allerdings wird er maximal mit 33Mhz getaktet. Teile
ich dies durch die Anzahl der Stufen, so komme
ich im Gegensatz zu dem Artikel auf eine PWM Frequenz
von ca. 500Hz, statt mindestens 1kHz.

Es kann doch nicht sein, dass TI auf die Wahrnehmbarkeit
keine Rücksicht genommen hat.

von robbse (Gast)


Lesenswert?

Hallo,

kann es sein dass Du da was durcheinander wirfst? Wieso hast Du nur 32 
Helligkeitsstufen bei 10 Bit??? Und wieso teilst Du die Frequenz durch 
die Anzahl der Kanäle?

Aber um Deine Frage zu beantworten: größer 100 Hz reicht aus; 
Hardwaremäßig bietet der AVR so ~122Hz und höher an. Möchtest Du mehrere 
Hardware-PWM-Kanäle nutzen bietet sich ein IC wie der von Dir erwähnte 
TLC5943 an; oder schau Dir mal den neuen UC3L von Atmel an; der kann auf 
jedem (!) GPIO 8 Bit (= 256 Stufen) PWM.

MfG,
robbse

von Robert R. (pforcht)


Lesenswert?

Hi, danke für deine Antwort.

Ich hab mich evtl nicht deutlich genug ausgedrückt.
65536 PWM stufen möchte ich haben, damit ich 256
echte Helligkeitsstufen habe. Abgebildet wird mit
der Funktion f(k)=k^2 auf die PWM stufen, um dem
Auge einen linearen Helligkeitsverlauf vorzugaukeln
Diese Funktion approximiert die exponentielle
Wahrnehmung des Auges.

Teilen tue ich den Takt, da ich wissen will, wie
schnell ein 65536 Zyklus bei einem bestimmten Takt
ist. Soweit ich weiß, ist ein solche Zyklus maßgeblich
für die PWM wahrnehmung, und nicht die einzelnen
Abstufungen.

von Daniel Goßmann (Gast)


Lesenswert?

Hallo Robert!

Ich versuche mich auch gerade an dem TLC5943. Der TLC5943 teil die 
gesamte
PWM-Periode in 128 gleich große Segmente mit jeweils 512 GSCLK-Takten

Die Zeit, in der jede LED leuchtet, wird auf diese Segmente aufgeteilt, 
was bei TI dan „enhanced spectrum PWM“ (esPWM) heißt (Datenblatt Seite 
17,18).

Wie ralisierst Du denn f(k)=k^2?


Gruß
Daniel

von Ben (Gast)


Lesenswert?

moment

bei 16 bit PWM hab ich 65536 helligkeitsstufen. die brauch ich bestimmt 
nicht, 256 reichen aus und dazu brauch ich nur 8 bit. wenn sich der 
atmega nur um die PWM in software kümmern braucht hab ich bei 256 stufen 
eine PWM-frequenz von 15,6khz - bei nur 4mhz takt. :-)

von Gast (Gast)


Lesenswert?

>bei 16 bit PWM hab ich 65536 helligkeitsstufen.

Schon, aber keine, die vom Auge als gleichmäßig wahrgenommen werden, 
weil es sozusagen eine logarithmische Kennlinie hat (Funktion 
Helligkeitsempfinden von Einschaltdauer). Effektiv hast Du bei einer 16 
Bit-PWM daher viel weniger Helligkeitsstufen, z. B. nur 16: 1, 2, 4, 8, 
16 ... 65536 (wenn man die Null mal außen vor lässt).

Du kannst ja testweise mal mit einer 8-Bit-PWM ein lineares Fading gemäß 
1, 2, 3, 4 ... 253, 254, 255 machen und über das völlig unbrauchbare 
Ergebnis staunen.

von Ben (Gast)


Lesenswert?

achsooo nun versteh ich was er will. mal rechnen...

ein AVR mit 20mhz takt und 2khz soll-pwm-frequenz erreicht er 10000 
schritte, bei 1khz soll 20000 schritte. ich denke das sollte reichen um 
256 "sichtbare" stufen auf "unsichtbare" pwm-schritte abzubilden.

von Gast (Gast)


Lesenswert?

>und 2khz soll-pwm-frequenz erreicht er 10000 schritte

Hört sich viel an, ist es aber nicht. Für ein als stufenlos empfundenes 
Fading darf sich die Einschaltdauer nur minimal ändern, sagen wir 
höchstens 1 %. Das begrenzt den nutzbaren Bereich nach unten hin auf 
100, woraus ein Helligkeits-Dynamikumfang von nur 10000 : 100 = 100 : 1 
resultiert. Das ist zu wenig, denn ein Prozent Einschaltdauer resultiert 
keineswegs in einem schwachen Glimmen, sondern erscheint im Vergleich zu 
100 % noch als überraschend hell. Fazit: Flimmer- und ruckelfreies 
Fading über einen weiten Helligkeitsbereich ist alles andere als 
Peanuts, und deshalb gibts für diese Aufgabe auch spezielle ICs.

von Ben (Gast)


Lesenswert?

scheint für einen µC jedenfalls eine nicht einfache lösung.

von Falk B. (falk)


Lesenswert?

Siehe LED-Fading und Soft-PWM

MFG
Falk

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
Noch kein Account? Hier anmelden.