3 Software

Das Herz schlägt bei dieser doch recht übersichtlichen Hardware in der Mess- und Auswertesoftware. Die in BASCOM-AVR erstellte Software ist, wenn man bei einem zweizeiligen alfanumerischen LCD überhaupt davon sprechen kann, mit einer Menüführung ausgestattet. Das Menü wurde mit der Version 1.10 (05/2017) vereinfacht, um die Hauptfunktionen schneller zu erreichen:

  1. Normalbetrieb, Leistungsmessung mit Auswahl des Detektors,
  2. Kalibrierung der Detektoren in 1dB-Schritten,
  3. Wahlweise Zweipunktkalibrierung von dB-linearen Detektoren,
  4. Setzen der Eckpunkte für eine Zweipunktkalibrierung,
  5. Frequenzkorrekturen für fest vorgegebene Frequenzen,
  6. Festlegen der Ist-Werte der verwendeten Abschwächer,
  7. Festlegen der ADC-Wiederholungsmessungen zur Mittelwertbildung,
  8. Dimmen der LCD-Hintergrundbeleuchtung für Batteriebetrieb.

Eine detaillierte Beschreibung der Menüfunktionen ist im Download zu finden, hier beispielhaft das Menü 1 als Flussdiagramm. Nachfolgend sollen nur die wesentlichen Merkmale aufgezählt werden.

Program flow chart menu 1

Abb. 3.1: Menü 1, Messfunktionen.

3.1  Auflösung und Wiederholungsrate der Anzeige

Es war eine Auflösung von 0,01 dBm gewünscht. Der MCP3421 ist ein 18 Bit-ADC. Damit kann mit der hier gewählten unsymmetrischen Einspeisung (single ended) eine Auflösung von 15,6µV erreicht werden (s. oben). Allerdings ist hier die Konversionsrate nur 3,75 samples per second (SPS). Einschließlich der Zeit, die der ATmega für Berechnungen braucht, dauert eine Einzelmessung rund 300 msec.

Aus unseren Versuchen hat sich gezeigt, dass schon eine ADC-Einzelmessung hinreichend genau und stabil ist. In Menü 7 kann die Anzahl von Einzelmessungen für eine Mittelwertbildung festgelegt werden. Vorbesetzung: 1 Einzelmessung. Mit V1.10 wurde eine gleitende Mittelung eingeführt, die mit jeder neuen ADC-Einzelmessung einen neuen Mittelwert anzeigt.

Die Funktionen des MCP3421 für das Einstellen der Auflösung, der Vorverstärkung und das Auslesen des Konversionsergebnisses löst der ATmega per I2C wie im MCP3421-Datenblatt [4] beschrieben aus. Eine mögliche Umschaltung des ADC-Vorverstärkers von 1x nach 8x bei kleinen Pegeln hat nach unseren Tests keinen wirklichen Vorteil gebracht. So wurde hier darauf verzichtet.

3.2  Initialisierung des EEPROM

Mit dem ersten Programmstart nach dem Brennen wird der EEPROM mit Anfangsdaten initialisiert. Insbesondere werden die Kalibrierungsdaten so vorbesetzt, dass das Programm nach erfolgter Kalibrierung erkennen kann, was echte Kalibrierungsdaten und was Vorbesetzungen sind. Damit ist der für Messungen nutzbare Bereich vorgegeben.

3.3  Setup

In den Menüs 5 bis 8 können vorbesetzte Daten individuell eingestellt werden. Diese werden im EEPROM des ATmega gespeichert.

3.3.1  Kalibrierung

Für die zwei möglichen Messköpfe (Detektoren) sind individuelle Kalibrierungen vorgesehen.

Die Kalibrierungsstützstellen im Menü 2 umfassen -90 bis +20 dBm in 1 dB-Schritten. Bei den Messungen wird der gemessene Pegel, d.h. das ADC-Konversionsergebnis, ggf. aus Einzelmessungen gemittelt, um den gemessenen Offset vermindert. Über eine lineare Interpolation zwischen den zwei benachbarten Kalibrierungsstützstellen wird der zugehörige dBm-Wert berechnet. Mit diesem werden eventuell eingestellte Frequenz- und Abschwächerkorrekturen verrechnet.

