Frequenzgenerator V2 [#1 von 3]

Hallo und willkommen zu dieser Beitragsreihe!

 

Wir hatten in einem vorigen Beitrag schon den Bau eines simplen Low-Cost Frequenzgenerators gezeigt. Dieser basiert auf einem Arduino Due und ist durch die Verwendung des Arduinos in der Maximalen Frequenz begrenzt und es wurde ein eher altmodischen User Interface verwendet, dass sich hin und wieder aufhängt und resettet werden muss. Für das damalige Projekt wurden hohe Frequenzen auch nicht benötigt, aber die Möglichkeit Schwingungsmesssysteme (wie z.B. IMUs – Inertial Measurement Units, auf Deutsch Beschleunigungsaufnehmer) auf einem breiteren Frequenzband testen zu können ist ein nützliches Feature. Ziel dieser Beitragsreihe ist einen Frequenzgenerator aufzubauen, der nicht nur günstig ist, sondern auch umfassende Funktionen bieten kann und ein breiteres Frequenzband abdeckt.

Die beste Variante zur Erzeugung von fein justierbaren, periodischen und bandbegrenzten Signalen ist die Direkte Digitale Synthese (kurz DDS). Alle handelsüblichen, teuren und hochqualitativen Funktions- und Frequenzgeneratoren für den Laborbetrieb basieren auf diesem Prinzip, aber im Low-Cost-Bereich ist ihr Einsatz eher selten. Hier kommt der AD9850 bzw. AD9851 DDS-Chip ins Spiel. Dieser ist für wenig Geld zu haben und ermöglicht es uns, eine bessere Signalqualität zu erreichen, als es mit einem Arduino alleine möglich wäre. Außerdem benötigt die Ansteuerung des AD9850 keine große Rechenleistung, also kann dafür einer der günstigsten Arduinos verwendet werden, ohne auf andere Features, wie z.B. ein User Interface, verzichten zu müssen. Anstatt eines altmodischen Zeilendisplays, verwenden wir ein TFT-Display, dass ein vollfarbiges User Interface ermöglicht, aber trotzdem leicht und ohne zu viel Speicher zu verwenden über eine serielle Schnittstelle vom Arduino anzusteuern ist.

[AD9850 DDS (links), Arduino Nano Mikroprozessor (mitte), ST7735 TFT-Display (rechts)]

Der Aufbau des Frequenzgenerators erfolgt basierend auf diesem Projekt von John. Kurz zu den Eigenschaften des AD9850 DDS Chips: Es kann von 0 Hz bis 62,5 MHz (zumindest theoretisch) eine kontinuierliche Sinusschwingung mit veränderlicher Phase und Spitze-zu-Spitze Spannung von 1V ausgegeben werden. Oberhalb von 30 MHz nimmt allerdings die Amplitude des Signals immer weiter ab und ist damit nur noch eingeschränkt nutzbar, wir beschränken uns daher auf Frequenzen bis 10 Mhz um auf der sicheren Seite zu ein. Die Frequenzauflösung beträgt 0,0291 Hz und Frequenz und Phase können schnell über beschreibbare Register geändert werden. Der AD9850 gibt außerdem auf einem zweiten, parallelen Kanal ein Rechteck-Signal mit einer höheren Spitze-zu-Spitze Spannung von 5V aus. Das Rechtecksignal ist zwar nur bis 1MHz nutzbar, da es danach nicht mehr rechteckig ist sondern stark verfälscht, ein Rechtecksignal zur Verfügung zu haben, schadet aber trotzdem nicht und soll in den Schaltungsaufbau integriert werden. Der Duty Cycle der Rechteckschwingung kann über ein Potentiometer eingestellt werden, hier macht es Sinn den Duty Cycle auf 50% einzustellen.

In der Software-Vorlage, die hier zunächst verwendet wird, wird die Frequenz nur ganzzahlig angegeben, aber eine Anpassung der Auflösung bedarf nur einer relativ simplen Änderung im Code.

Wir verwenden folgende Komponenten:

  • 1x Arduino Nano (oder jeden anderen mit ähnlich vielen Ports und basierend auf dem ATmega328)
    Reichelt oder AliExpress
  • 1x AD9850 DDS
    Ebay oder Amazon
  • 1x 5V Netzteil zur Versorgung der beiden ICs
    Reichelt
  • 1x ST7735 Full Graphics Display
    Reichelt oder AliExpress
  • 2x Drehimpulsgeber mit Schalter (engl. rotary encoder)
    Reichelt
  • Kabel, Schalter, Platine bzw. Breadboard zum prototypen, Stecker und Buchsen zum Anschluss an das Netzteil und den Verstärker
    Cinch Buchse Reichelt
    5V Buchse Reichelt
    Schalter Reichelt

Sind die Komponenten bestellt, kann in der Zwischenzeit schonmal an einem schönen Gehäuse und Drehknöpfen für die Drehimpulsgeber gearbeitet werden. Für das Gehäuse stellen wir euch eine Vorlage zum Ausschneiden aus Plexiglas oder MDF auf dem Lasercutter (oder mit einer feinen Laubsäge/Dekupiersäge) zur Verfügung. Ich habe die Box aus Plexiglas gemacht und die Blende aus zwei 1mm starkem Polystyrol  Platten. Für die Drehknöpfe gibt es eine STL-Datei zum herunterladen und es werden zwei davon auf einem 3D-Drucker ausgedruckt. Alternativ können auch passende Drehknöpfe zu den Drehimpulsgebern mitbestellt werden.

[Lasercut-Vorlage]

[Vorschau der fertigen Box (links), Vorschau 3D gedruckter Knopf (rechts)]

 

Weiter gehts in Teil 2 dieser Beitragsreihe mit dem Aufbau eines Prototypen und dem Testen der Software aus der oben genannten Quelle. Die modifizierte getestete Software stellen wir euch dann natürlich zur Verfügung.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.