Hallo,
Ich muss in meinem aktuellen Projekt eine große Anzahl PWM Kanäle bei
hoher Frequenz >1kHz bereitstellen.
Zu erst waren die atmel Xmega's geplant, die ja jeder 16x16bit haben.
Leider musste ich noch wärend der Threorie Phasen eingstehen, das die
viel zu langsam sind und nicht mal annähernd an 1kHz herankommen.
Ich habe schon öfter von FPGA und CPLD's gelesen, und wenn ich das
richtig verstanden habe dann ist es möglich mit diesen nahezu jede
beliebinge Digitale Schaltung in einem Chip zu realisieren, oder ?
Da sollte es doch kein Problem sein, einen 16bit Zähler und ein paar
komperatoren zu verwirklichen ?
Da ich jedoch leider noch nie mit FPGA/CPLD's gearbeitet habe muss ich
mich erst noch einlesen, weshalb ich nach guten turorials suche.
Da es mir jedoch nicht möglich ist ein BGA Package zu löten ist die
Auswahl hier recht klein.
Die Daten sollen per SPI von einem kleinen atmega in den CPLD geschoben
werden.
Mal angenommen ich nehme diesen FPGA:
http://www.reichelt.de/GALs-PALs/XC3S-50-TQ144/3/index.html?;ACTION=3;LA=446;ARTICLE=70655;GROUPID=2955;artnr=XC3S+50+TQ144
Währe es dann möglich mit diesem rund 90 PWM Kanäle @ 1kHz mit 16bit zu
erzeugen ?
Ich habe mal gelesen das bei einem FPGA das "programm" nach dem Start
jedesmal wieder in den Chip geladen werden muss.
Ist das mit einem atmega machbar ?
Bei CPLD's bleibt das "programm" anscheinend auch ohne Strom erhalten.
Sind CPLD's dafür schnell genug ?
MFG Thalhammer
Dominik Thalhammer schrieb:> Da ich jedoch leider noch nie mit FPGA/CPLD's gearbeitet habe muss ich> mich erst noch einlesen, weshalb ich nach guten turorials suche.> Da es mir jedoch nicht möglich ist ein BGA Package zu löten ist die> Auswahl hier recht klein.> Die Daten sollen per SPI von einem kleinen atmega in den CPLD geschoben> werden.> Mal angenommen ich nehme diesen FPGA:> http://www.reichelt.de/GALs-PALs/XC3S-50-TQ144/3/index.html?;ACTION=3;LA=446;ARTICLE=70655;GROUPID=2955;artnr=XC3S+50+TQ144> Währe es dann möglich mit diesem rund 90 PWM Kanäle @ 1kHz mit 16bit zu> erzeugen ?
Würde gehen, wobei im TQ144-Gehäuse maximal 97 I/Os zur Verfügung
stehen. Könnte also mit SPI und Clockeingang knapp werden.
> Ich habe mal gelesen das bei einem FPGA das "programm" nach dem Start> jedesmal wieder in den Chip geladen werden muss.> Ist das mit einem atmega machbar ?
Ja, das wäre machbar. Einfacher wäre aber wohl ein kleines Flashrom,
welches automatisch bei jedem Start die Konfiguration überträgt.
Bedenke: maximal 3,3V beim FPGA. 5V nur über Pegelwandler...
> Bei CPLD's bleibt das "programm" anscheinend auch ohne Strom erhalten.> Sind CPLD's dafür schnell genug ?CPLD und FPGA sind verschiedene Bauelemente, aber für deine Anwendung
schnell genug.
Gruß,
Thomas
Mit nem normalen CPLD wirst du dabei aber an die Grenzen stoßen.
Für 90 PWM a 16 Bit brauchst du alleine für die Komparatoren 1440
Register. Dazu kommt dann noch der Counter mit 16 Registern und das SPI
und dann nen entpsrechenden fetten Multiplexer, der die die Daten des
SPI auf das jeweilige Komparatorregister schaltet.
Also der von dir vorgeschlagene Typ könnte gehen, aber viel Luft nach
oben hast dann nicht mehr.
Schau dir mal von Lattice den XP2 an. Den gibt es mit 5k LUT im TQPF 144
Package. 100 IOs und 5000 Register UND du brauchst kein externes
Boot-Device.
Der scheint mir für deine Anwendung geeigneter zu sein.
Kostet im Lattice Online Store 13 USD
Thomas T. schrieb:> a, das wäre machbar. Einfacher wäre aber wohl ein kleines Flashrom,> welches automatisch bei jedem Start die Konfiguration überträgt.> Bedenke: maximal 3,3V beim FPGA. 5V nur über Pegelwandler...
3.3V sind nicht das Problem, da meine AVR's auch mit 3.3V laufen.
>Schau dir mal von Lattice den XP2 an. Den gibt es mit 5k LUT im TQPF 144>Package. 100 IOs und 5000 Register UND du brauchst kein externes>Boot-Device.
Mach ich auf jeden Fall.
Habt ihr vielleicht einen Link auf ein gutes Devboard, das nicht zu
teuer ist ?
Denn alle die ich gesehen habe haben jede Menge sachen drauf die ich
garnicht brauche(Ethernet/USB usw.).
Also das meine Grundüberlegung funktionierd finde ich schon mal gut.
Welche Frequenz/Auflösung währe da denn maximal drin ?
Also Auflösung @1kHz oder Frequenz@16bit , nur damit ich das ein wenig
abschätzen kann.
Wenn du dich für nen XP2 von Lattice entscheidest, dann käme vielleicht
dieses Board in Frage:
http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2brevia2developmentkit.cfm
Mit der Einschränkung, dass dir nur 40 IOs zur Verfügung stehen (Als
Pfostentecker). Aber zum Ausprobieren sollte das ja reichen.
Wenn du den Chip dann wirklich verwenden willst, musst du aber bedenken,
dass du dann noch eine Zusätzliche 1,2V Versorgung für den Core
brauchst. Das ist aber bei den meisten FPGAs so.
Abschätzung des Speeds:
1 kHz PWM mit 16 Bit Auflösung:
1 kHz * 2^16 = 65,5 MHz
Dein Counter muss also mit 65,5 MHz laufen. Das ist eine
Geschwindigkeit, die mit einem FPGA problemlos machbar ist.
Also das Board sieht gut aus.
Da mir der preis auch zusagt werde ich das Teil woll mal bestellen.
Giebts auser den verschiedenen Spannungen noch was zu beachten ?
Dominik Thalhammer schrieb:> Giebts auser den verschiedenen Spannungen noch was zu beachten ?
Na ja beim Board selber denke ich nicht, was deine Anwendung angeht.
Aber wenn du noch nie was mit VHDL gemacht hast, dann wirst du sicher
noch über viele Hürden müssen, bis das dann alles funktioniert :-)
Lattice User schrieb:> Statt dem XP2 würde ich den MachXO2-7000 vorschlagen.
da ist aber der 1200er bestückt und in den werden seine 90 PWM´s auch
nicht reinpassen.
Aber klar, das Board ist sicher auch eine gute Alternative, um mal in
die Thematik den Einstieg zu bekommen.
Dominik Thalhammer schrieb:> Habt ihr vielleicht einen Link auf ein gutes Devboard, das nicht zu> teuer ist ?
Schau dir mal dies hier an: HWD-LFXP3C für 19,04€
Findest du hier: http://www.hardware-design.de/restposten.html
Hab ich auch und man hat jetzt nicht soviel Schnick-Schnack drauf.
Gruß Steffen
Das Board von Steffen ist sicher ein absolutes Schnäppchen.
Nur brauchst du bei dem noch einen Programmer, während du bei den
anderen direkt mit nem USB-Kabel ran kannst.
Wenn du aber eh irgendwann den Chip selber auf deiner Leiterplatte
setzen willst, dann brauchst da auch ein Programmierkabel. Daher wäre
das nur eine vorgezogene Anschaffung.
Das Board von Steffen ist mit einem FPGA bestückt, der leider schon sehr
alt ist. Was aber nicht heißen soll, dass man damit nicht arbeiten kann.
Wie du siehst, gibt es einige Möglichkeiten.
Schlumpf schrieb:> Nur brauchst du bei dem noch einen Programmer
Der ist schnell selber gebaut, zumindest wenn man noch irgenwie einen
LPT zur Verfügung hat. Hab gerade geschaut, hab noch eine selbergeätzte
LP eines Lattice ISP da.
Steffen H. schrieb:> Der ist schnell selber gebaut, zumindest wenn man noch irgenwie einen> LPT zur Verfügung hat.
Also nen LPT hab ich nicht mehr, aber da das ganze ja über JTAG
programmiert wird finden sich bestimmt selbstbauprojekte mit nem kleinen
Atmel aus der Bastelkiste, die dann mit USB oder zumindest RS232 gehen.
Die verschiedenen Board's schau ich mir mal an, aber ob 20€ plus
selbstbauadapter oder 50$ mit onboard adapter macht jetzt auch nicht den
großen Unterschied. Mit günstig meinte ich eigentlich so <75€, weil
alles was ich gefunden hab hatte MINDESTENS Ethernet und USB, teilweise
LVDS und ne menge anderen Krimskrams den ich nicht brauchen kann.
Eine Frage hab ich aber noch:
Welchen Strom können die I/O's der Xillinix FPGA's liefern ?
Bei den Atmels sind es ja bekanntlich 20mA pro I/O oder 200mA pro Port,
aber bei den FPGA's konnt ich beim überfliegen des Datenblatts nichts
finden.
Dominik Thalhammer schrieb:> Welchen Strom können die I/O's der Xillinix FPGA's liefern ?
Willst jetzt also doch zurück zu Xilinx?
Wieviel der liefern kann, weiss ich auch nicht.
Aber wenn du mal 90 PWMs hast, die beim Nulldurchgang alle gleichzeitig
schalten, dann würde ich dir empfehlen, den Strom gering zu halten.
Sonst kann es passieren, dass dein FPGA nicht schnell genug
"nachschieben" kann und das kann unschöne Effekte auf dem Board haben.
Weiterhin darfst du natürlich den Summenstrom für eine Bank nicht
überschreiten.
Lattice User schrieb:> Statt dem XP2 würde ich den MachXO2-7000 vorschlagen.> das MachXO2 Breakout Board ist jetzt damit bestückt:>> http://www.latticesemi.com/products/developmenthar...>> Auf dem Board stehen mehr als 100 pins des FPGAs auf den Pfostenleisten> zur Verfügung.
und ich hab das vor ein paar Monaten noch von Hand umgelötet...
Dominik Thalhammer schrieb:> Eine Frage hab ich aber noch:> Welchen Strom können die I/O's der Lattice FPGA's liefern ?
Bei LVCMOS33 einstellbar von 4-24 mA pro Pin.
Aber zwischen je 2 GND Pins darf die Summe n*8 mA sein, wobei n die Zahl
der Pins zwischen den GND ist.
Also ganz allgemein, bei vielen Outputs maximal 8 mA pro Output.
Wie auch schon Schlumpf oben erwähnt, alle gleichzeitig zu schalten ist
kritisch. Im Diamond gibt es Tools zur Power und SSO Analyse. (SSO =
Simultanous Switching Outputs).
Bei 90 PWMs ist es sinnvoll diese alle Phasenverschoben anzusteuern,
macht sich sicher auch bei der Störabstrahlung der nachgeschalteten
Schaltung positiv bemerkbar. Was ist das eigentlich, 90 Motoren oder 90
LEDs?
Dominik Thalhammer schrieb:> Ich muss in meinem aktuellen Projekt eine große Anzahl PWM Kanäle bei> hoher Frequenz >1kHz bereitstellen.
Wie unabhängig sind die? Braucht jede PWM ihren eigenen Zähler, oder
brauchst du nur 1 Zähler und viele Komparatoren?
Schlumpf schrieb:> Dazu kommt dann noch der Counter mit 16 Registern
Bei 90 angechlossenen Koparatoren wird der Synthesizer diesen Zähler
aber von sich aus verdoppeln (Stichworte Fan-Out und Register-Doubling).
Zudem werden auch noch die Speicherflipflops zum Speichern der
Vergleichswerte benötigt, dazu der SPI-Slave und eine FSM, die die Werte
passend verteilt. Also werden in der Summe schon 3k Flipflops (zusammen
mit ihrer LUT auch LE genannt) benötig, die dann zudem noch verdrahtet
werden müssen (Routing)...
Und dann noch die Taktfrequenz: 16Bit PWM bei 1kHz ergibt eine
Taktfrequenz von 65MHz quer übers ganze FPGA. Das kann einen Anfänger
shcon mal herausfordern...
> Mit nem normalen CPLD wirst du dabei aber an die Grenzen stoßen.
Es ist tatsächlich absurd, hier über ein CPLD überhaupt
nachzudenken... ;-)
Dominik Thalhammer schrieb:> Es Handelt sich um 30 RGB LEDs.> die brauchen nur einen Zähler.
Dann hast du aber keinen Phasenversatz und damit recht viele
gleichzeitig schaltende Ausgänge..
> Welchen Strom können die I/O's der Xillinix FPGA's liefern ?
Das steht im Datenblatt.
> Bei den Atmels sind es ja bekanntlich 20mA pro I/O oder 200mA pro Port,
Das ist der Wert, der bei "Absolute Maximum Ratings" steht. Damit
rechnet man nicht, sondern man bleibt möglichst weit davon weg!
BTW: die 200mA sind doch recht kurios, weil ja ein Port nur 8 Pins hat.
Und 8*20mA sind... :-o
Also: schlag dir die Idee aus dem Kopf, die 90 LEDs direkt ans FPGA zu
klemmen. Selbst wenn das FPGA es könnte: dein Layout wird es nicht
können...
Dominik Thalhammer schrieb:> Es Handelt sich um 30 RGB LEDs.> die brauchen nur einen Zähler.
Und ist es da tatsächlich notwendig, jede LED einzeln und dann auch noch
mit 16 Bit pro Farbe anzusteuern?
Irgenwie scheinen mir deine Anforderungen ein wenig an den Haaren
herbeigezogen zu sein..
Warum 1kHz PWM-Frequenz? Gibt es dafür eine Notwendigkeit, oder hast du
Angst, dass man bei niedrigeren Frequenzen ein Flackern sehen könnte?
Wie hell sollen denn diese LEDs wirklich leuchten?
ich habe mal eine einzelne RGB Led mit PWM vom FPGA angesteuert. Und
zwar direkt, d.h. PIN -> LED -> 300 Ohm -> 3.3V.
Das sind je nach Farbe ca 1-2 mA pro EinzelLED und war bereits bei voll
aufgedrehter PWM viel zu hell für einen Betrachtungsabstand von 1-2 m.
Dominik Thalhammer schrieb:> Es Handelt sich um 30 RGB LEDs.> die brauchen nur einen Zähler.
Und jede Farbe in 65536 Stufen dimmen? Halte ich für etwas übertrieben.
Du solltest vielleicht das gesamte Vorhaben überdenken.
Mein Vorschlag: Die RGB-LEDs mit integriertem Controller (WS2811/WS2812)
und dazu ein kleiner AVR, der von SPI ins WS28xx-Protokoll wandelt.
Die WS2811/12-LEDs haben zwar nur 8 Bit pro Farbkanal, aber wirklich
unterscheiden kann man die Mischfarben dann auch nicht mehr.
Der AVR müsste auch nicht gerade sehr viel können...
Du hättest eigentlich nur Vorteile:
* Einfachere Verdrahtung
* Einfachere (schnellere) Programmierung
* Einfachere Spannungsversorgung (5 Volt für die LEDs)
Gruß,
Thomas
Ja die 90 Led's müssen sein,
Nein sie werden nicht direkt angeschlossen sondern über Transistoren,
Ja die 16bit müssen sein,(ergeben nach Gammakorrektur 8bit)
Ja die 1kHz müssen sein, da ich festgestellt hab, das es bei 500Hz und
niedrigen werten schon recht stark flackert(probiert auf einem
atxmega32a4@32Mhz--->~488 Hz PWM Frequenz)
Ja ich will ein FPGA verwenden, um mich damit vertraut zu machen und um
sowas mal auszuprobieren.
Nein ich verwende keine Einzelnen LED's sondern Solche LED STreifen zum
aufkleben.
Die 30 RGB Kanäle brauche ich auch, da die LED's über einen ganzen Raum
verteilt werden und gleichzeitig als Beleuchtung und Partylicht dienen,
das ich möglichst genau einstellen können will, ausserdem ist es mal ein
interressantes Projekt.
Na du hast dir ja die Gründe für deine Anforderungen gut überlegt.
War ja nur ne Frage, weil viele hier einfach was fordern und sich nicht
bewusst sind, dass das total überzogen ist.
Aber wenn deine LEDs bei 500 Hz sichtbar flackern, dann musst du eben
mit 1kHz ran. Meine Augen sind nicht so schnell, aber da ist sicher
jeder anders.
Ja, dann sind ja deine Fragen eigentlich beantwortet, und du kannst
loslegen.
Ich denke, dass wir wieder von dir lesen werden, wenn es ans
synthetisieren geht und dein SPI mal tut und mal nicht tut ;-)
Aber wenn es dir darum geht, in eine neue Technik einzusteigen, dann ist
dieses Projekt sicher kein schlechter Einsteig in die FPGA-Welt.
Viel Spass beim Basteln!
Dominik Thalhammer schrieb:> da die LED's ... als Beleuchtung und Partylicht dienen
Dafür brauchst du niemals 65535 Helligkeitsstufen. Die bräuchtest du
nämlich nur dann, wenn du damit fotorealistische Bilder oder Videos
darstellen müsstest, wo es auf jede kleine Grünschattierung (z.B. auf
einer schönen Almwiese) oder auf das hübsche Azurblau des Himmels (z.B.
beim Strandurlaub) ankommen würde.
Sowas also: http://www.fotocommunity.de/pc/pc/display/18558036
Und sowas: http://www.fotocommunity.de/pc/pc/display/24947099
Kurz: es ist ein hübsches Projekt, aber für eine Raumbeleuchtung
maximaler technischer Overkill.
Dominik Thalhammer schrieb:> Nein sie werden nicht direkt angeschlossen sondern über Transistoren,> Ja die 16bit müssen sein,(ergeben nach Gammakorrektur 8bit)
Verstehe ich das richtig, daß Du den Duty-Cycle in Schritten à 15ns (1 /
(65536*1kHz) ) auflösen willst?
Sind die Transistoren dafür schnell genug?
Kann mich ja täuschen, aber ich habe da scheußlich verschliffene
Oszi-Bilder von zu hoch getakteten PWM-Motortreibern im Kopf...
Lothar Miller schrieb:> Kurz: es ist ein hübsches Projekt, aber für eine Raumbeleuchtung> maximaler technischer Overkill.
Vielleicht, aber für die mehrfeatures meiner meinung nach durchaus ok,
denn bei einer Normalen Lösung (8bit PWM lässt sich ja leicht in
Software auf nem AVR realisieren) bräuchte ich auch mindestens 2 avr's,
alleine schon wegen der Pins und preislich geben sich 2x AVR vs FPGA +
avr nicht viel, sodass ich lieber die Lösung mit FPGA nehm und dafür
dann im AVR ein Interface mit jeder Menge Schnittstellen basteln
kann(beim kleinsten Xmega schon 5xRS232, 2xI2C und 2xSPI(von denen einer
für den FPGA drauf geht.).
An den zweiten SPI häng ich dann ne SDCard mit vordefinierten
Farbverläufen usw, an einen UART kommt die Hausautomation usw.
> Sind die Transistoren dafür schnell genug?> Kann mich ja täuschen, aber ich habe da scheußlich verschliffene> Oszi-Bilder von zu hoch getakteten PWM-Motortreibern im Kopf...
Mir würden dazu dann noch ein paar hässlich gerunzelte Stirnfalten im
EMV-Labor einfallen...
Dominik Thalhammer schrieb:> und preislich geben sich 2x AVR vs FPGA+ avr nicht viel
Dass du dir da mal nicht irgendwas schönrechnest. Aber fürs Hobby muss
man nicht immer aufs Geld schauen...
Bronco schrieb:> Verstehe ich das richtig, daß Du den Duty-Cycle in Schritten à 15ns (1 /> (65536*1kHz) ) auflösen willst?> Sind die Transistoren dafür schnell genug?
Also laut Datenblatt machen die von mir eingeplanten BC817 min. 100MHz
mit, sollte also kein Problem sein.
(Quelle:http://www.nxp.com/documents/data_sheet/BC817_BC817W_BC337.pdf
Seite 5)
> Kann mich ja täuschen, aber ich habe da scheußlich verschliffene> Oszi-Bilder von zu hoch getakteten PWM-Motortreibern im Kopf...
Ka vermutlich ist das bei deinen Treibern anders.
//Sorry für den doppelt Post, aber du hast zu spät gepostet.
Dominik Thalhammer schrieb:> Also laut Datenblatt machen die von mir eingeplanten BC817 min. 100MHz> mit, sollte also kein Problem sein.
Hast du da nur die Kleinsignalbandbreite angeschaut?
Die BC817schaltest du auf keinen Fall mit 100MHz voll durch.
Das wird schon am Layout scheitern...
Dominik Thalhammer schrieb:> Ja die 16bit müssen sein,(ergeben nach Gammakorrektur 8bit)
Dann kannst du doch erst die Korrektur anwenden und danach die
korrigierten Werte in die PWM laden? Damit würde sie auch mit weniger
Auflösung auskommen, was den ganzen Rattenschwanz mit den hohen
Taktfrequenzen und schnellen Signalen entschärfen würde. Du hast ja eine
Verkabelung durch den ganzen Raum welche die hochfrequenten Signale u.U.
abstrahlt. Da ist es dann auch besser wenn die Transistoren nicht zu
schnell schalten, das reduziert die Abstrahlung auf Kosten der
Verlustleistung.
Georg W. schrieb:> Dominik Thalhammer schrieb:>> Ja die 16bit müssen sein,(ergeben nach Gammakorrektur 8bit)>> Dann kannst du doch erst die Korrektur anwenden und danach die> korrigierten Werte in die PWM laden?
Dominik hat das wohl etwas unglücklich ausgedrückt. Nach der
Gammakorrektur braucht man mehr Bits, sonst verschenkt man
Eingangsauflösung. Wobei ich aber auch der Meinung bin, dass 16 bit
nicht nötig sind. Wenn der Eingangswert 8 Bit (d.h. 256
Helligkeitstufen)
reichen nach der Gammakorrektur auf jedem Fall 12 bits, wahrscheinlich
sogar 10. Auch Profimonitore machen da nicht mehr.
> Damit würde sie auch mit weniger> Auflösung auskommen, was den ganzen Rattenschwanz mit den hohen> Taktfrequenzen und schnellen Signalen entschärfen würde. Du hast ja eine> Verkabelung durch den ganzen Raum welche die hochfrequenten Signale u.U.> abstrahlt. Da ist es dann auch besser wenn die Transistoren nicht zu> schnell schalten, das reduziert die Abstrahlung auf Kosten der> Verlustleistung.
Moment, die PWM Frequenz ist von der Auflösung unabhängig, und damit
auch die Störstrahlung und Verlustleistung. Nur an beiden Ende der Skala
entstehen Nichtlinearitäten wenn Transistor/LED zu langsam sind, was man
aber in der Gammatabelle berücksichtigen kann.
In der vorliegenden Anwendung wird die Auflösung auch nicht gebraucht um
Genauigkeit zu erzielen, auf mehr als 6 bit wird niemand die Farben
unterscheiden können. Hier geht es darum, dass man beim langsamen auf-
und abdimmen keine Helligkeitssprünge sieht, und dafür sind 8 bit ohne
Gammakorrektur nicht ausreichend.
Lattice User schrieb:> Dominik hat das wohl etwas unglücklich ausgedrückt. Nach der> Gammakorrektur braucht man mehr Bits, sonst verschenkt man> Eingangsauflösung. Wobei ich aber auch der Meinung bin, dass 16 bit> nicht nötig sind. Wenn der Eingangswert 8 Bit (d.h. 256> Helligkeitstufen)> reichen nach der Gammakorrektur auf jedem Fall 12 bits, wahrscheinlich> sogar 10. Auch Profimonitore machen da nicht mehr.>
Kommt das von unserem nichtlinearen Helligkeitsempfinden? Dann würde man
nur in einem Teilbereich die feine Auflösung benötigen und könnte den
Rest mit gröberen Schritten abhandeln? Falls das überhaupt sinnvoll
machbar ist.
Wenn wir großzügig sind und 12Bit Auflösung wählen reichen aber auch
4,1MHz Takt aus. Das ist schon mal viel entspannter.
>> Moment, die PWM Frequenz ist von der Auflösung unabhängig, und damit> auch die Störstrahlung und Verlustleistung. Nur an beiden Ende der Skala> entstehen Nichtlinearitäten wenn Transistor/LED zu langsam sind, was man> aber in der Gammatabelle berücksichtigen kann.
Ja, du hast recht. Ich musste mal etwas zu einem Gerät, welches neben
dem Tastverhältnis auch die Frequenz verändert hat dazu bauen, das war
nicht lustig. Das hatte ich im Sinn als ich das obige schrieb. Ich sehe
den kritischen Punkt wenn man fast ganz herunter oder herauf dimmt. Dann
muss man einen sehr schmalen Impuls mit sehr steilen Flanken und damit
verhältnismäßig viel hochfrequentem Anteil alle Millisekunde erzeugen.
Du würdest dann mit der flachen Flanke leben und bei der Impulsbreite
entsprechend "vorhalten"?
@ Dominik Thalhammer (Gast)
>Nein sie werden nicht direkt angeschlossen sondern über Transistoren,>Ja die 16bit müssen sein,(ergeben nach Gammakorrektur 8bit)
Willst du einen Photodrucker bauen?
>Ja die 1kHz müssen sein, da ich festgestellt hab, das es bei 500Hz und>niedrigen werten schon recht stark flackert(probiert auf einem>atxmega32a4@32Mhz--->~488 Hz PWM Frequenz)
Niemals. Wahrscheinlich hast du eine Fuses falsch eingestellt oder einen
falschen Prescaler einschaltet. Hast du die 488 Hz mit einem Oszi
gemessen?
>Ja ich will ein FPGA verwenden, um mich damit vertraut zu machen und um>sowas mal auszuprobieren.>Nein ich verwende keine Einzelnen LED's sondern Solche LED STreifen zum>aufkleben.
Und die sollen dann mit bis zu 15ns breiten Pulse angesteuert werden?
Dream on. ;-)
>Die 30 RGB Kanäle brauche ich auch, da die LED's über einen ganzen Raum>verteilt werden und gleichzeitig als Beleuchtung und Partylicht dienen,
Was nie und nimmmer Den HokusPokus mit 16 Bit PWM und Gammakorrektur
braucht. Spätestes nach dem 2. Bier reichen 3 Bit, eins für jede Farbe.
Aber wenn's ne LSD-Party ist könnten sanfte Farbübergänge schon
angebracht sein . . .
Ausserdem steuert man so verteilte Lampen auch verteilt an, z.B. eine
Steuerung pro Leiste, das Ganze dann per DMX oder so verkabelt. Das
verringert auch die Leitungslänge, auf der die PWM mit steilen Flanken
rumschaltet und ordentliche Störungen erzeugt.
>das ich möglichst genau einstellen können will, ausserdem ist es mal ein>interressantes Projekt.
Naja, aber meilenweit weg von der Realität. Also doch was mit LSD? ;-)
Lattice User schrieb:> Moment, die PWM Frequenz ist von der Auflösung unabhängig, und damit> auch die Störstrahlung und Verlustleistung. Nur an beiden Ende der Skala> entstehen Nichtlinearitäten wenn Transistor/LED zu langsam sind, was man> aber in der Gammatabelle berücksichtigen kann.
Nur so am Rande:
Ich hatte da mal eine Schaltung mit einem BTM7751 Motortreiber. Der kann
laut Datenblatt eine PWM-Frequenz bis max. 1kHz.
Nun hatte ich einen Motor, für den 20kHz empfohlen wurden.
Hab mal aus Spaß versucht, die 20kHz mit dem BTM7751 darzustellen.
Dabei ist der Dutycycle total weggelaufen, d.h. bei 50% Soll kamen noch
vielleicht 20-30% Ist raus, und diese waren heftigst verschliffen.
Bronco schrieb:> Lattice User schrieb:>> Moment, die PWM Frequenz ist von der Auflösung unabhängig, und damit>> auch die Störstrahlung und Verlustleistung. Nur an beiden Ende der Skala>> entstehen Nichtlinearitäten wenn Transistor/LED zu langsam sind, was man>> aber in der Gammatabelle berücksichtigen kann.>> Nur so am Rande:> Ich hatte da mal eine Schaltung mit einem BTM7751 Motortreiber. Der kann> laut Datenblatt eine PWM-Frequenz bis max. 1kHz.> Nun hatte ich einen Motor, für den 20kHz empfohlen wurden.> Hab mal aus Spaß versucht, die 20kHz mit dem BTM7751 darzustellen.> Dabei ist der Dutycycle total weggelaufen, d.h. bei 50% Soll kamen noch> vielleicht 20-30% Ist raus, und diese waren heftigst verschliffen.
Klar, da war der Treiber ja schon viel zu langsam für die PWM Frequenz.
Das ist aber im vorliegendem Fall der LED Ansteuerung bei weitem nicht
der Fall. Natürlich wird in den Endpunkten trotz Korrektur die
Genauigkeit leiden, schon alleine wegen der Bauteiletoleranzen, vor
allem hfe des Transistors. Wird vermutlich trotzdem gut genug sein.