Einstieg in FPGA/CPLD

Gast #3090068
Lesenswert?

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
#3090080
Lesenswert?

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
Gast #3090099
Lesenswert?

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
Gast #3090112
Lesenswert?

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.
Gast #3090232
Lesenswert?

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.
#3090387
Lesenswert?

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
Angehängte Dateien:
Gast #3090409
Lesenswert?

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.
Gast #3090586
Lesenswert?

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.
Gast #3090605
Lesenswert?

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.
Gast #3090924
Lesenswert?

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...
Gast #3091001
Lesenswert?

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?
Moderator (Firma: Titel) Persönliche Seite #3091017
Lesenswert?

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... ;-)
Moderator (Firma: Titel) Persönliche Seite #3091218
Lesenswert?

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...
#3091746
Lesenswert?

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
Gast #3092264
Lesenswert?

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.
Gast #3092376
Lesenswert?

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!
Moderator (Firma: Titel) Persönliche Seite #3092403
Lesenswert?

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.
Gast #3092908
Lesenswert?

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...
Gast #3092919
Lesenswert?

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.
Moderator (Firma: Titel) Persönliche Seite #3092931
Lesenswert?

> 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...
Gast #3092932
Lesenswert?

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.
#3094505
Lesenswert?

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.
Gast #3094564
Lesenswert?

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.
#3096718
Lesenswert?

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"?
#3096881
Lesenswert?

@  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? ;-)
Gast #3097777
Lesenswert?

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.
Gast #3097811
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren