Klirrarmer Sinusgenerator

Sinus wave generator

Gemeinschaftsentwicklung DG1KPN & DL6GL

Nach der Duftmarke im NF-Bereich mit unserem True RMS-Millivoltmeter wollten wir dann doch noch wissen, ob es möglich ist, einen durchstimmbaren Sinusgenerator mit einem Klirrfaktor (THD) von deutlich unter 0,1% mit überschaubarem Aufwand zu bauen. Es ist gelungen, auch wenn nicht alle anfangs hochfliegenden Vorstellungen erfüllt wurden.

Unsere Daten:

  • Frequenzbereich 15Hz bis > 100kHz
  • Klirrfaktoren (THD, gemessen mit Arta [5])
    20Hz: 0,06%
    100Hz: 0,014%
    200Hz bis 6kHz: < 0,01%
    Minimal 0,004% bei 2kHz
  • Amplitudenkonstanz:
    14Hz bis 60kHz ± 1% (± ~ 0,1dB)

An und für sich genügte der DDS-Funktionsgenerator seinem Zweck als präziser NF-Generator mit einfacher Bedienung und einem über den Abstimmbereich bis 50kHz auf 1% (ca. 0,1dB) amplitudenkonstanten Signal mit noch akzeptablem THD von weniger als 0,2% bei 1kHz.

Versuche mit einem Wien-Robinson-Oszillator wie hier, allerdings über den NF-Bereich durchstimmbar und mit einer Glühbirne als Gegenkopplung regelndem PTC-Widerstand, blieben unbefriedigend. Die Regelung und damit ein hinnehmbares THD waren über den Abstimmbereich nicht hinzubekommen. Zudem bewirkte jede Frequenzänderung ein Aufschaukeln der Signalamplitude. Wie es mit mehr Aufwand besser ginge, zeigt Linear Technology in [4].

Norbert, DG1KPN, hatte vor langer Zeit eine Schaltung aus Elektor [1] nachgebaut, die vielversprechende Daten aufwies. Es handelt sich um einen Phasenschieberoszillator mit einer JFET-Regelung. Ein noch geringeres THD bei vergleichbarem Design ist angeblich mit LDR-Optokopplern (Vactrols) zu erreichen, z.B. [2]. Diese Schaltungen basieren auf dem Artikel "Phase-shifting oscillator" von Roger Rosens in Wireless World Feb. 1982 [3], in dem ein nicht mehr erhältlicher Thermistor zur Regelung verwendet wird. Die Schaltung nach [2] wurde mit einem halbwegs schnellen Vactrol NSL-32SR3 probehalber nachgebaut. Obwohl in [2] für die selbst zusammen strickende LED-LDR-Kombination "Photo resistor (any type)" angegeben wird, war in unserem Testaufbau die Amplitudenregelung und damit ein passables THD und ein glatter Frequenzgang auch mit geänderter LED-Ansteuerung und niederohmigerem Gegenkopplungszweig an IC2A in [2] nicht zu erreichen. Der im angesteuerten Zustand sehr niederohmige NSL-32SR3 war trotz "any type" zumindest hier nicht brauchbar.

So haben wir uns für die JFET-Variante nach [1] entschieden, allerdings mit ein paar kleinen Erweiterungen.

 

Referenzen

[1]  W. Meislinger, RC generator, Elektor July/August 1983, pp. 7-65/66
      http://home.kpn.nl/a.van.waarde/id20.htm
[2]  http://www.redcircuits.com/Page82.htm
[3]  http://www.keith-snook.info/wireless-world-magazine/wireless-world-articles.html
[4]  http://www.linear.com/solutions/1623
[5]  Arta-Software: http://www.artalabs.hr/download.htm
[6]  Visual Analyser: http://www.sillanumsoft.org/download.htm
[7]  http://www.ebay.de/itm/AD637-RMS-Module

Tags:

1 Schaltung

1.1  Sinusgenerator

Generator schematics

Abb. 1.1: Schaltung des Sinusgenerators.

IC1a, 1b und 2a bilden den eigentlichen Phasenschiebergenerator. Die Schwingfrequenz berechnet sich aus

f0 = 1 / (2πRC),   R [Ω], C [F], f0 [Hz]

