mikrocontroller.net

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


Autor: Herbert S. (derneue)
Datum:

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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Frequenz sollen die PWM Signal haben?

Autor: Herbert S. (derneue)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für normale Modellservos.
also zwischen 1ms - 2ms.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Herbert S. (derneue)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Herbert S. (derneue)
Datum:

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

Autor: Michael Werner (michelw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
schau mal in diesen Link, weiter unten auf der Seite

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

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.