Experimente mit dem Attiny13 und einem VCO-IC 74LS624

von Hermann Nieder, DL6PH
 aus ELO 2009
Elektronik-Labor  Labortagebuch  ELO  


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. Nachteilig war, dass der mit der Frequenzmessung befasste Attiny13 ständig Daten an den PC sendete, wenn der betreffende Eingang des Ics 4066 gerade durchgeschaltet war. Das Programmlisting  „Frequenz.asm“ von der CD des o. a. Lernpakets musste ich also für die hier beschriebene Verwendung am Anfang ergänzen, damit der Mikrocontroller erst beim Empfang eines bestimmten Kommando-Bytes die Frequenzmessung ausführt und zwei Bytes sendet, um dann wieder abzuwarten, bis ihm erneut dieses Byte übermittelt wird.   

Anregungen dazu fand ich im Listing  Interface.asm  auf der CD des Lernpaket MSR mit dem  PC. Der Mikrocontroller wartet  nach dem Start auf  bestimmte Bytes, führt  nach dem jeweiligen Wert ein dazu  passendes Unterprogramm aus und wartet erneut, bis er ein Befehls-Bytes vom PC empfängt.  Der Wert 249 am Anfang des im Vergleich zum ursprünglichen Listing für die Frequenzmessung veränderten Assemblerlistings wurde von mir bewusst so gewählt, da  ein Befehls-Byte 249  im Listing interface.asm nicht vorkommt.  Dies sind die Änderungen im Programmlisting:      

...
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