wobei R für die identischen R2 + P1a und R3 + P1b sowie C für die ebenfalls identischen C1…C4 und C5…C8 stehen. C1 bis C8 sollten jeweils paarweise auf ca. 1% ausgemessen werden. Für C1 und C5, nominal 1nF, sind auf der Schalterplatine jeweils 2 Plätze vorgesehen, um z.B. mit 820pF + x eine Überlappung der beiden oberen Frequenzbereiche herstellen zu können. Mit einem falsch gepolten Stereo Log-Poti ist auch ohne Feintrieb eine halbwegs feinfühlige Frequenzeinstellung möglich. Dabei verringert sich die Frequenz mit Drehung im Uhrzeigersinn. Norbert hat ein lineares Stereo-Poti verwendet, dazu noch einen Feintrieb, siehe Aufmacherbild oben.

Mit den Nominalwerten ergeben sich folgende Einstellbereiche.

R Min 1kΩ f Max
R Max 11kΩ f Min
C f Min (Hz) f Max (Hz)
1.000nF 14 159
100nF 145 1.592
10nF 1.447 15.915
1nF 14.469 159.155

Für die Resonanzfrequenz f0 bewirken die beiden RC-Glieder eine Phasenverschiebung von je 90°. Die Verstärkungen sind mit R1 + R4 (IC1a) sowie R5 + R6 (IC1b) auf 1 eingestellt. Der invertierende Verstärker IC2a erzeugt weitere 180°, so dass mit insgesamt 360° Phasendrehung zusammen über die mit P2 und R13 einstellbare Verstärkung eine sich aufrechterhaltende Schwingung mit Frequenz f0 einstellt. Am oberen Frequenzende schafft der OpAmp die gewünschte Phasendrehung nicht mehr sauber, so dass mit etwa 100kHz Ende der Fahnenstange ist.

Das Ausgangssignal hätte nur eine entfernte Ähnlichkeit mit einem Sinus, wenn nicht für eine Amplitudenregelung gesorgt würde. IC2a arbeitet zugleich über die Dioden D1 und D2 als Vollweggleichrichter. Dessen DC-Spannung vergleicht IC2b mit der von der Zenerdiode D4 gelieferten Referenzspannung. Die Spannungsdifferenz verstärkt IC2b, um damit über die Widerstandsänderung der Drain-Source-Strecke des JFET T1 die Verstärkung von IC2a zu regeln (AGC, automatic gain control). C13 integriert die DC-Spannung, R14 + C14 dämpfen Schwankungen bei Frequenzänderungen und D3 begrenzt positive Ausgangsspannungen zum Gate von T1.

Das bestimmende Element für die Amplitudenregelung ist der JFET T1. Drei Kunstgriffe helfen bei dem an sich nicht ideal linearen Stellglied, das THD in den Griff zu bekommen:

  1. Die Rückführung des vom nicht invertierenden Eingang von IC2a an der Drain liegenden AC-Signals auf das Gate von T1 mit R11 zusammen mit R12 - je 47kΩ - mit genau der Hälfte des Drainsignals, im Mustergerät 360mVpp zu 180mVpp. Damit werden die geraden Harmonischen unterdrückt, was tatsächlich mit Variation von R11 verifiziert werden konnte. R11 und R12 sollten daher 1%-Typen sein. Soweit sind wir dem Original [1] gefolgt.
     
  2. Da geht noch was: Über [1] hinaus haben wir mit dem aus R9, R10 und P7 gebildeten Bypass parallel zur Drain-Source-Strecke den nicht linearen Regelbereich von T1 eingeengt, was eine zusätzliche Reduktion des THD von ca. 0,01% auf ca. 0,005% bei 1kHz zur Folge hatte. Mit P7 wird das THD reduziert. Dabei sind gleichzeitig die Regelspannung am Messpunkt MP und ein sicheres Schwingen in allen Frequenzbereichen zu beachten. Hier ist also ein Kompromiss zwischen Schwingsicherheit und minimal möglichem THD zu finden, siehe Abschnitt 3.
     
  3. Einsatz eines selektierten BF256C (bei reichelt.de zu bekommen). FET-Daten streuen beträchtlich. Wir haben aus einer Hand voll BF256C einen mit einem IDSS ~ 15…16mA mit dem Kennlinienschreiber ausgesucht. Es geht auch ohne Kennlinienschreiber (der Drainwiderstand soll eine mögliche Schwingneigung verhindern):
    JFET IDSS
    Abb. 1.2: Bestimmung des IDSS mit Bordmitteln.

Am Ausgang von IC2a steht das Sinussignal zur Verfügung.

Auf gesonderten Platinen sind ein Stufenabschwächer und ein Spannungsfolger IC3 angeordnet. Mit P6 wird ein DC-Offset kompensiert, mit P5 wird mit einer Last von 600Ω an der Ausgangsbuchse die Ausgangsspannung (1,55V ohne Last) auf genau die Hälfte (775mV) eingestellt. Ausgangsleistung also 0dBm an 600Ω.

