Forum: FPGA, VHDL & Co. Cyclone II FPGA mit 32 PWM - 12 / 14 bit auflösung


von Herbert S. (derneue)


Lesenswert?

Hallo,

Ich soll mit einem Cyclone II EP2C8 FPGA 32 Pwm Signale mit 12 oder 14 
bit realisieren.
Allerdings hab ich noch nie etwas mit einem FPGA gemacht, bzw weis nicht 
auf was ich achten muss.
meine Frage wäre nun ob die Ressourcen des FPGA ausreichen um die 32 PWM 
Signale mit 12 oder 14bit zu generieren.
Auf welche Parameter kommt es denn an um die Auflösung des PWM-Signals 
entscheiden zu können?
Speicher? Taktfrequenz?

Wäre dankbar wenn mir hier jemand weiterhelfen kann.

hier der link zum Datenblatt des Cyclone II:
http://www.altera.com/literature/hb/cyc2/cyc2_cii5v1_01.pdf

mfg
DerNeue

von Matthias (Gast)


Lesenswert?

Welche Frequenz sollen die PWM Signal haben?

von Herbert S. (derneue)


Lesenswert?

für normale Modellservos.
also zwischen 1ms - 2ms.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>  32 Pwm Signale mit 12 oder 14 bit
Das sind dann also 384 bis 448 Flip-Flops für die Zähler.
Dasselbe nochmal für die Vergleichswerte.
Dazu noch ein paar für eine allfällige Bus-Ankopplung.
Du brauchst also ein FPGA mit mindestens ca. 700 bis 1000 FFs.
Damit kommen die üblichen aktuellen FPGAs ohne weiteres in Frage.
Die Frequenz von 50 Hz ist völlig unproblematisch (20ms Zyklus).
Denn 1ms mit einer Auflösung von 14 Bit sind gerade mal 16MHz.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich wollte das mit den 'D' am Zeilenanfang jetzt nur mal zur Kür machen 
;-)

Also, ich würde deine Aufgabe so lösen:
Klären, wie die Vergleichswerte ins FPGA kommen (Parallel, SPI,...).
Dann einen Zähler für die 20ms Zykluszeit der Servos als Startbedingung 
aufbauen. Wenn dieser Zähler abgelaufen ist, erst mal für 1 ms alle 
Ausgänge einschalten (das ist ja die Mindestzeit für den Puls). Danach 
die Zeit von 1-2ms mit dem PWM auflösen. Und dann bist du schon fertig. 
Irgendwann kommt dann wieder der 20ms-Zähler und das Spiel beginnt von 
vorn.

Bei dieser Vorgehensweise wirst du (für diese 1ms) auch kaum 14 Bit 
Auflösung brauchen, denn sooo genau positionieren die Sevos sicher 
nicht.

von Herbert S. (derneue)


Lesenswert?

Danke für die schnelle Antwort.
Im Datenblatt finde ich allerdings keine angaben über die anzahl der 
FFs, sondern nur die Anzahl der LEs.
In meinem Falls 8256.
Wird damit die Zahl derFFs angegeben, damit vergleichbar oda is das 
etwas anderes ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Laut DB:
1
The smallest unit of logic in the Cyclone II architecture, the LE, 
2
is compact and provides advanced features with efficient logic utilization. 
3
Each LE features:
4
■ A four-input look-up table (LUT), which is a function generator that 
5
  can implement any function of four variables
6
■ A programmable register
7
:
8
:

Du hast also mehr als 8000 FFs zur Verfügung und wirst das Design locker 
reinbringen.

von Falk B. (falk)


Lesenswert?

@ Lothar Miller (lkmiller)

>>  32 Pwm Signale mit 12 oder 14 bit
>Das sind dann also 384 bis 448 Flip-Flops für die Zähler.
>Dasselbe nochmal für die Vergleichswerte.
>Dazu noch ein paar für eine allfällige Bus-Ankopplung.
>Du brauchst also ein FPGA mit mindestens ca. 700 bis 1000 FFs.

In einer rein parallelen Lösung ja.

>Damit kommen die üblichen aktuellen FPGAs ohne weiteres in Frage.
>Die Frequenz von 50 Hz ist völlig unproblematisch (20ms Zyklus).
>Denn 1ms mit einer Auflösung von 14 Bit sind gerade mal 16MHz.

Eben. Und da so ein Cyclone II locker mal 100MHZ++ schafft, könnte man 
das alles in einen BRAM stecken und per State Machine lösen. Dann 
braucht es vielleicht gerade mal einen BRAM + 100 LEs.

>für normale Modellservos.
>also zwischen 1ms - 2ms.

Ach herje, und die brauchen 14 Bit? Glaub ich kaum. Selbst 10 Bit sind 
wahrscheinlich schon Luxus. Das klappt erst recht mit einem BRAM.

MFG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

falk wrote:
> könnte man das alles in einen BRAM stecken und per State Machine lösen.
> Dann braucht es vielleicht gerade mal einen BRAM + 100 LEs.
ACK, aber hier steht noch jemand ganz am Anfang.
derneue will keine Loopings fliegen, sondern einfach mal in die Luft... 
;-)

> Ach herje, und die brauchen 14 Bit?
Ja, wenn jemand meint, die PWM auf die gesamten 20ms verteilen zu 
müssen. Um dann den Wert der Umschaltposition zwischen 1 und 2 ms hin- 
und herzuschieben. 4 Bit weniger (1/20) brauche ich, wenn ich nur den 
relevanten (variablen) Abschnitt bearbeite. Das ist der Trick.

von Falk B. (falk)


Lesenswert?


von Herbert S. (derneue)


Lesenswert?

die 12 - 14 Bit auflösung waren vorgabe vom Prof.
weis nich genau was er damit anstellen will.

Danke für eure Hilfe.
Thema wäre hiermit geklärt fürs erste.

von Michael W. (michelw)


Lesenswert?

Hallo,
schau mal in diesen Link, weiter unten auf der Seite

http://www.ibrtses.com/electronics/altera.html

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.