Funktionsgenerator

Aus NeoWiki

Wechseln zu: Navigation, Suche

Diese Seite wird nicht mehr weiter gepflegt!


Inhaltsverzeichnis

Projektbeschreibung

Ausgangspunkt war eine fixe Idee, einen allround Funktionsgenerator selbst zu bauen. Die Signal- und Frequenzstabilität reicht für die meisten Anwendungen locker aus, so dass die Idee als Hobby "nebenher" ausgereift ist.

Hardware

Kompletter Schaltplan
Hauptplatine Front
Hauptplatine Back
Bild des LCD Riser Boards

Die Hardware besteht aus dem nachgebauten DDS Generator von Jesper Hansen, einem Controller für die Benutzersteuerung, einem DotMatrix LCD und einer analogen OPV Stufe für die analoge nachregelung.

Die Hauptplatine beherbergt

  • Spannungsregelung +5V, +12V, -12V
  • Controller1 für das Benutzerinterface (LCD, Rotary Encoder, Switches (optional über PortC)
  • Controller2 für das Erzeugen der verschiedenen Signalformen/Frequenzen
  • Widerstandsnetzwerk als DAC
  • 4-Fach OPV Stufe für die analoge nachbearbeitung des Signals

Das LCD wird im 90° Winkel mittels Riser Board auf die Hauptplatine gesteckt.


Somit kommt das gesamte Projekt mit nur einer Eurokarte aus und kann unter Anderem auch in ein 1HE 19" Gehäuse (ausgeschlachteter Switch, etc) verbaut werden.


Externe Komponenten sind lediglich noch

  • ein Transformator 2x12V AC 0.5A
  • Externe Verstärkerstufe 15-20W (wird später dem Projekt noch hinzugefügt)







  • Komplette Layout und Schaltplandateien als ZIP Paket:

Layout und Schaltplan V1.10

Firmware

Die Firmware ist komplett in AVR Assembler geschrieben. MiniDDS.ASM ist eine leichte Modifikation des oben erwähnten Quellcodes von Jesper Hansen.

Die Bedienung erfolgt über einen einzigen Regler: ein Drehgeber (GRAY Code) mit Tastfunktion:

  • Links/Rechts Auswahl im Menü / Einstellen der Frequenz
  • Drücken: Aktuellen Menüeintrag quittieren

Die Frequenzen können folgenden Schritten eingestellt werden (+/-):

  • FINE
  • 1 Hz
  • 10 Hz
  • 100 Hz
  • 1 KHz
  • 10 KHz

Die Quellcodes inklusive vorcompilierten HEX Files kann hier herunter geladen werden:
Assembler Quellcodes V1.00

Bilder

Signalformen

Der Generator kann die Signalformen Sinus, Rechteck, Dreieck und Sägezahn erzeugen:
Fg sine.gif Fg square.gif Fg triangle.gif Fg sawtooth.gif

Regelung der Amplitude

Über die Analogregelung kann die Amplitude zwischen 0 und 6.5 Vrms AC stufenlos eingestellt werden:
Fg sine low.gif

Regelung des Offset

Über die Analogregelung kann das Offset stufenlos eingestellt werden:
Fg sine bottomclip.gif Fg sine topclip.gif Fg sine noclip.gif
In Kombination mit der Amplitudenregelung lässt sich die komplette Signalform stufenlos sowohl in den positiven als auch den negativen Spannungsbereich verschieben.

Minimal/Maximal Frequenzbereich

  • Die minimal darstellbare Frequenz kann ich mit meinem Oszilloskop gar nicht mehr messen. Sie liegt in etwa bei 0.2 Hz
  • Die maximal erzeugbare Frequenz liegt theoretisch irgendwo um 1 MHz.

Allerdings wird das Widerstandsnetzwerk und vor allem der Operationsverstärker schon viel früher überlastet, so dass ich eine Maximalfrequenz von ca 850 KHz messen konnte: Fg square 1.gif Fg square 200000.gif Fg square 500000.gif Fg square 850000.gif

Da sich die Signalform bei höheren Frequenzen verändert (bedingt durch Leiterbahnen und Widerstände, konnte ich die Maximalfrequenz nur mit einem Rechteck messen. Man sieht, dass sich bis 200KHz die Flanken verändern und später das generierte Rechteck am DA-Wandler Ausgang (Widerstandsnetzwerk) stark verändert. Auch ist es über 200KHz nicht mehr Frequenzstabil. Der Operationsverstärler quittierte seinen stabilen Dienst bereits bei etwas über 210KHz.

Die absolut maximal darstellbare (und auch noch stabile) Frequenz konnte ich bei 200 KHz ausmachen, ausser dem Sägezahn, dort liegt die maximale Frequenz bei 125KHz: Fg sine 200000.gif Fg square 200000.gif Fg triangle 200000.gif Fg sawtooth 125000.gif

Bilder der fertig aufgebauten Platine

Fg foto01.jpg Fg foto02.jpg Fg foto03.jpg



Meine Werkzeuge