Output amplifier

Abb. 1.3: Abschwächer und Ausgangsverstärker.

1.2  Digitalteil

Die Anzeige der eingestellten Frequenz und des Frequenzbereiches besorgt ein ATmega48.

Controller schematics

Abb. 1.4: Digitale Frequenzanzeige.

Der Timer/Counter1-Eingang PD5 erhält ein fast digitales Signal von dem mit 1,55VRMS (~ 4,4Vpp) total übersteuerten Transistor T1 zur Zählung. Die Torzeit ist auf 0,5sec eingestellt, so dass sich aus dem mit 2 multiplizierten Zählergebnis eine Frequenzauflösung von 2Hz ergibt. Fallweise kann mit C8 die angezeigte Frequenz justiert werden.

Der ADC0-Eingang PC0 erhält vom Range Switch abgestufte Spannungen zur Anzeige des eingestellten Frequenzbereichs.

Mit R4 kann ggf. die Helligkeit der LCD-Hintergrundbeleuchtung eingestellt werden. Mit P1 wird der Anzeigekontrast des LCD justiert.

Da der 5V-Spannungsregler die ungeregelte Leerlaufspannung des Trafos zu verkraften hat, ist er mit dem 7805 gemessen am Strombedarf reichlich überdimensioniert.

Die Firmware ist in BASCOM-AVR programmiert, Quelle und .hex im Download.

1.3  Netzteil

Power supply

Abb. 1.5: Netzteil.

 

 

2 Realisierung

Die Kondensatoren C1 bis C8 zur Bereichsumschaltung sind auf einer Platine untergebracht, die auch den Drehschalter Lorlin DS3PC (3x4 Kontakte) aufnimmt. Die Verbindung stellt eine 5 fach-Stiftleiste auf der Schalterplatine und eine gewinkelte 5 fach Buchsenleiste auf der Generatorplatine her (Abb. 2.1).

Generator board

Abb. 2.1: Generatorplatine.

Die Digitalplatine wird mit 16 fach-Stift und -Buchsenleisten auf das 16x2 LCD aufgesteckt.

Die Abschwächerplatine mit einem Drehschalter Lorlin DS2PC (2x6 Kontakte) und den Widerständen R17 bis R21 ist über Stiftleisten und gewinkelte Buchsenleisten mit der Platine des Ausgangsverstärkers IC3 verbunden.

Halbleiter:

  • Für IC1 und IC2 wurden wurden NE5532 (DL6GL) bzw. TL072 (DG1KPN) eingesetzt. Signifikante Unterschiede waren nicht festzustellen.
     
  • In Vorversuchen, noch ohne Bypass R9, R10 und P7, haben wir auch andere, gerade vorhandene JFETs mit IDSS > 16mA versucht.

    THD J310 & BF245C
    Abb. 2.2: THD mit JFET J310 und BF245C ohne Bypass R9, R10 und P7.

    Dramatisch sind die Unterschiede nicht. Eine mögliche Verbesserung mit dem Bypass R9, R10 und P7 wurde nicht untersucht.