Bei der Zweipunktkalibrierung für logarithmisch lineare Detektoren im Menü 3 sind nur die beiden im Menü 4 gewählten Eckpunkte zu kalibrieren. Daraus wird eine Kalibrierungsgerade berechnet und im EEPROM gespeichert.

Das Programm zeigt an, wenn bereits eine Kalibrierung des Detektors vorhanden ist und fragt zur Sicherheit, ob diese erneuert werden soll. Mit der Doppelfunktion des OK-Tasters (kurzer oder langer Druck) ist auch eine Nachkalibrierung ggf. einzelner Messpunkte gefahrlos möglich. Nur bei langem Druck auf den OK-Taster wird der vorhandene Wert mit dem neuen im EEPROM überschrieben. Mit einem kurzen Druck springt die Anzeige auf den nächsten Kalibrierungspunkt.

Vor der Kalibrierung wird der aktuelle Offset gemessen und auf Anforderung gespeichert. Die nachfolgenden Messungen werden um den Offset korrigiert ("Netto" = Offset subtrahiert).

Bei der Aufnahme der Kalibrierungskurve wird der o.a. Bereich von -90 nach +20 dBm in 1 dB-Schritten durchfahren. Die Auswahl des Startpunktes, möglicherweise recht weit oberhalb von -90dBm, erleichtert ein Autorepeat der Up- und der Down-Taste. Zur Anzeige kommen jeweils der im EEPROM gespeicherte und der aktuell gemessene ADC-Wert, vermindert um den Offset. Nur mit einem langen Druck auf den OK-Taster wird der neue Wert abgespeichert. Vorher erfolgen Konsistenzchecks:

  • Hat ein zu hoher Eingangspegel den ADC übersteuert (Overflow)?
  • Ist der aktuelle Wert gleich oder größer als der Wert für den um 1 dB niedrigeren Pegel, d.h. steigt die Kalibrierungskurve stetig an?

Nur wenn beide Fehlermöglichkeiten nicht zutreffen, kann gespeichert werden.

3.3.2  Frequenzkorrekturen

Die Kalibrierung erfolgt mit einer vorgegebenen Frequenz, i.d.R. 10 oder 50 MHz. Um die Frequenzabhängigkeit der Detektoren auszugleichen, sind für bestimmte Frequenzen Korrekturen möglich bei 1, 10, 30, 50, 145, 435 MHz, 1, 2, 4, 6, 8, 10 GHz. Die Korrekturwerte für die dBm-Anzeige können im Bereich -9,99 bis +9,99 in 0,01 dB-Schritten festgelegt werden. Sie sind zunächst mit Null vorbesetzt.

3.3.3  Tatsächlicher Wert verwendeter Abschwächer

Für möglicherweise vor dem HF-Messkopf verwendete Abschwächer, nominal 3, 6, 10, 20, 30 oder 40dB, können hier die tatsächlichen Werte eingegeben und gespeichert werden. Ausgangspunkt ist der jeweilige Nominalwert, Schrittweite wie oben ±0,01 dB.

3.3.4  LCD-Hintergrundbeleuchtung

Für den Batteriebetrieb kann die LCD-Hintergrundbeleuchtung gedimmt werden (s.o. Abb. 1.1 und 1.4). Der gedimmte Wert stellt sich automatisch ein, wenn die Batterie als einzige Spannungsversorgung erkannt wird.

3.4  Messfunktionen

Die eigentliche, in Menü 1 angesiedelte Hauptfunktion, das Messen, lässt sich erst zum Schluss erklären. Die nachfolgenden Funktionen sind nach Auswahl des verwendeten Detektors 1 oder 2 wirksam.

