Neulich hatte ich mit einem IC des Typs 74LS624, das einen spannungsgesteuerten
Oszillator (VCO) enthält, experimentiert. Zu seiner Ansteuerung verwendete ich
zunächst ein Potenziometer von 10 kOhm, das ich an 5 V angeschlossen hatte, und
zur Darstellung des zeitlichen Verlaufs der Ausgangsspannung des VCO-Ics ein Oszilloskop.
Durch Verändern der Kapazität des frequenzbestimmenden
Kondensators C3 im Schaltplan lässt sich
der Frequenzbereich grob wählen, der beim Ansteuern des 74LS624 mit Spannungen
zwischen 0 und 5 V fein einstellbar ist.
Die Frequenz des Ausgangssignals konnte ich mit einer
Schaltung aus einem früheren ELO- Beitrag Retro80m.html messen und mit dem dort dargestellten Visual Basic
Programm anzeigen lassen. Der Schaltungsaufbau zur Frequenzmessung ließ sich durch
Verwendung eines Ics 74LS390 und eines Bausteins 74LS90 im Vergleich zu der
ursprünglichen etwas vereinfachen.
Warum nicht den Attiny13 aus dem Lernpaket MSR zur
Ansteuerung verwenden? Ich übertrug zuvor
von der zugehörigen CD die Datei Interface.hex. Die Ausgangsspannung seines
PWM-Ausgangs PB0 musste noch gesiebt und verstärkt werden. Die dazu
nötige Schaltung ist in einem früheren ELO-Beitrag dargestellt[3]. Die Frequenz der Eingangsspannung wird durch 1000 geteilt
und über den Ausgang QA des Bausteins 74LS90 dem für die Frequenzmessung
zuständigen Attiny13 zugeführt, der
ihren Wert bestimmt und ihn dem PC als zwei Bytes überträgt. Die Teilung durch 1000 wird in dem o. a. Visual Basic
Programm durch die Angabe kHz berücksichtigt. Nachdem die Versuche mit der Frequenzeinstellung des 74LS624
durch ein Potenziometer erfolgreich waren, überlegte ich mir, wie ich am PC in Visual Basic über einen Attiny13 die Frequenz des 74LS624 einstellen
und zusätzlich die von einem zweiten Attiny13 am Ausgang des 74LS624 gemessene
Frequenz in einem Textfenster anzeigen könnte.
Mit dem Visual Basic Programm zur Zweikanalmessung und
PWM-Ausgabe von der CD aus dem Lernpaket MSR mit dem PC [2] gelang mir dies. Mit einem angeschlossenen Oszilloskop konnte ich mich davon überzeugen, dass die
Schaltung nach meinen Erwartungen
funktionierte. Aus dem
PWM-Ausgangssignal wurde zuvor nach den Angaben im Handbuch zum o. a.
Lernpaket mit Hilfe von R1 und C1 eine Gleichspannung gewonnen, die über R2 an
den Steuereingang des 74LS624 gelangt, wie
es im ersten Schaltplan oben zu erkennen ist. Nun musste ich erreichen, dass die beiden Mikrocontroller abwechselnd an den
PC Daten übertragen können. Dafür ist ein CMOS-IC 4066 sehr gut geeignet, wie ich herausfand.
Mit der Steuerleitung RTS und einer Transistorstufe sowie
zweien der vier Analogschalter wird
dafür gesorgt, dass jeweils nur einer der beiden Attiny13 an den PC Daten
liefern kann. Beide Mikrocontroller sind dabei über jeweils 100k mit dem
Pin TXD der Platine des o. a. Lernpakets verbunden. An einen der beiden Mikrocontroller wurde zuvor die Datei
Interface.hex und an den anderen frequenz.hex übertragen. Bei RTS = 1 kann der
an E4 des 4066 angeschlossene Attiny13 Daten an den PC senden, während bei RTS=
0 der zweite der beiden Mikrocontroller über den Anschluss E2 des CMOS-Ics seine Daten überträgt. Die Transistorstufe
dient dabei als Inverter des Signals RTS.
So sieht der komplette Aufbau auf kleinen Steckboards aus,
die mit einander verbunden sind. Auf der kleinen Platine links oben im Bild
befindet sich der VCO 74LS624 sowie das IC 74LS14.
Ich konnte mit dem Programm Terminal.exe feststellen, dass meine Überlegungen hinsichtlich der abwechselnden
Steuerung der TXD-Ausgänge
der beiden Mikrocontroller über RTS richtig waren. Diese Steuerleitung
kann darin durch Anklicken einer Checkbox ein- und ausgeschaltet werden.
Anregungen dazu fand ich im Listing Interface.asm
auf der CD des Lernpaket MSR mit dem PC.
...
rjmp Anfang0
.org 0x0003
rjmp TIM0_OVF ;Timer0 Overflow
Anfang0:
sbi ddrb,TXD
Auswahl:
rcall RdCOM ;
cpi A,249 ;
brne zurueck ;
rjmp Anfang ;
zurueck: ;
rjmp Auswahl ;
Anfang:
ldi A,3 ;Start mit Vorteiler / 64
out TCCR0B,A
...
und weiter unten abgeändert
...
rjmp Auswahl ; vorher stand hier rjmp Schleife
TIM0_OVF: ;Timer Interrupt
in sicher, SREG
...
...
TIM0_OVF: ;Timer Interrupt
in sicher, SREG
ldi timer, 8 ; experimentell ermittelt
out TCNT0,timer ;250 bis Overflow
inc timer2
...
Durch Veränderung der Konstante im Befehl „ldi timer, 8“
ließ sich der Frequenzmesser „eichen“.
Welche Möglichkeiten bietet das kleine Visual Basic
Programm, von dem im Bild oben ein Screenshot dargestellt ist? Am Eingang ADC2 wird
gerade die Steuerspannung des 74LS624 angezeigt. Sein
Ausgangssignal wird über Inverterstufen des 74LS14 entkoppelt über
einen Widerstand von 10k einem
Bandfilter mit der Frequenz von 455 kHz zugeführt. Die Spannung am Eingang ADC3 wird um einen per Schieberegler
einstellbaren Faktor vergrößert im Textfeld daneben angezeigt. Durch ihn kann
auch die Länge der roten Bandanzeige, die der Größe der Spannung entspricht,
verändert werden. Es wird die Spannung
eines HF-Gleichrichters in Verdopplerschaltung gemessen, die an der
Ausgangsspule des Bandfilters angeschlossen ist. Mit dem linken Schieberegler lässt sich das Ausgangssignal
des PWM-Ausgangs und damit die Steuerspannung für den spannungsgesteuerten
Oszillator einstellen.
Dies ist ein Bild des Oszillogramms bei der gemessenen
Frequenz 457 kHz bei den Schalterstellungen Y-AMPL.: 0,5V/cm und TIMEBASE: 1
Mikrosekunde Durch Drehen des Kerns im Bandfilter konnte ich den
Maximalwert der Ausgangsspannung einstellen. Dabei erwies sich neben der
Darstellung auf dem Oszilloskop auch die Länge der Bandanzeige als sehr nützlich.
Mit der oben beschriebenen Schaltung mit den beiden
Mikrocontrollern, die abwechselnd bei Aufforderung Daten an den angeschlossenen
PC senden, die in einem Visual Basic Programm veranschaulicht werden, habe ich
mir eine einfache und dennoch recht brauchbare Möglichkeit geschaffen, den in
einem anderen ELO-Beitrag beschriebenen
Superhet-Empfänger für das 80m-Amateurfunkband erneut abzugleichen und zu
optimieren.
Download: VB Programm