2.2 Local Oscillator (VFO)

Firmware Update V3.10 (19.09.2016)
Firmware Update V3.05 (12.10.2014)
Firmware Update V2.02 (12.10.2014)
Firmware Update V3.04 (10.10.2014)

Firmware Update V3.03 (07.12.2013)

Der VFO mit dem Si570 erlaubt eine Feinabstimmung ohne die vom Si570 bekannten Knackgeräusche ("smooth tuning"). Zugegeben, große Frequenzänderungen quittiert der Chip hörbar, aber in Anbetracht des gegenüber herkömm­lichen DDS-Schaltungen simplen Schaltungsaufbaus ist ein Einsatz des Si570 nicht nur in SDR-Projekten eine Überlegung wert. Da der Si570 mit I2C anzusteuern ist, wurde ihm ein Atmel ATmega32 zur Seite gestellt, der alle Steuerungs- und Anzeigefunktionen übernimmt. Idee war, den im aktuellen RX werkelnden modifizierten Black Forest Counter [3] durch den VFO zu ersetzen, womit die Abmessungen der Platine, passend zum 16x2-LCD, vorgegeben waren.

VFO eingebaut in Abschirmbox

Abb. 2.2.1: LO im Gehäuse, Platinenversion 1.00

Das Herzstück, der Si570

Der "Any-Rate I2C programmable XO/VCXO" [4] ist u.a. in [1] und [5] ausführlich beschrieben. Christian Hirt dokumentiert in [5] ausführlich seine offenbar langwierigen Experimente ("result of much blood, sweat and beers") mit dem Baustein einschließlich der Steuerungssoftware in BASCOM-AVR.

Diese Arbeiten ermunterten mich zu diesem Projekt, den vorhandenen voluminösen LO, be­stehend aus 5-5,5 MHz VFO mit DAFC, je Band XO's und VCO's, synchronisiert mit einem Mischer und einer PLL, zu ersetzen. Moderne DDS wie der AD9951 schieden von vorneherein aus, da die filigrane Struktur des IC die eigenen Lötfertigkeiten restlos überfordert hätten. Dagegen ist der Si570 wahrlich handlich.

Erste Versuche mit der Software von Christian [5] schlugen fehl. Es wurde nicht versucht, in der Software nach dem Fehler zu suchen. Im Internet fand sich ein zweites Programm "Si570 Freq select, terminal.bas" von Sid Knox, W7QJQ [9]. Das lief auf Anhieb ohne viel Blut, Schweiß und Bier, allerdings waren die besagten Knackgeräusche deutlich beim Abstimmen zu hören. Bei der Frequenz-programmierung des Oszillators (DCO) und der Teiler (HS_DIV und N1) wird der Ausgang für einige Millisekunden hörbar unterbrochen.

Im Datenblatt des Si570 [4] ist unter Ziffer 3.1 jedoch beschrieben, dass bei kleinen Frequenz­änderungen (+/- 3.500 ppm der aktuellen Ausgangsfrequenz) der DCO nur über ein im Verhält­nis der Frequenzänderung angepasstes RFREQ ohne Unterbrechen des Ausgangs neu pro­grammiert werden kann. Das verhindert das Knacken bei der Abstimmung ("smooth tuning"). Die Erweiterung des Programms von W7QJQ ließ die Geräusche tatsächlich verstummen - wesentliche Voraussetzung für den zu projektierenden VFO und Ermunterung, weiter zu machen.

Der Si570 ist in drei Versionen zu haben, z.B. [6],: CMOS bis 160 MHz, LVDS bis 215 MHz und VPECL bis 810 MHz. Im vorliegenden Fall hätte die CMOS-Version gereicht, es wurde jedoch dem LVDS wegen des besseren Phasenrauschens [4, 10] der Vorzug gegeben. Erkauft wird dies durch eine zusätzliche Anpassung des symmetrischen Gegentaktausgangs, hier durch einen einfachen Balun-Transformator mit einem BN 43-2402. Die damit erzielte unsymme­trische Ausgangsspannung von ca. 0,8 Vss reicht aus, den vorhandenen H-Mode-Mischer mit einem 74AC86 am Eingang auszusteuern. Für andere Mischer, z.B. IQ, kann der VFO wahl­weise eine vervielfachte Frequenz erzeugen (Faktoren 2, 4, 8), soweit dies der Frequenz­bereich zulässt, ggf. mit einer zusätzlichen Pegelanpassung.

LO Schaltplan

Abb. 2.2.2: LO-Schaltung

Die Schaltung

Tom Baier und Norbert Graubner kommen jeweils mit einem achtbeinigen ATtiny aus, der "nur" USB zu emulieren und die I2C-Steuerung des Si570 abzuwickeln hat. Hier sollten aber alle Funktionen eines eigenständig abstimmbaren VFO ohne PC und USB einschließlich Anzeige realisiert werden. Weiterhin sollte BASCOM-AVR zum Einsatz kommen. Die ersten Tests er­folgten mit einem ATmega16, der sich im weiteren Verlauf aber als zu klein erwies, so dass nun ein ATmega32 verwendet wird. BASCOM erzeugt einen ziemlichen Monstercode, das aber mit überschaubarem Programmieraufwand. Ist halt die Frage, wo man spart.

