www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA+DDS Anfänger benötigt Starthilfe


Autor: commtel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute

Ich möchte mein Funtionsgenerator weiter bauen,dabei dachte ich
an ein 14 bit D/A Wandler + Ram(internes oder externes) und ein FPGA.

Der FPGA wird z.b von einem ATmega gesteuert was für eine Signalart und
und welche Frequenz er ausgeben soll.
Die Größenordnung liegt vom wenigen Hz bis so um die 1Mhz.
Mehr wäre auch nicht schlecht.

Warum kein AD von Analog?
Weil ich Sägezahn,Sinus,Rechteck,Dreieck,FM,FSK und andere Formen 
implementieren möchte.

Was für ein FPGA würdet ihr mir vorschlagen?
Hoffe hab genug infos gegeben.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  commtel (Gast)

>Ich möchte mein Funtionsgenerator weiter bauen,dabei dachte ich
>an ein 14 bit D/A Wandler + Ram(internes oder externes) und ein FPGA.

Naja, 14 Bit ist schon recht luxeriös. Aber machbar.

>Die Größenordnung liegt vom wenigen Hz bis so um die 1Mhz.
>Mehr wäre auch nicht schlecht.

Hmmm.

>Warum kein AD von Analog?

Du meinst wohl DDS?

>Was für ein FPGA würdet ihr mir vorschlagen?

Jeder aktuelle Typ ist verwendbar. Ob nun Spartan3, Cyclone oder 
wasauchimmer ist egal. GGf. passt das sogar in einen grösseren CPLD.

MFG
Falk

Autor: commtel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Falk

>Du meinst wohl DDS?

Ja von Analog.com die AD typen die fast alles drin haben.
Nette kleine Kisten nur eben müste die LUT ein Ram sein und ich hätte 
was ich wollte.

Ich google schon seit Freitag aber der zündente Funke will einfach nicht 
kommen.

Wer sonst noch paar Hinweise hat bitte melden.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte ich hätte mal einen mit RAM von ADI gesehen, aber den finde 
ich nicht mehr.

Versuch es lieber mit einem DA-Wandler. Mit einem FPGA kannst Du schnell 
an die 200MHz schaffen. Wichtig ist vermutlich eine DC-Kopplung deines 
Ausgangs. Du möchtest bestimmt auch sehr langsame Signale (< 1kHz) 
erzeugen :).

Allerdings kann es sein, dass Du etwas Rechnepower benötigen wirst. 
Sofern die maximale Frequenz deines synthetisierten Signals klein 
(mindestens Faktor 10) gegenüber der Abtastfrequenz ist wirst Du den 
si(x)- Abfall nicht wirklich bemerken. Die typischen DDS-Chips geben ja 
immer nur ein Sinussignal einer Frequenz aus und kompensieren den Effekt 
durch einen Multiplikator der Ausgangsamplitude (1/si(x)) per 
Lookuptabelle.
Sofern Du aber z.B. ein Rechtecksignal erzeugst werden die einzelnen 
Frequenzkomponenten durch das tiefpassartige Verhalten des DAC verzerrt.
Du könntest aber eine vorverzerrte Signalfolge in deinen RAM legen -> 
dafür die Rechenleistung.

Gruß
Michael

Autor: commtel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Michael
vielen Dank für dein Hinweis.Dieses Problem kannte ich noch nicht
war wohl zu langsam mit meinem ATmega und DAC08

Ich dachte mehr an einem Signalgenerator den ich bauen will.
Im Ram wollte ich die komplexen Signalkurven ablegen.

Der ATmega48 hat einfach zu wenig rechenpower und bis vor einem Jahr
wust ich noch gar nicht wie man das Ding in Assembler progt.

Viel Erfahrung hab ich noch nicht in FPGA proggen.
Mir ist auch klar das das kein Wochenend Projekt ist.
Ich such zur Zeit eine Seite wo ich bei null Anfangen kann z.b LED 
blinken

Darum nochmals meine Bitte um ein wenig ünterstützung.
Vieleicht melden sich auch Leute die schon sowas gebaut haben
und ein paar Tips posten so wie Michael.

c.u
Commtel

Autor: Neuingenieur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der FPGA.eil ist simpel: Man muss nur ein RAM haben und einen Zähler und 
gfs einen programmierbaren AA Filter.

Autor: Gerdo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie weit kann man mit der Frequuenz des DDS-Taktes gehen?
Die Ausgangsfrequenz ist doch dann immer nur 1/n wenn man n Zeilen in 
der Tabelle hat. Mit einem FPGA auf 50MHz und einer Tabelle von 1024 
Werten hätte man gerade 50kHz, oder?

Wie hoch kommt man mit einem DDS?

Wie Sinusförmig ist das dann noch, wenn man mit der halben Taktfrequenz 
rausgeht?

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

Bewertung
0 lesenswert
nicht lesenswert
> Wie Sinusförmig ist das dann noch, wenn man mit der halben Taktfrequenz
> rausgeht?
Geht nicht. Da wird das Abtasttheorem verletzt  :-o

Es ist einfach so: du hast eine Ausgabefrequenz, die in deinem Signal 
auftaucht. Diese Ausgabefrequenz ist störend und muß rausgefiltert 
werden. Je höher du mit der Signalfrequenz gehst, umso geringer wird der 
Abstand zwischen der Ausgabefrequenz und deiner Signalfrequenz. Und umso 
steilflankiger (=aufwendiger) muß dein Filter sein.

Autor: Gerdo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heisst, man kann mit DDS eigentlich nur Frequenzen deutlich kleiner 
der Taktfrequenz direkt erzeugen. (?)

Autor: commtel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Gerdo

nein eigentlich Sinus=FPGA Takt/2 um den Abtasttheorem nicht zu 
verletzen.

Ich arbeite mich zur Zeit in VHDL ein.
Wird aber noch ein weilchen dauern bis ich ergebnisse liefern kann 
Schaltpläne usw.

Viele grüße aus Bosnien wo ich zur zeit urlaub mache

c.u
commtel

Autor: Projektleiter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> eigentlich Sinus=FPGA Takt/2 um den Abtasttheorem nicht zu
> verletzen.

Das bringt aber erhebliche Schwebungen. Real sollte man wenigstens mal 
einen Faktor 3-4 Überabtasten, wenn man sich nicht am Filter aufhängen 
will. Bei einem einfach Filter mit 24db spendiert man 40% für die 
Grenzfrequenz und 10x oversampling.

Aus einem 300 MHz Takt im FPGA kriegt man so wirklich gute 20MHz raus.

Autor: commtel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Projektleiter

welchen FPGA hast du benutzt?
Wäre es möglich das du deine Sourcen hier zu verfügung stellst?

c.u
Commtel

Autor: icke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aus einem 300 MHz Takt im FPGA kriegt man so wirklich gute 20MHz raus.
Hö, das ist doch jetzt zu pauschal. Kommt drauf a, wie man es 
realisiert. Ich bin der Meinung, dass bei 300Mhz viel mehr drin wäre.

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.