QRP-Zähler

DH1AAD ,Ingo Gerlach , 20.12.2002, e-Mail: Ingo Gerlach


1.0 Info

Hier nun eine Kurzbeschreibung zu dem im Funkamateur 09 /2003 Frequenzzähler mit einstellbarem Offset. Genauere Infos bitte dem Heft entnehmen.
Ältere Hefte können dort im Funkamateur-Shop jederzeit zu günstigen Konditionen nachbestellt werden.

PC180004.JPG PC180006.JPG PC180007.JPG PC180012.JPG
PC180015.JPG PC180016.JPG PC180021.JPG

1.1 Schaltungsbeschreibung

Technische Daten

Frequenzbereich:			1 KHz bis ca. 55 MHz
Eingangsimpedanz:			ca. 1 M Ohm
Eingangsempfindlichkeit:	ca. 50 - 250 mV 
Anzeige:					2x16 Stelliges LC-Display
Controller:					Atmel 90S8515 [1]
Stromversorgung:			9-15 V, 25mA (ohne Beleuchtung) , 60mA mit Beleuchtung
Einstellbare Offsets:		+/- 455KHz, +/- 4.00 MHz, +/- 9.00 MHz, +/- 10.7 MHz
							(andere möglich, durch Anpassung der Software)

Um den VFO nur geringfügig zu belasten, ist der Eingang mit ca. 1 M Ohm recht hochohmig ausgelegt. Um die weitere Schaltung vor allzu hohen Eingangspannungen zu schützen , befinden sich die antiparalell geschalteten Dioden D1,D2 vor dem Impedanzwandler T1 (J310).
Die nachfolgenden NPN Transistoren verstärken das Signal kräftig und der im Anschluss folgende Schmitt-Trigger 74HC14 formt daraus ein brauchbares Rechtecksignal.
Dieses Signal gelangt nun an den ersten Zähler (Pin11/CLK , IC3). Nach 256 Impulsen, erzeugt dieser einen Übertrag auf den 2. Zähler (von Pin9,RCO, IC3 nach Pin11/CLK, IC6).
Hat auch dieser Zähler 256 Impulse gezählt, wird der nun folgende Übertrag an den T0 Pin vom µC ausgegeben.
Der externe Timer Interrupt 0 , ist Softwareseitig so eingestellt, das nach 256 Impulsen ein Interrupt ausgelöst wird.
Tritt ein Interrupt auf, wird zu den bereits vorliegendem Wert eine "1" hinzu addiert und im Speicher abgelegt. Bevor also µberhaupt ein Takt den Prozessor erreicht, wurde die Frequenz bereits durch 256*256 = 65536 geteilt. Bei Fin von 50 MHz liegen am Eingang nur ca. 763 Hz an. Kein Problem also... Die gesamte Zählersteuerung übernimmt der Prozessor. Softwaremässig ist der Timer Interrupt 1 so programmiert, das er eine Torzeit von 1 Sekunde erzeugt. Während dieser Zeit sind die Zähler aktiv, d.h. sie "zählen". Nach Ablauf, werden die Zählerstände ausgelesen. Die Selektion erfolgt dabei über die Leitungen E0/PB3 sowie E1/PB4. Danach werden die Zähler wieder auf "0" gesetzt und die Ausgänge deaktiviert. Näheres hierzu sowie zur Berechnung der Frequenz unter "Softwarebeschreibung". Die Prozessor Beschaltung enthält keine Besonderheiten. An PortB ist neben der Zählersteuerung auch eine ISP (in system programming) Möglichkeit vorgesehen um hier später evtl. Softwareupdates einspielen zu können bzw. auch den Bastlern die Möglichkeit zu geben die keinen Brenner haben den Chip zu programmieren. Für die Programmierung des Chips wird lediglich ein einfacher Adpater benötigt. Siehe hier auch [4]. PC0-PC3 ist der Eingang für den BCD-Schalter zur Einstellung des gewünschten ZF-Offsets.

Tabelle: Programmierte Offsets

BCD-Pos	+/-		Offset

0				0 
1		-		455KHz 	
2		-		4.00 MHz
3		-		9.00 MHz
4		-		10.7 MHz
5                               0
6		+		455 KHz
7		+		4.00 MHz
8		+		9.00 MHz
9		+		10.7 MHz

Dabei bedeutet "-" von der gemessenen Frequenz wird der Offset subtrahiert und "+" zu der gemessenen Frequenz wird der Offset dazu addiert. Ist ein negativer Offset eingestellt und die gemessene Frequenz niedriger als der eingestellte Offset, wird dies durch ein "*" im Display angezeigt. Der PortPin PC4, steuert, wenn er auf low liegt, das kein Offset berechnet wird. über PC5, kann die Display Beleuchtung ein bzw. ausgeschaltet werden. Geschaltet wird über T4. über den Widerstand R13, kann die Helligkeit und damit auch direkt die Stromaufnahme beeinflusst werden. Die Pins PC6/PC7 sind vorgesehen, falls ein Vorteiler :10 bzw. :64 vor den Zähler geschaltet werden soll, liegt z.B. PC7 an Masse, wird die gemessene Frequenz mit 64 multipliziert. Die Torzeit LED (D4) leuchtet immer dann, wenn nicht gemessen wird. Also in der Zeit wo die Frequenz berechnet und zur Angezeige kommt. Da diese Zeit deutlich kürzer ist als die eigentliche Torzeit, spart das auch etwas Strom. Die Versorgungsspannung wird mit IC5 / 7805 auf 5 V stabilisiert.

1.2 Software Beschreibung

Software Download FC03.ZIP

Timer ISR 0 ist so eingestellt, das er nach 256 Takten an seinem Eingang (Pin1 / PB0) ein Interrupt auslöst. Tritt dies auf, wird zu dem evtl. bereits vorhandenem Wert "1" dazu addiert. Dies ist das MSB ( Most Signifikant Byte) , also die Höchste Stelle. Wie oben im Text bereits angedeutet, bekommt der externe Pin ja erst einen Takt, wenn beide Zähler durchlaufen sind. Im Klartext bedeutet dies, bevor hier das erste mal überhaupt ein Interrupt ausgelöst wird, sind bereits 256^3 = 16.777216 Impulse eingetroffen. Natürlich nur wenn die Eingangsfrequenz >= 16.7.. MHz ist. Mit dem 16-Bit Timer 1 ist die Torzeitsteuerung realisiert. Die Zeit errechnet sich nach t = (2^16 - Preload) * T1-Teiler * CyclZeit t = (65536 - 49911) * 256 * 250nS t = 1 sec. Wobei die CycleZeit bei einer Taktfrequenz von 4.00 MHz = 250 nS beträgt. In dieser Zeit (1 sek.) , Zählen die Zähler. Nach Ablauf der 1 Sekunde, wird der Timer1 Interrupt ausgelöst. Es werden jetzt alle weiteren Interrupts sowie die Zähler gesperrt. In der Timer ISR1 Routine werden nun die Zählerstände ausgelesen , ein evtl. eingestellter Offset berechnet und die Frequenz angezeigt.

2.0 Links und Literatur


© Ingo Gerlach, DH1AAD, 28.11.2003
E-Mail bitte an:Ingo Gerlach

Counter