Weitere Maßgabe war, dass die Platine das Format des 16x2-LCD haben sollte (80x36mm, DisplayTech 162, z.B. [7] oder Äquivalent [8], - also Realisierung komplett in SMD. Heraus­gekommen ist ein Platinenmaß 80x38 mm.

Die I2C-Ansteuerung des Si570 erfolgt per BASCOM-Software-Emulation über PC2 und PC3. Vorteil dieser gegenüber der Hardware-Ansteuerung per SDA/SCL über PC0/PC1 ist die freie Auswahl der Ports, was sich beim Platinen-Layout als sehr praktisch erwies. SDA/SCL werden darüber hinaus zur Steuerung der Bandfiltergruppe und des PA-Tiefpasses über je einen PCF8574A über Steckkontakte herausgeführt (nicht gezeigt, da im Bandfilter- bzw. Tiefpassmodul). Die I2C-Doppelleitungen zum Band- und Tiefpassfilter sollten möglichst kurz sein, um ein Verschleifen der Signalflanken zu minimieren, im Mustergerät ca. 20 cm. Die Auskopplung des VFO-Signals erfolgt über einen BN43-2402. Für Ungeübte ist das Wickelschema in Abb. 2.2.3 schematisch ge­zeigt.

Trafo Wickelschema

Abb. 2.2.3: Doppelloch-Übertrager (schematisch)

An PC4/5/6/7 werden die TRX-Steuersignale FM,  PTT(RX/TX), SSB/CW und LSB/USB für SSB verarbeitet. Die Signale dienen gleichzeitig zur Korrektur der Frequenzanzeige entsprechend den BFO-Ablagen für CW, LSB und USB und FM. Der Schalteingang FM an PC4 ist gegenüber der ursprünglich im Amateurfunkheft 2011 veröffentlichten Fassung mit der Version 2.00 hinzugekommen. Für diejenigen, die sich schon an der ursprünglichen Version V1.00 versucht haben, sind im Download die Unterschiede angegeben.

Seitenbänder USB und LSB

Abb. 2.2.4: Frequenzverhältnisse bei LSB und USB

An den Ports PC0/1 und PD2 bis PD7 liegen der Encoder und drei Taster (up, down und store) zur Steuerung des VFO. Alle Taster sind über Dioden an INT0 (PD2) gekoppelt und erzeugen damit bei Betätigung einen externen Interrupt. Entsprechend liegt Encoder A am zweiten ex­ternen Interrupt INT1 (PD3). Mit der Firmware ab V2.01 vom 22.12.2011 wird der Encoder per Timer0-Overflow statt des Hardware-Interrupt abgefragt. Die Dioden D1 bis D4 auf dem Frontpanelboard können ab der Firmware V2.01 entfallen. Sie stören aber auch nicht, wenn sie noch vorhanden sind. Da ein OM Probleme mit seinem STEC11B13-Encoder von reichelt.de hatte, wurde die Encoder-Routine angepasst, neue Version V3.01. Details sind im Teil "Software" beschrieben.

Update 07.12.2013:
Ab Firmware-Version 3.03 (siehe unten) wird der Hardware-Interrupt über die Dioden nach INT0 (PD.2) nicht mehr verwendet. Die Dioden D1 bis D4 im Frontpanel können entfallen. Entfernen der Dioden in vorhandenen Aufbauten ist nicht erforderlich.

Update 12.10.2014:
Ab den Firmware-Versionen 2.02 und 3.05 wird der Kontakt "Spare", Pin 20 (Abb. 2.2.2), auf dem Frontpanelboard dazu verwendet, verschiedene Encoder mit einem "DoubleStep" = 0 oder 1 abzufragen. Für Encoder, die DoubleStep = 0 brauchen, ist eine Lötbrücke zwischen Pin 20 und GND an der Stiftleiste auf dem Frontpanelboard herzustellen. Der STEC11B13-Encoder von reichelt.de geht mit DoubleStep = 0.

RXD und TXD (PD0, PD1) sind an Steckkontakten herausgeführt, falls eine serielle Schnittstelle gebraucht wird. Die ADC-Ports ADC0 bis ADC7 (PA0 bis PA7) sind ebenfalls zusammen mit AVCC und GND auf Steckkontakte gelegt, ggf. für Analogmessungen wie S-Meter und SWR.

Das LCD wird unmittelbar auf eine Buchsenleiste aufgesteckt. Die Inline-Programmierung kann über den sechspoligen ISP-Stecker erfolgen.

Die Spannungsversorgung übernehmen ein 7805 (5V) und ein LM1117 (3,3V) für den Si570. Der Gesamtstromverbrauch liegt im Mustergerät bei ca. 125 mA. Bei einer Versorgung mit 12V wird der 7805 recht warm. Abhilfe kann ein außen angebrachter Widerstand von ca. 22 Ohm schaffen. Ggf. ist R13 (470R) für die LCD-Hintergrundbeleuchtung etwas zu verkleinern. Im Mustergerät wurde ein schmales Kupferblech auf die Kühlfahne des 7805 geschraubt (siehe Abb. 2.2.1).

Die Software

Updates:
V2.01 (22.12.2011):
Der Hardware-Interrupt des Encoders über INT1 ist wegen des "hakeligen" Verhaltens ersetzt durch einen Timer0-Interrupt.

V2.02 (12.10.2014):
Totgeglaubte leben länger. Peter, DJ9IC, ist es zu verdanken, dass einige grundlegende Probleme mit verschiedenen Drehencodern untersucht wurden. Also wurde die V2.01 für mehr als 8 Bandfilter reanimiert.
Je nach Drehencoder können verschiedene Schaltzwischenstufen zwischen zwei Rastungen auftreten. Siehe auch Software - Drehencoder mit BASCOM. Eine entsprechende Parametrierung mit "Double Step" = 0 oder 1 erfolgt an Port C1 des ATmega (Pin 20 an der Steckerleiste des Frontpanelboards). Einzelheiten sind im Quellcode beschrieben. Danke, Peter.
Es sind alle Updates der Versionen 3.01 bis 3.04 nachgezogen. Beibehalten wurden die zwei Bandfilterbänke, mit denen max. 16 Filter geschaltet werden können. I2C-Adressen: 70 und 72 hex. Das in V3.00 eingeführte PA-Tiefpassfilter ist hier weiterhin nicht berücksichtigt.

V3.00 (01.02.2012):
Mit der Version 3.00 wurde die I2C-Steuerung des PA-Tiefpassfilters eingebunden. Beschreibung im TX-Teil. Die I2C-Adresse ist 74 hex.
Da im aktuellen Ausbau nur 8 Bandfilter (160, 80, 60, 40, 30, 20, 17+15 und 12+10m) und 6 Tiefpassfilter (160, 80, 60+40, 30+20, 17+15 und 12+10m) mit jeweils einem PCF8574-Controller verwendet werden, wurde auf die Bänder 6 und 2m verzichtet. Die Firmware und die unten beschriebene Bedienung sind ansonsten unverändert. Die Firmware steht wieder in den Versionen a und b (Platinen-Layouts 10/2010 bzw. 03/2011) im Download zur Verfügung.

V3.01 (22.03.2012):
Die Encoder-Routine wurde mit der Variablen "DoubleStep" tauglich gemacht für den ALPS STEC11B13 (reichelt.de) mit DoubleStep = 0 und den ALPS EC11E15244B2 (seinerzeit pollin.de) mit DoubleStep = 1. Details dazu unter "Software". Ferner wird der Timer0 während der Displayanzeigen der Encoderwerte angehalten. Die Firmware steht wieder in den Versionen a und b (Platinen-Layouts 10/2010 bzw. 03/2011) im Download zur Verfügung.

Ergänzung vom 01.11.2012: Reiner, DL4SXS, hatte Probleme mit der für den ALPS STEC11B13 (Reichelt) vorgesehenen Firmware Si570_LO_3.01a_EC11E13. Der ALPS STEC11B13 funktioniert besser mit der Firmware Si570_LO_3.01a_EC11E15. Beide sind identisch bis auf die Wertzuweisung für DoubleStep. Si570_LO_3.01a_EC11E13 benutzt DoubleStep = 0, Si570_LO_3.01a_EC11E15 hingegen DoubleStep =1. Danke, Reiner.

V3.02 (24.11.2013):
Immer verschoben, nun doch mal realisiert. Die PCF8574 haben im Zusammenspiel mit den ULN2803 die unangenehme Eigenschaft, nach dem Einschalten erst einmal alle Ausgänge auf high zu legen. Damit schalten die ULN2803 alle Relais in der Bandfilter- und Tiefpassfilter-Baugruppe gleichzeitig ein. Das zieht eine Menge Strom aus dem Netzteil. Dieser Zustand ändert sich erst mit dem ersten Schaltbefehl über I2C. Daher werden nun diese Schaltbefehle gleich nach dem Einschalten, also früher als vorher ausgeführt.
Die Standardeinstellung für den Encoder ist "Double Step" = 1.

V3.03 (07.12.2013):
Nun war ich doch das bisweilen nervige Prellen der Taster leid. Statt über den Hardware-Interrupt, den die Taster über die Dioden an INT0 auslösen, wurde nun auf die "Dannegger"-Methode mit dem Timer0-Interrupt (siehe Software - Taster mit BASCOM) umgestellt. An vorhandenen Schaltungen muss nichts verändert werden.

V3.04 (10.10.2014):
Reinhard, DL4DRG, berichtete von einem Problem bei der I2C-Ansteuerung des Si570 in der Firmware V3.03b. Problem gefixt. Danke, Reinhard.

Da immer wieder Fragen zum Einstellen der Fuse-Bits kommen, ist ein Screenshot der Einstellung mit AVR Studio beigefügt.

V3.05 (12.10.2014)
Je nach Drehencoder können verschiedene Schaltzwischenstufen zwischen zwei Rastungen auftreten. Siehe auch Software - Drehencoder mit BASCOM. Eine entsprechende Parametrierung mit "Double Step" = 0 oder 1 erfolgt an Port C1 des ATmega (Pin 20 an der Steckerleiste des Frontpanelboards). Einzelheiten sind im Quellcode beschrieben.
Für den vorgeschlagenen ALPS STEC11B13 (Reichelt) und ggf. weitere ist Double Step = 0 vorgesehen, Lötbrücke zwischen Pin 20 und GND an der Steckerleiste des Frontpanelboards, siehe Abb. 2.2.2.
Für andere, die damit nicht funktionieren, Double Step = 1, keine weitere Aktion erforderlich.

V3.10 (19.09.2016)
Mit Erweiterung des Antennentuners 2016 ist ein ATU-TRX Com-Modul zur Übermittlung der TRX-Frequenz an den ATU hinzugekommen. Beschreibung hier.
Der LO überträgt im 1/2 Sekundentakt die aktuelle Frequenz über I2C an dieses Modul. Die Aktivierung erfolgt mit einem Jumper auf der bislang unbenutzen ADC-Stiftleiste von Pin PA.0 nach GND. Sonstige Funktion unverändert.

Die im Download eingestellte Software ist für beide Schaltungs- und Platinenversionen, 1.00 (Amateurfunkheft 2011) bzw. 2.00 (hier gezeigt), mit den Versionsindizes "a" (V1.00) und "b" (V2.00) verfügbar, jeweils im Format .bas und .hex. Beide Versionen sind im Einsatz.

Programmiert wurde in BASCOM-AVR, Quelle und Hex im Anhang. Der Quelltext ist ausführlich kommentiert. Die Software ist frei für den privaten Gebrauch. Folgende Funktionen sind reali­siert, wobei zwei Menüebenen (Normalbetrieb bzw. Einstellungen) gewählt wurden:

Menüebene Funktion
  Normalbetrieb
1.1 Band- und Frequenzeinstellung mit dem Encoder
1.2 Abstimmschrittweite (10/100 Hz, 1, 10, 100 kHz)
  EEPROM-Daten
2.1 SSB-Filter, ZF-Mittenfrequenz
2.2 BFO-Ablage für LSB relativ zur SSB-ZF- Mittenfrequenz
2.3 BFO-Ablage für USB relativ zur SSB-ZF- Mittenfrequenz
2.4 CW-Filter, ZF-Mittenfrequenz
2.5 BFO-Ablage für CW relativ zur CW-ZF- Mittenfrequenz
2.6 FM-Filter, ZF-Mittenfrequenz
2.7 Mischer-Teilerfaktor (1, 2, 4, 8)
2.8 I2C-Adresse des Si570
2.9 Kalibrieren des Si570-Quarzes gegen Normal auf 10 MHz
2.10 Frequenzbänder und Bandfilter 160-80-60-40-30-20-17-15-12-10 m

Die VFO-Frequenz (immer oberhalb der TRX-Frequenz) ist
{TRX-Frequenz + ZF-Mittenfrequenz +/- CW-/SSB-BFO-Ablage} * Mischer-Teilerfaktor.
Bei CW im TX-Betrieb und bei FM keine BFO-Ablage.

Alle Einstellungsdaten und zusätzlich die Bandgrenzen für die Bänder 160, 80, 60, 40, 30, 20, 17, 15, 12 und 10 Meter werden im EEPROM gespeichert. Die EEPROM-Daten sind in einer Konfigurationsdatei festgelegt (...Config.bas), die beim Kompilieren per Include in den Code eingefügt wird. Sie können bis auf die Bandgrenzen unter den o.a. Menüpunkten 2.1 bis 2.10 individuell angepasst werden.

Wurde der Controller neu gebrannt, wird mit dem Brennen zunächst das EEPROM mit den Daten aus der Konfigurationsdatei beschrieben. Die EEPROM-Speicheranordnung ist in der Excel-Mappe (im Anhang) aufgeführt. Das Beschreiben des EEPROMs kann jederzeit wieder­holt werden, wenn beim Einschalten die Store-Taste so lange gedrückt wird, bis die Anzeige "Init EEPROM" erscheint. Gegebenenfalls vorher in Menüebene 2 (siehe unten) vorgenommene Anpassungen werden überschrieben. Wer über eine BASCOM Voll-Lizenz verfügt, sollte daher Daten seiner Konfiguration in der Konfigurationsdatei anpassen und neu kompilieren.

Wenn die im EEPROM gespeicherten Daten mit dem Brennen eines Updates erhalten bleiben sollen, ist das Fuse-Bit EESAVE zu setzen (Haken in ATMEL Studio).

Mit dem Einschalten werden die EEPROM-Daten eingelesen.

Si570 LO Vx.xx Startmeldung mit Versionnummer
Die angeschlossenen I2C-Slaves
(Si570, 2 PCF8574A, Band- und Tiefpassfilter) werden abgefragt
I2C Si570 is OK

Falls " I2C Si570 NOT OK" angezeigt wird, stimmt wahrscheinlich die Adresse des Si570 nicht. Der VFO gibt in diesem Falle eine werkseingestellte Frequenz aus. Für den verwendeten Si570 ist die Adresse mit hex 55 vorbesetzt, wie 2010 von Funkamateur.de bezogen (neuer­dings bei funkamateur.de mit Adresse hex 50, steht auf der Rechnung, z.B. "50H" oder "55H"). Korrektur in Menüebene 2.8 (siehe unten), an­schließend Neustart.

Bei Fehlfunktonen der Controller der Band-/Tiefpassfilter wird dies in der zweiten Displayzeile angezeigt: "I2C BPF NOT OK" (Bandfilter) bzw. "I2C LPF NOT OK" (Tiefpassfilter).

Die I2C-Adressen der beiden PCF8574A sind fest programmiert. Der PCF8574A für die Bandfilter hat die Adresse 0111.000.0 = 70 hex ("000" = A2=A1=A0=0, an GND), der für die Tiefpassfilter hat die Adresse 0111.010.0 = 74 hex ("010" = A2=A0=0 an GND, A1=1 (+5V). A0, A1 und A2 sind die Pins 1 bis 3 am PCF8574A (DIL-16 und SOL-16) zum Setzen der I2C-Adresse. Die nunmehr nicht genutzte Adresse 72 hex ist ein Überbleibsel aus der Ursprungsversion mit zwei Bandfilterbänken.

Normalbetrieb

Im Normalbetrieb werden die Bänder und die Frequenz eingestellt.

  • Bänder:  mit den Up- / Down-Tasten
  • Frequenz: durch Drehen am Encoder
  • Frequenzschrittweite: Druck auf den Encoder (Menüebene 1.2)

Menüebene 1.1, Frequenzeinstellung

160m TX SSB LSB Eingestellt: 160m-Band, Senden SSB in LSB
TX-Frequenz 1,810 MHz. "<": Wegen LSB
wird die untere Bandgrenze unterschritten,
analog ">" für die obere Bandgrenze bei USB
1,810,000 Hz    <

Menüebene 1.2, Abstimmschrittweite, von 1.1 mit Druck auf den Encoder-Taster

Set freq. step              Einstellen der Abstimmschrittweite (10, 100 Hz, 1, 10, 100 kHz)
in diesen Stufen mit dem Encoder, hier 1 kHz.
Druck auf den Encodertaster: zurück zu 1.1
Step: 001,000 Hz

In der Menüebene 1.1 können mit den up-/down-Tastern die Amateurbänder ausgewählt werden. Die Frequenz wird zunächst jeweils auf den Bandanfang eingestellt. Die Frequenz­einstellungen werden je Band gespeichert, solange die Versorgungsspannung anliegt. Beim Bandwechsel kehrt der VFO somit zu der vorher eingestellten Frequenz zurück. Im Sende­betrieb (Anschluss PTT auf high) sind die Bandwahl und die Frequenzeinstellung gesperrt.

Auf ein automatisiertes Speichern der letzten Einstellung mit dem Abschalten wurde verzichtet, da hierfür eine zusätzliche Spannungsüberwachung und –pufferung erforderlich wäre, um dem AVR für einige 10 msec Zeit zu geben, das EEPROM zu beschreiben. Ein ständiges Speichern im laufenden Betrieb verbietet sich ohnehin, da der Speicherzyklus des AVR mit 100.000 hoch erscheint, aber doch in absehbarer Zeit erreicht würde. Dann wäre das EEPROM hin.

Mit dem Einschalten und mit jedem Bandwechsel wird aus der aktuellen LO-Frequenz der +/- 3.500 ppm-Bereich berechnet, in dem Smooth Tuning möglich ist. Innerhalb dieses Bereiches kann ohne Störgeräusche abgestimmt werden. Das sind bei einer ZF von 9 MHz im 160 m-Band ca. 38 kHz und im 10 m-Band immerhin 130 kHz. Wird beim "Übers-Band-Drehen" der besagte Bereich verlassen, muss der Si570 mit komplett neuen Daten versorgt werden, was dieser mit einem "Klick" quittiert. Danach ist wieder Ruhe im Smooth Tuning-Bereich. Das vereinzelte Klicken beim schnellen Abstimmen fällt somit kaum auf und geht im Rauschen unter.

Der mit der Version 2.01 eingeführte Timer0-Interrupt für die Abfrage der Encoderanschlüsse A und B konnte die vormalige "hakelige"  Reaktion auf Drehungen beseitigen. Drei verschiedene ALPS-Encoder wurden erfolgreich getestet: ALPS EC11E15244BY von pollin.de (aktuell nicht mehr im Programm),  ALPS STEC11B13 und STEC12E08 von reichelt.de

Einstellung der EEPROM-Daten

Für Besitzer einer BASCOM-Lizenz wird es komfortabler sein, die EEPROM-Daten ent­sprechend der individuellen TRX-Konfiguration vor dem Kompilieren in der Konfigurationsdatei ...Config.bas anzupassen. Die Konfigurationsdatei ist ausreichend kommentiert.

Alternativ ist in der hier beschriebenen Menüebene 2 die Möglichkeit gegeben, Daten im Dialog anzupassen. Die Menüebene 2 wird mit langem Druck auf die Store-Taste geöffnet. In die jeweils aufeinander folgenden Menüpunkte gelangt man durch kurzes Drücken auf die Store-Taste. Die Menüebene 2 muss komplett durchgetaktet werden. Nach Punkt 2.10 gelangt man wieder in Menüebene 1.1.

Da selbstgebaute Ladder-Filter für SSB, CW oder FM kaum auf die gleiche Mittenfrequenz zu trimmen sind, können diese individuell festgelegt werden. Dem VFO ist es ein Leichtes, die Frequenzen zu korrigieren.

Menüebene 2.1, SSB ZF-Mittenfrequenz

Set SSB IF freq. Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 100 kHz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Abspeichern: Langer Druck auf der Store-Taster, Quittung "S"
9,000,000 Hz    S

Menüebene 2.2, BFO-Ablage für SSB/LSB

Set LSB offset Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 1 kHz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Einstellen +/- mit Encoder. Abspeichern: Wie 2.1
-  1,500 Hz    S

Menüebene 2.3, BFO-Ablage für SSB/USB

Set USB offset Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 1 kHz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Einstellen +/- mit Encoder. Abspeichern: Wie 2.1
+  1,500 Hz    S

Menüebene 2.4, CW ZF-Mittenfrequenz

Set CW IF freq. Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 100 kHz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Abspeichern: Wie 2.1
9,000,000 Hz    S

Menüebene 2.5, BFO-Ablage für CW

Set  CW offset Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 100 Hz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Einstellen +/- mit Encoder. Abspeichern: Wie 2.1
+  0,800 Hz    S

Menüebene 2.6, FM ZF-Mittenfrequenz

Set FM IF freq. Wahl der Stelle mit up-/down-Taster, angezeigt mit Cursor,
hier 100 kHz-Stelle. Einstellen der Ziffer (0...9) mit Encoder.
Abspeichern: Wie 2.1
9,000,000 Hz    S

Menüebene 2.7, Mischer-Teilerfaktor

Set mix divider Einstellen in Stufen(1, 2, 4, 8) mit Encoder, hier 1.
Um den Mischer-Teilerfaktor wird die LO-Frequenz vervielfacht.
Abspeichern: Wie 2.1
1                      S

Menüebene 2.8, Si570 Adresse

Set Si570 addr. Einstellen der Adress-Fabrikeinstellung des Si570 mit Encoder
in Einer-Schritten (hier hex 55 wie von Funkamateur bezogen)
Abspeichern: Wie 2.1
Dec 85 hex 55  S

Menüebene 2.9a, Si570 kalibrieren, Quarzfrequenz einstellen

Calibrate Si570 Kalibrieren der Quarzfrequenz des Si570 mit Encoder
(hier 114,320760 MHz) auf die LO-Frequenz 10 MHz.
Abspeichern: Wie 2.1
114,320,760   S

Menüebene 2.9b, Si570 kalibrieren, Schrittweite festlegen nach Druck auf den Encoder

Set freq. step     

Einstellen der Abstimmschrittweite (10, 100 Hz, 1, 10, 100 kHz)
in diesen Stufen mit dem Encoder, hier 1 kHz.
Druck auf den Encodertaster: zurück zu 2.9a.

Step: 001,000 Hz

In der Menüebene 2.9 wird die zur Berechnung der VFO-Frequenz zu verwendende Quarz­frequenz der tatsächlichen Quarzfrequenz des Si570 so angepasst, dass die VFO-Frequenz genau 10 MHz ist. Die Quarzfrequenz ist laut Datenblatt spezifiziert mit 144,285 MHz ± 2.000 ppm (=114,057 ... 114,513 MHz). VFO-Frequenz = 10 MHz: Einstellung z.B. auf Schwebungs­null in einem zweiten RX gegen WWV (10 MHz) oder mit einem genauen Frequenzzähler vor (!) Einbau in den TRX und Anschluss an den Mischer. Zur WWV-Methode reicht es, das VFO-Signal mit einem RG174-Kabel in die Nähe des RX-Antennenkabels zu bringen und über den Abstand zu ihm die Stärke der Einkopplung zu bestimmen, so dass der Schwebungston hörbar wird. Ist ein musikalisches Geduldsspiel, zunächst die Tonhöhen von WWV und VFO mit größerer Schrittweite gleich zu ziehen und dann mit 10 Hz Schrittweite auf Schwebungsnull fein zu justieren. Eine Schwebung von <1 Hz ist gut zu hören. Mit einem kalibrierten Frequenzzähler geht es einfacher.

Die Kalibrierung sollte erst nach hinreichend langer Aufwärmzeit (ca. 15 bis 20 Minuten) er­folgen. Überprüfungen gegen WWV an Folgetagen ergaben nur geringe Abweichungen von einigen wenigen Hz.

Menüebene 2.10, Bänder und Bandfilter
Es können je Band eingestellt werden: Benutzt (0/1) und fortlaufende Bandfilternummer

160m used=1  1 Wechsel der Zeilen 1 / 2 mit Druck auf den Encoder (Cursor springt).
"used" mit Drehen am Encoder, Wechsel von 0 und 1, 0=unbenutzt.
"BPFnum" = fortlaufende Filter-Nr. mit Drehen am Encoder.
160m BPFnum  1

Mit dem Eintritt in Menüebene 2.10 werden alle 10 Bänder aus dem EEPROM gelesen und nacheinander angeboten. Wechsel zum nächsten Band mit kurzem Druck auf die Store-Taste.

Entsprechend Ihrer TRX-Konfiguration stellen Sie ein:

  • "used" = 1, falls dieses Band genutzt werden soll, sonst = 0.
     
  • "BPFnum" fortlaufend ab 1 für die benutzten Bänder.
    Nicht benutzte Bänder sind bei der fortlaufenden Zählung nicht zu berücksichtigen.
    z.B. 160, 80 und 40m werden benutzt, 60m ("dazwischen") wird nicht benutzt.
    Die BFFnum müssen dann sein: 160m: 1, 80m: 2, 60m: x, 40m: 3.
    "x" für 60m ist beliebig, z.B. 0. Da in diesem Fall 60m als nicht benutzt gekennzeichnet ist, wird dieses Band für den Normalbetrieb nicht eingelesen.
    In der Reihenfolge der BPFnum werden die Bandfilter geschaltet.
    Falls 1 Bandfilter für 2 benachbarte Bänder eingesetzt werden soll, z.B. 17+15m, bekommen diese 2 Bänder die gleiche BPFnum, z.B. 20m: 6, 17m: 7, 15m: 7, ...
     
  • Wenn Sie sicher sind, das Band richtig eingestellt zu haben, speichern Sie diese Einstellung durch langen Druck auf die Store-Taste, Quittung "S" wie oben.

Wenn alle 10 Bänder durchgetaktet sind, wird das EEPROM erneut gelesen, wobei nur die benutzten Bänder berücksichtigt werden. Anschließend wird Menüebene 1.1 angezeigt.

Der Flash-Speicher des ATmega32 ist derzeit mit 68% belegt. Es ist also noch Platz für Erweiterungen der Software, z.B. für ein S-Meter und eine SWR-Anzeige mit Hilfe der aktuell ungenutzten ADC-Ports und einem vierzeiligen LCD.

Auf einen möglichen fatalen Fehler bei der Berechnung der VFO-Frequenz sein hier noch hin­gewiesen, der allerdings nur in der Testphase infolge von Programmierfehlern aufgetreten ist. Falls in der Sub CalcConstant kein gültiger Wert für die Teiler N1 und HSDIV gefunden wird, erfolgt die Meldung "No valid freq!". Anschließend beendet sich das Programm. Falls dies auf einen zufälligen Fehler zurückzuführen ist, hilft Aus- und wieder Einschalten.

Der Aufbau

Mit den Abmessungen des LCD ergaben sich die Randbedingungen an die Platinengröße. Es geht recht eng zu, insbesondere rund um den ATmega32 in der SMD-Ausführung. Für einen VCC-Abblockkondensator musste aus Platzgründen die Bauform 0603 gewählt werden, an­sonsten genügen die Größen 0805, vereinzelt auch 1206, siehe Stückliste in der Excel-Mappe. Im Mustergerät wurde der 0,1 uF/SMD 0603 nicht bestückt. Diese Kondensatoren an den an drei Seiten herausgeführten VCC-Pins (5, 17 und 38) haben die Aufgabe, die Betriebsspannung bei den digitalen Schaltvorgängen zu puffern. Dem einseitigen Layout sind einige unvermeidbare Brücken geschuldet, davon drei bedrahtet, der Rest mit 0R-Widerständen im Format 1206. Die Leiterbahnen sind relativ breit, um sie noch mit Lasertonertransfer per 80 µm Laminierfolie auf die Platine zu bringen.

Das Einlöten des SMD-ATmega 32 erfordert eine ruhige Hand, eine Lupenbrille und eine feine Lötspitze. Pin1 (Punktmarkierung) ist links oben, ebenso beim Si570. Sollten doch mal Löt­brücken entstanden sein, hilft 1 mm Entlötlitze. Zum Schluss unbedingt mit einer Lupe kontrol­lieren. Zum Fixieren der SMD-Bauteile hat sich eine vorne angespitzte Holz-Wäscheklammer bewährt.

Alle Bauelemente werden auf der Leiterseite bestückt. Die Steckkontakte werden von der Rückseite durch die Bohrungen gesteckt und auf der Leiterseite verlötet. Die Stifte lassen sich auf der (kürzeren) Lötseite mit einer spitzen Zange bündig in die Kunststofffassung hinein drücken. Im Schaltbild und auf der Platine ist die Orientierung der Steckkontakte jeweils mit einem Punkt gekennzeichnet. Für die beiden Drosseln wurden vorhandene bedrahtete mit Ringkern im Raster 5 mm verwendet.

Vor dem Einlöten des AVR und des Si570 sollten die Versorgungsspannungen (AVR: +5V und Si570: +3,3V) geprüft werden.

An die Rückseite des LCD wird eine 16-polige Steckerleiste gelötet, als Gegenpart dient auf der VFO-Platine eine entsprechende Buchsenleiste, von der Platinenrückseite her gesteckt. Beide Platinen schließen oben bündig ab, die VFO-Platine ist unten um 2 mm breiter. Beide werden mit 2,5 mm-Schrauben zu einer kompakten Einheit ver­schraubt und finden in einem Abschirmgehäuse Platz, vorne mit Ausbruch für das Display und vier aufgelöteten Gewinde-Distanzbolzen. Im Mustergerät sind alle Anschlüsse auf eine Buchsenleiste 2x17 auf einer kleinen Platine nach außen gelegt mit einem weiteren Ausbruch im Abschirmgehäuse (siehe Abb. 2.2.1). Wahlweise können die Anschlüsse mit 0805-SMD-Konden­satoren gegen Masse abgeblockt werden, SDA und SCL z.B. aber bitte nicht!

Die Bedienelemente (Encoder und Taster) sitzen auf einer separaten Platine. Für die Encoder-Anschlüsse A und B sind vier Lötpads zur Herstellung von Drahtbrücken vorgesehen, um die Drehrichtung festzulegen. Im Mustergerät sind die Anschlüsse gekreuzt (siehe Bild 1). Die Steckerleiste wird auch hier von der Rückseite durch die Bohrungen gesteckt und auf der Leiterseite verlötet. Die Rastung des Encoders ermöglicht eine feinfühlige Abstimmung, so dass der mit ca. 30 mm gewählte Durchmesser des Abstimmknopfes völlig ausreichend ist. Für größere Abstimmknöpfe müsste die Platine entsprechend angepasst werden.

LO Platinen

Abb. 2.2.5: LO- und Frontpanel-Platinen

Alle Platinen einschließlich Bestückungsplänen sind im Anhang enthalten. eine Stückliste ist in der Excel-Mappe in 'si570_lo_firmware_v2.01.zip' zu finden. Die Bauteile bis auf den Si570 und den LM1117 DT-3.3 [6] sind z.B. bei [7] erhältlich.

Das Brennen der Software erfolgt über die sechspolige ISP-Steckverbindung. Dabei ist die Polung zu beachten: Der Punkt (im Schaltbild und auf der Platine) markiert MISO. Eine kleine Adapterplatine ATMEL ISP10 auf ISP6 ist im Anhang zu finden.

Das Programmieren der Fuse Bits mit AVR Studio sowie das Brennen des .hex-Files mit AVR Studio oder BASCOM sind in "Si570_LO Information PCB V200 Firmware V3xx" im Download beschrieben. Die Parametrierung von BASCOM für den verwendeten "USBasp"-Brenner von Fisch und Fishl [12] ist in der Excel-Mappe angegeben, ebenso das Batch-File zur Steuerung von AVRDUDE [13].

Referenzen

[1]   T. Baier, DG8SAQ, Funkamateur 6/2008, http://dg8saq.darc.de/SI570/index.shtml
[2]   N. Graubner, DL1SNG, Funkamateur 9/2008
[3]   M. Wöste, DL1DMW, http://www.amateurfunkbasteln.de
[4]   Silicon Labs, http://www.silabs.com/pages/search.aspx?k=si570&searchtypeid=1
[5]   C. Hirt, http://home.pages.at/chirt/Projects/ProgXO/ProgXO.htm
[6]   www.funkamateur.de
[7]   www.reichelt.de
[8]   www.pollin.de
[9]   Sid Knox, W7QJQ, "Si570.txt", im Internet aufgestöbert, Adresse nicht mehr bekannt
[10] http://www.cliftonlaboratories.com/CannedOscNoise.htm
[11] www.lancos.com/prog.html
[12] http://www.fundf.net/usbasp/
[13] http://savannah.nongnu.org/projects/avrdude
[14] Si570 (excellent!): http://cbjohn.com/aa0zz/PPLL/Article.pdf