3 Einstellungen

  1. P3 vor dem Einbau auf Mittelstellung bringen.
    P7 vor dem Einbau auf maximalen Wert (gegen den Uhrzeigersinn) einstellen (Pinanordnung auf dem Board beachten). Damit ist der Bypass zur Drain-Source-Strecke von T1 zunächst unwirksam.
     
  2. Scope an der Ausgangsbuchse anschließen.
    Digitalmultimeter an Messpunkt MP anschließen.
     
  3. Mit P2 die AGC-Spannung am Messpunkt MP auf ca. -1,5 bis -2,5V bei 1kHz einstellen. Damit sollte ein Sinussignal am Scope zu sehen sein. Mit P1 und dem Bereichsschalter ein sicheres Schwingen über alle Frequenzen überprüfen. Ggf. mit P2 im obersten Bereich nachregeln, AGC-Spannung an MP immer negativ. Bei Problemen im obersten Frequenzbereich AGC-Spannung (negativ) erhöhen. Sie muss stabil stehen.
     
  4. Mit P3, Abschwächer auf 0dB und P4 voll aufgedreht, ein Ausgangssignal von 1,55V RMS (4,38Vpp) am Scope einstellen.
     
  5. Abschwächer auf GND, mit P6 0V DC-Offset einstellen.
     
  6. Abschwächer wieder auf 0dB, P4 voll aufgedreht. 600Ω Last an die Ausgangsbuchse anschließen, mit P5 755mV RMS (2,19Vpp, halbe Spannung ohne Last) einstellen.
     
  7. Nun die Feinjustierung auf bestes THD:
  8. PC-Soundkarte (Line in) an der Ausgangsbuchse anschließen. Das Ausgangssignal sollte 0,5V RMS = -3,8dBu = -6 dBV nicht überschreiten, besser weniger. Dazu Abschwächer auf -10dB und Feinregelung mit P4.
     
  9. Wahlweise Arta [5] oder Visual Analyser [6] starten.
    Arta-Einstellungen:
    "Gen": External
    "FS(Hz)": 44100
    "FFT": 16384
    "Smoothing": Hanning.
     
  10. Einstellung bei 1kHz:
    AGC-Spannung am Messpunkt MP ca. -1,5V bis -2,5V. THD messen, sollte bei ca. 0,01 bis 0,015% liegen.
    An P7 im Uhrzeigersinn drehen (Widerstand wird reduziert), dabei THD und gleichzeitig die AGC-Spannung an MP beobachten. Diese wird negativer. Mit P2 wieder zurücknehmen. Ab einer bestimmten Stellung von P7, abhängig von T1, vermindert sich das THD deutlich, in unseren Mustergeräten auf ca. 0,005% bei ca. -2,5V am Messpunkt MP bei 1kHz. Das sollte erst einmal reichen.

    Am DL6GL-Mustergerät wurde mit einem BF256C, IDSS = 15mA, ein Gesamtwiderstand parallel zur Drain-Source-Strecke (R9 + R10 + P7) von 150 bis 200Ω als optimal gefunden. Der mit R9 + R10 + P7 zu überstreichende Einstellbereich ist ca. 140…1.160Ω.
     

  11. Nun wie in Punkt 3 alle Frequenzbereiche auf sicheres Schwingen prüfen. Kritisch ist der oberste Bereich. Mit P2 und P7 ggf. nachkorrigieren.

4 Messungen

Zur Messung des THD mit der PC-Soundkarte haben wir sowohl Arta [5] als auch Visual Analyser (VA) [6] verwendet. Arta liefert tendenziell etwas höhere, dafür aber stabilere Werte als VA. Die THD-Anzeige bei VA schwankt teilweise sehr stark. Zum Einsatz kamen die verschiedenen PCs bei Norbert und mir mit Core 2 Duo- bis I5-Prozessoren unter WinXP oder Win10 und entsprechend mehr oder weniger gutem, nach der im Arta-Manual beschriebenen Testprozedur aber brauchbarem On Board-Soundsystem. Die Audiobandbreite erlaubt naturgemäß nur THD-Messungen bis knapp unter 10kHz.

4.1  Klirrfaktoren (THD)

THD NE5532

Abb. 4.1: NE5532, THD gemessen mit Arta und Visual Analyser.

TL072 THD

Abb. 4.2: TL072, THD gemessen mit Visual Analyser.

Beide Bilder sind nahezu identisch. Die Unterschiede zu den Vorversuchen ohne FET-Bypass (Abb. 2.2) sind jedoch deutlich, insbesondere im unteren Frequenzbereich.

Bei der Aufnahme des Frequenzgangs hat Norbert einen RMS-Konverter mit einem AD637 [7] verwendet, der 1% Fehler bei 2V RMS Eingangsspannung bis 200kHz garantiert. Der DC-Ausgang wurde mit einem fünfstelligen DVM gemessen.

Frequency response

Abb. 4.3: Frequenzgang des Sinusgenerators.

Insbesondere in den beiden oberen Frequenzbereichen sind deutlich Sprünge im Amplitudengang zu sehen. Der Frequenzgang über alles von 14Hz bis 60kHz  ± 1%, das sind weniger als ± 0,1dB, kann sich dennoch sehen lassen.

Noch ein Wort zu dem o.a. AD637 RMS-Konverterboard: Der Preis, €14,98 und kostenloser Versand (Stand Feb. 2018), ist unschlagbar. Wer die Taubheit bei tiefen Frequenzen noch kurieren will, sollte nach vorsichtigem Abheben des Abschirmdeckels folgende C's austauschen: C1 = 47µF und C4 = 22 µF.

AD637 board

Abb. 4.4: AD637 Board (http://stores.ebay.de/kiss-buyer, China).

 

5 Download

Hier noch die ergänzenden Dateien - Schaltung, Platinen und Firmware - wie immer ohne jede Gewährleistung.