5 Die Software

Die Auswertesoftware wurde mit BASCOM auf einem Testboard mit einem ATmega16 entwickelt. Der Quellcode der in den Abschnitten 2 und 3 beschriebenen Versionen ist identisch. Die übersetzten .hex-Files stehen für den ATmega16 und den ATmega32 zur Verfügung. Der Flash des ATmega16 ist zu 72% belegt, der des ATmega32 zu 36%. Die Einstellung der Fusebits mit AVR Studio ist im Quellcode beschrieben.

Die Software gliedert sich in zwei Teile:

  1. Setup der Kopplerdaten
  2. Normalbetrieb SWR- und Power-Anzeige.

14.03.2014: Update 2.01 verfügbar
Für eine ruhigere Anzeige werden 7 statt vorher 3 ADC-Messungen zum Anzeigewert gemittelt. Das ist aber auch nur ein (fauler) Kompromiss zur Leistungsanzeige bei SSB mit schnell wechselnden Sprachspitzen. Eine Rechnung mit den im Programm festgelegten ADC-Kenngrößen mag das verdeutlichen:

  • MCU-Clock: 16MHz.
  • ADC-Teilerfaktor: 128, ergibt ADC-Clock 16.000/128 = 125kHz, entspricht 8µsec.
  • ADC-Konversionszeit bei Auto-Trigger: 13,5 ADC-Zyklen mit je 8µsec, das sind 108 µsec.
  • Mit der Mittelung über 7 Konversionen werden daraus 756µsec und noch etwas Rechenzeit.

Diese Mittelung greift sich jeweils ein zufälliges Zeitfenster aus dem modulierten HF-Signal, was die Leistungsanzeige unruhig erscheinen lässt, bei der SWR-Anzeige kaum auffällt. Abhilfe würde eine zusätzliche Sample-Hold-Schaltung zur gleitenden Mittelung zu einem PEP-Wert bringen. Vielleicht später einmal...

... später ist demnächst im ersten Quartal 2017. Ein neues SWR-/Powermeter mit zweimal AD8307 für bessere Empfindlichkeit und PEP-Messung ist in Vorbereitung.

Werden zwei umschaltbare Koppler an einer Anzeigeeinheit verwendet (QRP/QRO) und überschreitet der QRO-Koppler die maximale ADC-Spannung von 5V, können die 1M-Arbeitswiderstände der Dioden im Koppler durch 1M-Mehrgangtrimmer ersetzt werden. Zum Ausgleich kann in Setup # 7 ein Korrekturfaktor eingegeben werden, der die Spannungsteilung wieder kompensiert. Die Verstärkungskalibrierung an den OpAmps wird nicht verändert.
Diese Version ist auch mit nur einem Koppler verwendbar. Der Korrekturfaktor ist mit 1 vorbesetzt, also keine zusätzliche Korrektur.

16.10.2015: Update 2.02 verfügbar
Einige OMs störten sich an der Balkenanzeige auch für den Minimalwert SWR=1. Bei SWR=1 wird nun kein Balken mehr angezeigt. Beschreibung auf dieser Seite unten.
V2.02 setzt auf V2.01 auf.

5.1 Setup der Kopplerdaten

Hierzu werden – einmalig mit der Inbetriebnahme – vier Taster benötigt:

Die Taster am besten in dieser Reihenfolge von links nach rechts in einer Reihe anordnen:

  1. Mode an PC.1
    Durchtakten der einzelnen Daten für das Setup.
  2. Left an PC.2
    Verschieben des Cursors über die Ziffern nach links.
  3. Up an PC.3
    Erhöhen der markierten Ziffer um 1 (von 0 bis 9, nach 9 kommt wieder 0).
  4. Right an PC.4
    Verschieben des Cursors über die Ziffern nach rechts (kurzer Tastendruck),
    Abspeichern: langer Tastendruck.

Zum Einstellen der Kopplerdaten muss PC.0 an GND gelegt werden. Bei der DG1KPN-Version mit einem Jumper an Stiftleiste K8, Pin 3 nach 4, bei der DL6GL-Version durch Verbinden der entsprechenden nebeneinander liegenden Leitungen des Flachkabels. Dann Gerät einschalten.

Wenn der ATmega frisch gebrannt wurde, werden zunächst Anfangsdaten in das EEPROM geschrieben. Das wird angezeigt:

"Init EEPROM..." in der ersten Displayzeile,
'...Write done"  in der zweiten Displayzeile, wenn der Vorgang beendet ist.

In der Folge werden die Daten aus dem EEPROM gelesen, angezeigt mit
"Read EEPROM..." in der ersten Displayzeile,
'...Read done"  in der zweiten Displayzeile, wenn der Vorgang beendet ist.

