SWR-Meter mit Mikrocontroller: OpAmp als Impedanzwandler nötig?

  • Hallo alle,


    ich möchte in einem Projekt ein SWR-Messgerät für kleine Leistungen (1 und 5W) auf Basis einer Stockton-Brücke bauen. Es gibt dazu Dutzende vergleichbarer Projekte. Ein wesentlicher Unterschied zwischen diesen Projekten ist, ob sie zwischen den Ausgängen des Richtkopplers für Forward Power und für Reflected Power einen OpAmp als Impedanzwandler einsetzen oder nicht.


    Mit OpAmp arbeiten beispielsweise


    - das nett gemachte Norcal Power/SWR Meter, http://www.norcalqrp.org/files/NorCal_Power_Meter_Rev_1D.pdf
    Siehe Schaltplan auf der letzten Seite. (Dieses Gerät nutzt zudem eine gematchte Diode im OpAmp um die Nichtlinearität der HF-Gleichrichterdiode auszugleichen, wenn ich das richtig verstehe)
    - die Mini-Schaltung von Steve Webber, http://kd1jv.qrpradio.com/butterfly/digiswr.HTM
    - die SWR-Messbrücke mit Korrektur der Diodenkennlinie nach DL6GL, z.B. https://dl6gl.de/amateurfunk/s…ektur-der-diodenkennlinie und Varianten, z.B. https://wiki.hackerspace-breme…jekte/swr-meter_kurzwelle.


    Dann gibt es eine Menge von Schaltungen, die einfach die Ausgänge des Richtkopplers an ADC-Eingänge des Microcontrollers (PIC, ATmega, ...) legen.


    Bisher hatte ich gedacht, dass diese Vereinfachung eher schlecht ist, weil es Anpassungsprobleme zwischen der Impedanz des Richtkopplers und der des ADC-Eingangs geben kann, und weil evtl. Schaltungsteile des ADCs (sample-and-hold) den Richtkoppler beeinflussen können.


    Gestern habe ich aber gesehen, dass der Elecraft T1-Tuner auf den OpAmp verzichtet und direkt auf die ADCs eines PIC geht:


    http://www.elecraft.com/manual…ners%20man%20rev%20A2.pdf


    Da die Elecraft-Leute nun wirklich etwas von der Materie verstehen, hat mich das gewundert.


    Eventuelle Nichtlinearitäten wären für mich kein Problem, im Notfall benötige ich eine Korrekturfunktion oder gar ein Tabelle mit 1024 Wertepaaren (10 Bit ADC). Blöd wäre Unzuverlässigkeit einer einmal kalibrierten Anzeige.


    Was meint ihr - mit OpAmp oder ohne?


    Martin


    PS: Ohne OpAmp muss man natürlich weitere Maßnahmen treffen, um Überspannung am Eingang zu vermeiden, aber das geht ja evtl. auch mit zwei schnellen Zenerdioden etc.

    Einmal editiert, zuletzt von DK3IT ()

  • Hallo,
    bei NorCal dient eine Diode in der Rückkopplung des OP zur Linearisierung. Auf der Internetseite von DL6GL lassen sich etliche Erkenntnisse und Ideen zum Thema "SWR- und HF-Leistungsmessung" finden. Viel Spaß beim Stöbern.


    73

  • Hallo !


    weder noch, rechne Dir bitte mal den Messumfang bei 1023 Bit ADC Messauflösung und die Genauigkeit ohne Referenzspannungsquelle aus.


    Ich verwende zwei AD8307 damit kann ich nach einem 2 Punkt-Abgleich auf rund 80dB Messumfang bei 0,1dB Auflösung mit einer externen Referenzspannungsquelle zurückgreifen.


    Die Linearität bis 100MHz ist sehr gut und so erhält man wirklich ein Messgerät.


    Eine Diodenlösung ist, ohne weitere linearisierungs Maßnahmen, nur ein Schätzeisen (+/- 20%), dafür würde ich kein µC einsetzen und eher auf ein 100µA oder 1mA Drehspulinstrument zurückgreifen.
    Ein ein VSWR Minimum kann man damit leicht ablesen.


    Hier fand ich gerade diesen alten Beitrag:
    http://www.qrpforum.de/index.p…ad&postID=76263#post76263

    73 de Uwe
    DC5PI

  • Hallo,
    bei NorCal dient eine Diode in der Rückkopplung des OP zur Linearisierung. Auf der Internetseite von DL6GL lassen sich etliche Erkenntnisse und Ideen zum Thema "SWR- und HF-Leistungsmessung" finden. Viel Spaß beim Stöbern.


    73


    Danke; das hatte ich verstanden und wollte das oben auch bereits sagen - hinsichtlich dieses Details ist natürlich die Frage, ob man das nicht ebensogut durch den uC erledigen lassen kann.


  • Hallo Uwe,
    danke. Zunächst: Es geht eher um einen SWR-Indicator als um ein Messgerät. 10-20% Genauigkeit bei der Ratio wären schon in Ordnung. Der uC kommt zum Zug, weil er billiger und kleiner ist als ein Drehspulinstrument. Mit ein paar SMD-LEDs geht das dann superkompakt. Wichtig ist aber, dass er auch mit kleinen Leistungen (mindestens 1W, 500mW wäre besser) zurechtkommt und die Anzeige nicht leistungsabhängig ist.


    Zur Referenzspannungsquelle: Viele uCs können intern eine ganz brauchbare Referenzspannungsquelle bereitstellen. Das sollte kein Problem sein.


    Zum Messumfang: Nehmen wir mal an, der uC wird mit 3.3V betrieben und die Referenzspannung wären auch 3.3V (oft sind es dann weniger, aber mal angenommen). 1024 Schritte sind 0,00322265625 V oder 3.2 mV Auflösung.


    Wenn man den RIchtkoppler (Windungsverhältnisse etc.) so dimensioniert, dass er bei 5 W und 50 Ohm 2V als Spannungsäquivalent for Forward Power liefert, dann kämen bei einem SWR von 1:2 0.6V am Reflected Power Port heraus, bei 1:1.5 0.4V etc.:


    10-Bit-Wert
    Ufwd 2 625

    SWR Ureflected / 10-Bit-Wert
    1 0,00 0
    1,2 0,18 57
    1,5 0,40 125
    1,75 0,55 170
    2 0,67 208
    2,5 0,86 268
    3 1,00 313


    Der Bereich von 1:1 bis 1:1.5 sind immer noch 125 Spannungswerte am ADC (0 - 0.4V). Das ist schon etwas, um rechnerisch zu kompensieren. Ich möchte kein OLED-Display mit 7 Nachkommastellen erzeugen, sondern einen LED-Bargraph, der aber insbesondere die Schwelle 1:2 bei 1 W, 2.5W und 5 W zuverlässig anzeigt und ansonsten einen Indikator gibt, ob das SWR eher 1.1 oder 1.8 ist.


    Das ganze muss auch nur bei CW funktionieren, also kein SSB.


    Und wie gesagt: Der feine T1-Tuner von Elecraft, der damit wirbt, immer bis zu einem SWR von 1:1.00 zu suchen, wenn es das gibt, versucht das nicht nur mit Dioden, sondern sogar ohne OpAmp. Und bei meinem Design würde der OpAmp die Anzahl ICs verdoppeln ;)


    Martin


    PS: Mein Beispiel hinkt im Moment dahingehend, dass die interne Spannungsreferenz z.B. bei einem ATtiny 1.1 und nicht 3.3V sind. Man kann aber auch Vcc als Referenz nehmen , wenn der verwendete Spannungsregler genau genug ist.

  • Mir geht es nur um HF im Bereich 3.5 - 28 MHz bei Leistungen zwischen 500 mW (Rockmite) und 5 W (QRP) und nur CW.
    Frequenzabhängige Probleme jenseits von 28 MHz sind für mich irrelevant.


    Für die Norcal-Schaltung mit Linearisierung durch eine gematche Diode am OpAmp spricht, dass dadurch auch die Temperaturabhängigkeit kompensiert wird, die ich mit dem uC sonst praktikabel nicht herausrechnen kann.


    Ich bin übrigens immer noch unentschlossen ;)

  • Ich habe gerade die Berechnungen von DL6GL (https://dl6gl.de/amateurfunk/s…ektur-der-diodenkennlinie) verwendet, um den zu erwartenden Korrekturfaktor zu berechnen, also den Faktor, um den die DC-Spannung am ADC von der tatsächlichen HF-Spannung abweicht. Bei meinen obigen Annahmen von 2V für 5W FWD sieht das mit den Werten für die BAT43 (a = 0,25161, b = -0,85798, c = 1 für U2 = a*U1^b +c) so aus:


    SWR Korrekturfaktor
    1,1 2,89
    1,2 2,09
    1,5 1,55
    1,75 1,42
    2 1,36
    2,5 1,29
    3 1,25


    Das heißt in 10-Bit Werten, dass bei einem SWR von 1:1.1 statt 30 für 0.1V nur 10 als 10-Bit-Repräsentation zurückgeliefert wird etc. Das sieht rechnerisch noch machbar aus.


    Mit den Werten für eine 1N57111 (siehe https://dl6gl.de/digitales-swr-power-meter/6-messbruecken) hat man bei 1:1.1 schon einen Korrekturfaktor von über 6, das wird dann eher knapp.


    Mit der BAT62, die speziell für solche Anwendungen gedacht ist, sieht es deutlich besser aus:


    SWR Korrekturfaktor
    1,1 1,92
    1,2 1,53
    1,5 1,27
    1,75 1,21
    2 1,18
    2,5 1,14
    3 1,13


    Die BAT62 ist zwar nur bei Mouser zu bekommen, aber wenn ich dafür ein IC spare...


    Es gibt sie übrigens auch gleich als Paar in einem SOT343 und SOT143.
    Der Abstand der Forward Voltage zweier Dioden ist mit 20mV spezifiziert.


    Ich denke, dass ich es damit und ohne OpAmp versuche.

  • Schau dir mal die Schaltung von Helmut, DL2AVH an. Da sind alle deine Bedingungen erfüllt und du kannst statt des mA Meters oder der 3-f Farben LED auch deinen Prozessor verwenden, obwohl der für deinen Wunsch von 0,5W bis 5W das beste SWR zu erkennen eigentlich die berühmte Kanone für die Spatzen ist.

    73/2 de Peter, DL2FI
    Proud member of Second Class Operators Club SOC and Flying Pig Zapper #OOO (Certificated Kit Destroyer)

  • Schau dir mal die Schaltung von Helmut, DL2AVH an. Da sind alle deine Bedingungen erfüllt und du kannst statt des mA Meters oder der 3-f
    Farben LED auch deinen Prozessor verwenden, obwohl der für deinen Wunsch von 0,5W bis 5W das beste SWR zu erkennen eigentlich die berühmte Kanone für die Spatzen ist.


    Danke Peter, die kannte ich noch nicht!


    Ich habe eine ähnliche kleine Platine auf Basis einer Idee von Hans Steinort (DF3OS), http://www.sp5jnw.sem.pl/konst…df3oshtmatudf3oseng.pdf14, mit Verbesserungen von DJ6TE und DL9SCO gebaut:


    [Blockierte Grafik: http://reflector.sota.org.uk/uploads/db9433/original/2X/6/6eb525bfc7da31a8adb9dba8e5edcb822f855521.jpg]


    Sie nutzt nur Diodenkombinationen für unterschiedliche SWRs und ist dementsprechend ein grobes Schätzeisen. Evtl. ist ein ATtiny doch noch kleiner als die Transistorschaltung von Helmut.


    Jetzt überlege ich eben, eine digitale Version zu bauen ;)

  • Hallo Martin,


    ich habe deinen Rechenansatz: Max. Eingangsleistung 5 Watt, Auskoppeldämpfung und max. ADC Messwert (1023) gegengerechnet.


    Und im 2.ten Ansatz noch ein paar kleine Anpassungen vorgenommen.


    * Pin = 5 Watt
    * Auskoppeldämpfung = 16,01 dB (Richtkoppler), somit liegt die max. Eingangsspannung am ADC bei 2,50 V
    * Referenzspannung ARef = 2,56V (Attiny45)


    Dabei wird ein Attiny45 mit einem ADC ohne Offset- (sonst +-/ 2Bit) und ohne Wandlungsfehler (sonst +/-1 Bit) bei einer interen Referenzspannung angenommen.


    Wenn Du Dir Abgleichwiderstände für s E {1.1, 1.2, 1.5, 1.75, 2.0 und 3.0} herstellst, dann sollte der Atmel Attiny45 die Berechnungen für eine bessere VSWR Anzeige vornehmen können.


    Damit erschlägt man auch gleichzeitig die beiden ADC-Wandlungsfehler, den Fehler der Referenzspannungsquelle und weiter Fehler in der Leistungs- zu Stromwandlung (resp. Spannungwandlung).


    Nachtrag
    Eine HF-Diode hat ja kein lineares Übertragungsverhalten für HF-Leistungen.
    f(x) = a + b*x


    Sondern es lässt sich in drei Abschnitte aufteilen:
    1) linear (f1(x) = a + b*x)
    2) quadratisch (f2(x) = a + b*x + c*x²) und
    3) logarithmisch (f3(x) = a + b*log(x*c)).


    Ein Abgleich mit mehreren (Stütz-)Stellen, würde die min. drei Übertragungsfunktionen, auf "nur" lineare Interpolationen zwischen diesen zurückführen.


    Das könnte für dein Projektziel auch erreichbar sein.

    73 de Uwe
    DC5PI

    3 Mal editiert, zuletzt von DC5PI ()

  • Hallo Uwe, all,


    vielen Dank - das hilft sehr weiter! Ich werde wohl eine Schaltung mit der guten BAT62 und ohne OpAmp versuchen und die Linearisierung per Software durchführen.


    Dazu hätte ich aber noch zwei Fragen:


    a) Die interne Spannungsreferenz von 2.56 V bei einem ATtiny funktioniert erst ab VCC > 3.0V. Meine Schaltung soll eventuell eine V-Variante des ATTiny nutzen, die bereits ab 1.8 V arbeitet. Dann steht aber nur die Spannungsreferenz von 1.1 V zur Verfügung, die zudem genauer ist als die 2.56V. Wenn ich aber den Richtkoppler so dimensioniere, dass ich im Bereich 0 - 1.1 V bleibe, bin ich in einem viel ungünstigeren Bereich der Diode, in dem sie viel weniger linear arbeitet. Nun habe ich mir gedacht , dass man das lösen könnte, indem man **nach** der Diode einen Spannungsteiler aus geeigneten Widerständen vorsieht. Dann würde die Spannung an der Diode z.B. von 0 bis 3 oder gar 5V reichen, am ADC aber nur 1/3 oder 1/5 davon anliegen.
    Wird das funktionieren oder habe ich etwas vergessen?


    b) Beim Vergleich des Norcal mit dem Elecraft ist mir aufgefallen, dass sie ziemlich unterschiedliche Ansätze für die Gleichrichtung und Glättung der HF-Spannung verwenden. Anbei ein Bild, das beide Schaltungen zeigt. Die Verwendung des OpAmp lasse ich hier mal außer Acht, sie haben wir ja schon diskutiert.


    Der Norcal-Ansatz nutzt die Diode D2, um die negative Halbwellen kurzzuschließen, wenn ich das richtig sehe. Der Elecraft-Ansatz nutzt die Diode, um nur die positiven Halbwellen durchzulassen (D1).


    Nicht ganz verstanden habe ich die Rolle von C1 bei Norcal und die genaue Wirkung von R3, C3 und R5 bei Norcal bzw. R4, R6 und C4 bei Elecraft.


    Kann mir hier jemand weiterhelfen?


    Sehe ich das richtig, dass R4 und C4 bei Elecraft ein Tiefpass bilden? Wozu dient R6 - als Spannungsteiler zusammen mit R4?


    Vielen Dank für Eure Hilfe!


    Martin


    PS: Die Norcal-Schaltung scheint mir insofern elegant, als die Nichtlinearität der Diode für die positive Halbwelle ja gar keine Rolle spielen sollte, wenn ich das richtig verstehe. Dafür muss sie die gesamte Leistung aufnehmen, was bei QRP und -19 dB aber kein Problem sein sollte.

  • Hallo Martin,


    ich muss für mich erst noch etwas klären:


    Warum soll der Atmel AVR nicht mit 5V oder 3.3V laufen?


    Ein TRX hat doch i.A. ein Versogungsspannung von >= 9V ?


    Gerade aus den Fragestellung der unterschiedlichen Diodenkennlinie, je nach Eingansspannung (Strom) würde ich versuchen eine hohe HF-Spannung an die Diode zu liefern.
    Der PIC im Elecraft T1 wird u.a. deshalb auch mit Vdd=6V betrieben und natürlich auch wegen den bistabilen 5V Relais.

    73 de Uwe
    DC5PI

  • Hallo Uwe,


    zu Deinem Nachtrag:


    Ich wollte einfach die Näherungsfunktion nach DL6GL verwenden, also


    CF = Uhf / Udc = a * Udc^b + c


    Für eine BAT62 hat er z.B.
    a = 0,12523
    b = -0,84625
    c = 1,00000


    ermittelt, siehe https://dl6gl.de/digitales-swr-power-meter/6-messbruecken.


    Da es die BAT62 in SMD gleich paarweise (gematcht?) gibt, sollte die Streuung deutlich geringer sein als bei Feldwaldwiesen-1N5711. Eventuell kann man die Parameter in der Firmware fest vorsehen, ohne jedes Gerät zu kalibrieren. Wir werden sehen :)


    Martin

  • Hallo Martin,


    denke bitte daran so ein Atmel AVR hat keine hardware Multiplizierer und nur wenig Fash und SRam Speicher,
    so können 32bit Float Berechnungen das Programm sehr groß und die Programmausführung langsam machen.


    Gerade diese Formel U^b hat es, ohne Optimierung, in sich:

    Code
    CF = Uhf / Udc = a * Udc^b + c


    Und die konstanten Faktoren für BAT62:
    a = 0,12523 ;
    b = -0,84625 und
    c = 1,00000
    sind eher als Richtwerte anzusehen.

    73 de Uwe
    DC5PI



  • Guter Punkt! Ich wollte die Schaltung möglichst universell gestalten und einen 3 oder 3V LDO verwenden. Dann würde die Schaltung ab 3.3 - 12 V problemlos laufen und die LEDs wären immer gleich hell. Man könnte sie aber auch extern mit einer Knopfzelle betreiben, wenn man nicht an das Rig herangehen möchte.


    Aber Du hast Recht: Eigentlich spricht nichts dagegen, mit 3.3V zu arbeiten. Höher bringt nichts, wenn man die interne Spannungsreferenz verwenden möchte und Deine Rechnungen zeigen ja, dass wir dann noch in einem guten Bereich liegen.


    Ich muss das natürlich erst noch experimentell anschauen, vermute aber, dass man mit einer guten Diode (BAT62) und ohne OpAmp genauso weit kommt wie mit einer 1N5711 und einem OpAmp.


    Martin

  • Hallo Martin,


    denke bitte daran so ein Atmel AVR hat keine hardware Multiplizierer und nur wenig Fash und SRam Speicher,
    so können 32bit Float Berechnungen das Programm sehr groß und die Programmausführung langsam machen.


    Gerade diese Formel U^b hat es, ohne Optimierung, in sich:

    Code
    CF = Uhf / Udc = a * Udc^b + c


    Hallo Martin,


    denke bitte daran so ein Atmel AVR hat keine hardware Multiplizierer und nur wenig Fash und SRam Speicher,
    so können 32bit Float Berechnungen das Programm sehr groß und die Programmausführung langsam machen.


    Gerade diese Formel U^b hat es, ohne Optimierung, in sich:

    Code
    CF = Uhf / Udc = a * Udc^b + c


    Ja, aber im Zweifel kann man auf dem PC eine Tabelle mit 1024 Werten berechnen und in den 8 k unterbringen.


    Martin

  • Ja, aber im Zweifel kann man auf dem PC eine Tabelle mit 1024 Werten berechnen und in den 8 k unterbringen


    Ja 1024 * 4 Byte (32Bit) passen in die 8k Flash z.B. eines Attiny85.


    Die neueren Attiny lasse ich mal außen vor.


    Zur Anzeige, es sollen LED sein ?
    Wie viele und in welcher Spreizung ?

    73 de Uwe
    DC5PI


  • Ja 1024 * 4 Byte (32Bit) passen in die 8k Flash z.B. eines Attiny85.
    ?


    Man könnte auch einfach eine Sequenz mit 1024 Werten à 12 Bit ablegen und den Wert dann über eine Pointer-Berechnung auslesen:


    adresse = startadresse + 1.5 * rohwert


    Dann braucht man für 1024 10-Bit-Werte nur 1536 Byte.


    Martin

  • Man könnte sie auch als integer werte ablegen, da entfaellt die bitschubserei und ist ein paar usec schneller.aber man ist ja nicht auf der flucht.
    73 de addi