Neulich war es mir gelungen, mit dem Attiny13 aus dem Lernpaket MSR mit
dem PC[1] einen vorhandenen seriellen 10-Bit-DA-Wandler MAX515
anzusteuern. Als ich an einem anderen Tag ein Fachbuch von Frank Sichla
[2] durchblätterte, in dem u. a. auch ein einfacher HF-Wobbler
dargestellt ist, hatte ich den Einfall, die Schaltung aus einem anderen
ELO-Beitrag [3] zur Ansteuerung des VCO-Ics 74LS624 sowie
diejenige des Frequenzteilers erneut zu verwenden, um damit einen
solchen Wobbler aufzubauen, um Resonanzkurven von
Parallelschwingkreisen, Bandfiltern u. ä. darstellen zu können. Ich
wollte dabei allerdings ohne ein Oszilloskop auskommen und die
grafische Darstellung unter Windows mit Visual Basic verwirklichen. Mit
dieser Software wollte ich auch die Ansteuerung der Mikrocontroller
durchführen , da mir die Steuerung des MAX515 in BASCOM AVR gelungen
war. Dass dies recht gut gelungen ist, ist auf dem folgenden
Screenshot zu erkennen. Es sind gerade die Resonanzkurven
eines Bandfilters für 455kHz und eines keramischen Filters CFM-455
aufgenommen worden.
Der Frequenzteilerausgang ist in diesem Projekt anders als in dem oben
erwähnten ELO-Beitrag an PB0 angeschlossen, damit die beiden Pins
ADC2 und ADC3 für Spannungsmessungen zur Verfügung stehen. Ich wollte
für das Projekt nur zwei der kleinen Mikrocontroller verwenden.
Es wird die Spannung am DA-Wandlerausgang gemessen sowie
diejenige am Ausgang einer Verdopplerschaltung zur HF-Spannungsmessung.
Anregungen für diese Schaltung fand ich in einem Fachbuch von Frank
Sichla[4].
Das Listing Frequenz.asm von der CD zum o. a. Lernpaket passte ich für diesen Zweck an.
Dies hier sind die Änderungen, die ich darin vornahm:
...
.def B = r25
...
Anfang0:
sbi ddrb,TXD ; stand hinter Anfang
rcall AdcInit ; neu
Auswahl: ;neu
rcall RdCOM ;
mov B,A
cpi
A,249 ; bei 249 wird dieser ATtiny13
angesprochen
brne zurueck ;
rcall RdCOM
mov B,A
cpi A,1 ; bei 1 Frequenzmessung
brne zwei
rjmp Anfang
zwei:
mov A,B
cpi
A,2 ; bei 2 ADC2
einlesen
brne drei
AdcInit:
ldi B,3 ;Clock / 4
out ADCSRA,B
sbi ADCSRA,ADEN ;AD einschalten
ret
RdADC2: ldi B,2
rjmp weitADC
RdADC3:
ldi B,3
weitADC:
out ADMUX,b
sbi ADMUX,ADLAR ;Left adjust
sbi ADCSRA,ADSC ;Wandlung starten
ADrdy:
sbic ADCSRA,ADSC
rjmp ADrdy
sbi ADCSRA,ADSC
ADrdyb:
sbic ADCSRA,ADSC
rjmp ADrdyb
in B,ADCH
ret
Die o. a. Abwandlungen des ursprünglichen Listings machen es möglich,
dass der für die Frequenzmessung und die beiden Spannungsmessungen
vorgesehne Attiny13 nur bei Empfang eines Befehlsbytes 249 und
eines anschließenden Folgebytes 1 die Frequenz an Pin PB0 misst und
darauf zwei Bytes für deren Betrag an den PC übermittelt. Wird diesem
nach dem Byte 249 eine 2 gesendet, wird die Spannung
am Pin ADC2 gemessen und dafür ein Byte übertragen, während bei 249 und
einer 3 eine Messung an ADC3 erfolgt und dafür ein Byte an den PC
gesendet wird. Die Pins PB2 beider Mikrocontroller sind jeweils über
einen Widerstand von 100k an Pin TXD der Platine des Lernpakets MSR mit
dem PC [1] angeschlossen. Bei dem ATTiny13, der den seriellen
DA-Wandler ansteuert, entfällt der Widerstand zwischen seinem Pin PB1
und dem Anschluss RXD der Platine des o. a. Lernpakets, da von ihm
keine Rückmeldung an den angeschlossenen PC erfolgt.
Dies ist der Schaltplan für die Ansteuerung des DA-Wandlers durch den einen der beiden Mikrocontroller.
Dieser muss zuerst das Byte 248 und anschließend nacheinander das
Highbyte und das Lowbyte für den auszugebenden DA-Wert vom PC
empfangen, bevor er den MAX515 aktivieren kann. Alle anderen
Befehlsbytes werden durch das Programm in BASCOM AVR
„übersehen“.
Es werden vom Mikrocontroller zuerst nacheinander die Bits 9 und 8 des
Highbytes und dann die Bits 7 bis 0 des Lowbytes sowie zwei
zusätzliche Dummybits mit dem Taktsignal SCLK an DIN des Wandler-Ics
weitergegeben. Als Anregungen für die Programmgestaltung dienten mir ein Fachbuch von
Dieter Bitterle[5] sowie die Datenblätter des MAX515.
Der Vorteil des Mehraufwands mit dem 10-Bit-DA-Wandler besteht
für mich darin, dass seine Ausgangsspannung wegen der um den Faktor
vier höheren Auflösung feiner eingestellt werden kann als die an einem
RC-Tiefpassfilter zur Verfügung stehende Spannung
hinter einem der PWM-Ausgänge des Attiny13.
Auf diesem Bild ist die mit dem Wobbler aufgenommene Resonanzkurve
eines auf das 80-m-Amateurfunkband abgestimmten Schwingkreises
dargestellt. Das Visual Basic Programm kann z. B. folgendermaßen
bedient werden: Nach dem Start wird für die angeschlossene
Platine des Lernpakets MSR mit dem PC [1] die COM-Schnittstelle
ausgewählt und der Betrag der gemessenen stabilen Gleichspannung
von 5 V im Betrieb bei angeschlossener Schaltung mit dem
Digitalmultimeter überprüft und ihr Wert im Textfeld neben dem
Schaltknopf „Open COM“ eventuell abgeändert.
Mit dem längeren der beiden Schieberegler lässt sich die
Ausgangsspannung des DA-Wandlers, der das VCO-IC über einen als
Spannungsfolger geschalteten Operationsverstärker ansteuert und dessen
Frequenz einstellt, ändern. Unter dem Schieberegler wird die Stellung
des Schiebers und die (berechnete) Größe der Ausgangsspannung angezeigt
und ihr wirklicher an ADC2 gemessener Wert zusätzlich oben in einem
Textfeld fortwährend angegeben. Hat der äußere Kondensator am
74LS624 eine Kapazität von 100pF, so lässt sich das VCO-Ic in
einem Bereich von ca. 1,7 bis 11,7 MHz abstimmen.
Mit dem rechten Schieberegler wird die Empfindlichkeit der
Spannungsanzeige so eingestellt, dass beim zu untersuchenden
Schwingkreis im Resonanzfall wegen der späteren grafischen Darstellung
unten im Bildfeld der maximal darstellbare Spannungswert von 5 V nicht
überschritten wird. Der Betrag der um den eingestellten Faktor
vervielfachten gemessenen relativen HF-Spannung wird in einem Textfeld
dargestellt. Dabei dient eine mit einem Figurenfeld gebildete rote
Bandanzeige als Hilfe. Die Länge des Bandes entspricht der Größe der
Spannung.
In den beiden Textfeldern rechts neben dem Schaltknopf „RESET“ lassen
sich für den linken Schieberegler die Anfangs- und Endposition für den
Wobbelvorgang einstellen. Im Feld rechts daneben wird die Schrittweite
für die Positionsänderung festgelegt.
Für die grafische Darstellung des Frequenzgangs des zu untersuchenden
Objekts im Bildfeld unten wird in den beiden Textfeldern darunter der
Anfangs- und Endwert
in Hunderterbeträgen , z. B. hier 300 und 500, festgelegt. Die Farbe
der darzustellenden Linie lässt sich mit dem Schieberegler rechts
daneben von 0 bis 15 einstellen.
In ihr kann nach Abschluss des Wobbelvorgangs im Zeichenfeld rechts
oben nach Drücken eines der Schaltknöpfe in ein Textfeld ein kurzer
Hinweis zur Erläuterung der grafischen Darstellung eingegeben werden.Da
im Beispiel ein äußerer Kondensator mit der Kapazität von 100 pF
(Frequenzbereich von ca. 1,7 bis 11,7 MHz) verwendet wird, ist das
Optionsfeld anzuklicken, worauf durch das Erscheinen eines roten
Hinweises „X 10“ rechts im Zeichenfeld kenntlich gemacht wird, dass der
an der Frequenzachse abzulesende Wert mit dem Faktor 10 zu
multiplizieren ist.
Links neben dem Bildfeld kann durch Eingeben einer geeigneten Zahl, wie
hier z. B. 300, eine Verschiebung der Darstellung des
Frequenzgangs des angeschlossenen Schwingkreises nach links festgelegt
werden. Ein geeigneter ganzer Zahlenwert im Feld darüber bestimmt die
„Dehnung“ der beschrifteten Frequenzachse. Das Textfeld über diesem
erlaubt eine Festlegung der Linienbreite für die grafische Darstellung.
Nachdem die gewünschten Werte eingetragen worden sind, wird zur
Beschriftung und Skaleneinteilung der Schaltknopf „Freq.-Achse“
gedrückt und anschließend der Wobbelvorgang durch Betätigen von
„Wobbeln Ein“ gestartet. Er lässt sich mit dem Schaltknopf „Wobbeln
Aus“ beenden. Mit „RESET“ wird der Schieberegler wieder in die durch
das Textfeld daneben festgelegte Position gebracht, und ein weiterer
Wobbelvorgang kann eventuell nach Auswahl einer anderen
Liniefarbe gestartet werden. In einem Listenfeld werden durch das
Programm neben der Position des Schiebereglers die Frequenz und die
gemessene relative HF-Spannung eingetragen. Der Schwingkreis für das
80m-Band und die beiden anderen Filter, deren Frequenzgänge im Bild
ganz oben dargestellt sind, wurden jeweils über einen Widerstand
von 10 k an einen der Inverter-Ausgänge, der wie in der in dem
erwähnten anderen ELO-Beitrag [3] dargestellten Schaltung das
Ausgangssignal des VCO-Ics puffert, angeschlossen. Auch eine andere, z.
B. niederohmige Kopplung ist mit etwas mehr Schaltungsaufwand sicher
möglich. Eventuell lässt sich der freie Pin des einen
Mikrocontrollers dafür verwenden, über ein kleines Relais den äußeren
Kondensator am VCO-IC, dessen Kapazität den Frequenzbereich des 74LS624
festlegt, umzuschalten.
Mit dem oben beschriebenen Projekt habe ich eine recht brauchbare,
kostengünstige Möglichkeit z. B. für die Beurteilung von
Schwingkreisen und Bandfiltern zur Hand, die sicher auch, wie ich
finde, für andere bastelnde Funkamateure und Hobbyelektroniker
interessant ist. Ein Markengeber ist nicht nötig, da im Listenfeld
nachgesehen werden kann, bei welcher Frequenz sich welcher relativer
HF-Spannungswert eingestellt hat.
Dies ist die komplette Schaltung, die probeweise auf kleinen
Steckboards aufgebaut wurde. Mit ihr wurden die in den beiden
Screenshots dargestellten Frequenzgänge aufgezeichnet. Es fehlt der
Übersichtlichkeit wegen rechts im Bild nur die kleine erwähnte
Schaltung zur relativen HF-Spannungsmessung.
Programmlistings hier herunterladen und für eigene Zwecke umgestalten und weiterentwickeln. 0911DA10bit.zip