Es gibt 7 Einstelldaten der Messbrücke, mit dem Mode-Taster durchgetaktet:

  1. ADC-Referenzspannung in V.
    Spannung an AVCC des ATmega, i.d.R. 5V, mit einem DMM messen.
    Die 7805-Regler geben selten exakt 5,00V ab.
  2. Windungszahl der Ringkerne in der SWR-Messbrücke
  3. Dioden-Fitparameter A für die Fitfunktion y = A * x ^B + C,
    x = gemessene Diodengleichspannung
    y = HF-Spitzenspannung
    Die Parameter A und B müssen für die eingesetzte Diode bestimmt werden.
  4. Dioden-Fitparameter B für die Fitfunktion y = A * x ^B + C
  5. Dioden-Fitparameter C für die Fitfunktion y = A * x ^B + C, i.d.R. 1,000
  6. Diodenspannung in V für die untere Messgrenze.
    SWR und Power werden unterhalb dieser Grenze nicht angezeigt.
  7. Mit der Version 2.01 ist ein zusätzlicher Kalibrierungsfaktor "CalFactor" einstellbar für den Fall, dass ein Koppler eingesetzt wird, der bei der Maximalleistung mehr als 5V dem ADC zumutet, z.B. 30 Ringkernwindungen für einen 750W-Koppler. In diesem Fall müssen die 1M-Arbeitswiderstände der Dioden als Trimmer ausgeführt werden, so dass bei Maximalleistung höchstens 5V abgegriffen werden. Mit dem Kalibrierungsfaktor wird diese Spannungsteilung wieder korrigiert. Vorbesetzte Standardwerte: 1,000. Siehe auch Abschnitt 6.6.

Der angepasste Wert wird im EEPROM gespeichert, wenn der Right-Taster lange (ca. 1 sec) gedrückt wird. Der gespeicherte Wert wird in der ersten Zeile angezeigt.

Wie in Abschnitt 6.4 beschrieben, ist der Einsatz von zwei verschiedenen Kopplern möglich, z.B. einer für QRP und einer für QRO. Mit der Verbindung von Pin PA.6 nach Masse wird der zweite Koppler aktiviert, Anzeige auf dem Display mit "Unit 2". Die Kalibrierung des zweiten Kopplers erfolgt analog und unabhängig vom ersten Koppler (Unit 1).

5.2 Normalbetrieb SWR-/Power-Anzeige

Zur SWR-/Power-Anzeige muss die Verbindung von PC.0 nach GND entfernt sein. Dann Gerät einschalten. Mit dem Einschalten werden die EEPROM-Daten gelesen.

Display

Abb. 5.1: LCD-Anzeige.

In der oberen Zeile werden die Leistungen F (Forward) und R (Reverse) angezeigt. Je nach Stellung von Schalter S1 (Abb. 3.1, 4.1) wird die effektive oder die Spitzenleistung in Watt angezeigt. Bei Einstellung Effektivleistung leuchtet LED1. Die Berechnung der Vorwärts- und Rückwärtsleistungen mit P = U2 / R stimmt nur für einen Lastwiderstand = 50 Ω, die Berechnung der Effektivleistung mit dem Faktor 1/√2 nur für einen sauberen Sinus.

In der unteren Zeile werden von links nach rechts das SWR als Balken, begrenzt auf SWR=5, und rechts der entsprechende Wert, begrenzt auf 9,99, angezeigt. Das SWR wird aus den Vor- und Rückwärtsspannungen berechnet. Bei einem SWR>3 leuchtet LED2.

Bei dem Minimalwert SWR=1 werden zwei volle Blöcke und zwei Striche dargestellt (Abb. 5.1). Wen das stört und eine BASCOM-Lizenz besitzt, kann das in Sub ShowSWR ändern:

Sub ShowSWR
'Paint value sngVal on LCD, Row bytRow, as bar graph
'Input:  sngFWD         Foreward voltage
'        sngREV         Reverse  voltage
'        sngSWRMax      max. SWR to be displayed (end of bar)
'        sngSWRBarCal   calibration factor (dots / max value)

    sngTmp0 = sngFWD + sngREV
    sngTmp1 = sngFWD - sngREV
    sngSWR = sngTmp0 / sngTmp1                     'SWR
    If sngSWR > 9.99 Then
       sngSWR = 9.99                               'SWR display limit
    End If
    If sngSWR > sngSWRMax Then                     'Max SWR exeeded?
       LED_SWR = 1                                 'Yes, LED_SWR on
    Else
       LED_SWR = 0                                 'No, LED_SWR off
    End If

    'sngTmp0 = sngSWR                               'Original
    sngTmp0 = sngSWR - 1                           'SWR=1: no bar to display
    If sngTmp0 > sngSWRBarMax Then
       sngTmp0 = sngSWRBarMax                      'Display limit
    End If

An das Statement "sngTmp0 = sngSWR" ein "- 1" anhängen (fett, blau). Dann wird bei SWR=1 kein Balken mehr angezeigt. Das Update ist als Version 2.02 im Download verfügbar.