Mit der Auswahl des Detektors werden zunächst geprüft:

  1. Wurde für diesen Detektor schon ein Offset ermittelt?
    Wenn nicht, wird das angezeigt und sogleich zur Offset-Messung (Abschnitt 3.4.4) verzweigt. Dieser zeitaktuelle Offset wird zusätzlich zu dem bei der Kalibrierung vorgefundenen gespeichert.
  2. Sind für diesen Detektor Kalibrierungsdaten vorhanden?
    Wenn nicht, wird das angezeigt und sogleich zur Kalibrierung (Abschnitt 3.3.1) verzweigt.
  3. Sind die im EEPROM für diesen Detektor gespeicherten Kalibrierungsdaten konsistent?
    Zwei Fehlermöglichkeiten werden untersucht:

    (1) Im Bereich der gemessenen Kalibrierungsdaten sind noch aus der Initialisierung (Abschnitt 3.2) stammende, also nicht gemessene Daten vorhanden. Ist dies der Fall, wird sogleich zur Kalibrierung (Abschnitt 3.3.1) verzweigt.

    (2) Die Kalibrierungsdaten sind nicht stetig aufsteigend im aufgenommenen Kalibrierungsbereich. Ist dies der Fall, wird sogleich zur Kalibrierung (Abschnitt 3.3.1) verzweigt.

    In beiden Fällen wird der zuerst aufgefundene fehlerhafte dBm-Wert angezeigt, zu dem dann in der Kalibrierung navigiert werden kann.

3.4.1  dBm-, mW- und mV-Anzeige

In drei identisch aufgebauten Submenüs kommen zur Anzeige:

  1. In der ersten Displayzeile immer der Leistungspegel in dBm.
    Dieser ist korrigiert um den Nullsignal-Offset (Abschnitt 3.4.4),
    ggf. mit der Frequenzabhängigkeit des Detektors (Abschnitt 3.4.2),
    angezeigt rechts mit einer Frequenzangabe
    und ggf. mit dem Wert eines eingeschleiften Abschwächers (Abschnitt 3.4.3),
    angezeigt in Zeile 2 rechts mit einer dB-Angabe.
  2. Die zweite Displayzeile zeigt aus dem dBm-Wert berechnete Größen an:
    pW, nW, µW oder mW je nach Pegel
    µV, mV oder V-RMS je nach Pegel
    µV, mV oder V-Peak-to-Peak (pp) je nach Pegel.

Die Umrechnungen erfolgen mit den altbekannten Formeln mit Z = 50Ω und für reinen Sinus:

Je nach anliegendem Pegel werden Hinweise angezeigt,

  • < Cal.Rng: Pegel liegt unterhalb des Kalibrierungsbereiches,
  • > Cal.Rng: Pegel liegt oberhalb des Kalibrierungsbereiches,
  • Overload: ADC-Overflow, ADC übersteuert.

3.4.2  Frequenzkorrektur

Eine Frequenzkorrektur der Anzeige kann mit Auswahl einer Frequenz, Abschnitt 3.3.2, vorgenommen werden.

3.4.3  Abschwächerkorrektur

Eine Dämpfungskorrektur der Anzeige infolge eines vor dem Messkopf eingeschleiften Abschwächers kann mit Auswahl des Nominalwertes, Abschnitt 3.3.3, vorgenommen werden.

3.4.4  Aktuellen Offset messen

Die im EEPROM gespeicherten Kalibrierungsdaten sind "Netto", also Offset zum Zeitpunkt der Kalibrierung vom jeweiligen Signalpegel subtrahiert. Hier wird der zum Zeitpunkt der Messung aktuelle Offset erfasst und bei den Messungen (Abschnitt 3.4.1) subtrahiert.

3.5  Überprüfung der Spannungsversorgung

Mit dem Programmstart und fortlaufend wird die wahlweise von einem Steckernetzteil oder einer Batterie bereitgestellte Spannungsversorgung geprüft. Damit soll insbesondere die Funktionalität des Analogteils (OpAmp und ADC) sichergestellt werden. Ist das nicht der Fall, verweigert das Programm seinen Dienst. Die Batteriespannung muss mindestens 6V betragen.