Forum: FPGA, VHDL & Co. Digitaler Funktionsgenerator


von Thomas B. (paraglider)


Angehängte Dateien:

Lesenswert?

Hallo,

habe in den letzten Wochen mal einen Funktionsgenerator in VHDL
programmiert (funktioniert!). Sicher nichts besonderes, aber vielleicht
will sich ja jemand das Ein oder Andere abschauen - oder mir noch Tips
geben, was man besser machen kann.

Stichworte:
- FPGA: Spartan3 (XC3S200) in Form des Digilent Starter Kit
- DAC: TDA1543 auf Lochraster-Platine (2 Kanäle)
- Bedienung über 5 Tasten
- Anzeige: LCD mit HD44780 / ST7066 (4x27 Zeichen)
- Spannungskonverter für negative LCD-Spannung (Ladungspumpe)
- Funktionswerte-Tabelle in BRAM (generiert von einem kleinen
C-Programm)
- DCM's für Takt, Multiplizierer für Amplitude.
- Max. Frequenz mit TDA1543 ca. 100 kHz, bei anderem DAC max. 50MHz
möglich
- Amplitude und Offset einstellbar

Die komplette Bedienung ist ebenfalls in VHDL geschrieben - was einen
Haufen (Hardware-)Logik braucht (war eigentlich mehr aus Übung
gedacht). Als nächstes möchte ich die Bedienung in Form von einem sehr
kleinen Controller im FPGA (z.B. xsoc) und Software in einem BRAM
aufbauen. Das ist - denke ich - die elegantere und sparsamere Lösung.

Ach so, den Schaltplan für den Anschluss von DAC und LCD habe ich
gerade nicht elektronisch, folgt demnächst aber.

Bei Fragen, mailt mir.

Viele Grüße, Thomas

von TheMason (Gast)


Lesenswert?

Hallo Thomas,

erstmal Glückwunsch zu deinem Projekt. Hab die Quellcodes zwar nur kurz
überflogen aber es sieht recht putzig aus. Die Idee mit dem RAM hatte
ich bei meinen Audio-Tests auch, nur das ich eine ganze Welle speicher
(und nicht nur nen Halben oder gar einen Viertel-Sinus).
Was mich noch interessieren würde wäre die Ansteuerung des TDA1543, da
ich diesen auch habe und für ein andere kleine Tests verwenden wollte.
Wäre schön wenn du die sachen mal reinstellen könntest.
Eine Bedienung unter VHDL hatte ich auch mal gebastelt. Da allerdings
nur in ganz klein um das externe RAM auf meinem Spartan3 Board manuell
zu beschreiben und auszulesen (war auch nur als einstieg gedacht). Aber
es zeigt das man einfache Sachen auch recht gut in VHDL formulieren
kann.
Schönes Projekt. Was ich mir evtl. mal abgucken werde ist die
Geschichte mit den DCMs. Bisher bin ich mit meinem 50MHz Quarz für
alles ausgekommen. Aber nicht mehr lange :-)
Hast du schonmal daran gedacht den Funktionsgenerator hier als Projekt
zu machen ?

Gruß
Rene

von Thomas Petrulat (Gast)


Lesenswert?

 abo 

von Thomas B. (paraglider)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,

hatte ja versprochen, dass ich noch den Schaltplan einstelle. Wie ihr
seht, handelt es sich hier um eine ganz einfache Schaltung, die mehr
zum Testen der prinzipiellen Funktion dient.
Denn Offset des TDA1543 habe ich mit R1 so eingestellt, dass bei
angezeigtem Offset "0.000V" etwa 2 Volt am Ausgang anliegen, so kann
man die FPGA-Konfiguration prinzipiell testen. Die Amplitude ist nicht
kalibriert, ein eingestelltes Millivolt entspricht also tatsächlich
nicht genau einem Millivolt. Auch ist das Ausgangssignal im
Frequenzbereich oberhalb etwa 20kHz deutlich verzerrt, obwohl die
Ausgabefrequenz 50MHz/5.5/16/2=284kHz beträgt.
Wer einen Funktionsgenerator für den (Heim-)Laborbetrieb aufbauen will,
der sollte natürlich eine Schaltung mit symetrischer Stromversorgung,
kalibrierbarer Verstärkung, besserem Filter etc. aufbauen (gerne auch
hier posten). Der Operationsverstärker ist vielleicht auch nicht so gut
für diesen Zweck geeignet, ich habe ich nur verwendet, weil er einen
weiten Ausgangsspannungsbereich hat.

Gruß, Thomas

von Tom (Gast)


Lesenswert?

abo

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.