Das
Franzis-UKW-Radio wird entweder mit zwei Tasten
oder mit einem Poti abgestimmt. Nun kommt noch eine Variante hinzu:
Abstimmung
über den PC. Ein AVR-Controller bildet das Interface. Im
Prinzip erzeugt der Controller
die benötigte Abstimmspannung für den jeweiligen
Sender. Für das Projekt wurde
der Mega32 auf dem ES-M32 verwendet, obwohl natürlich auch ein
kleinerer
Controller reichen würde. In diesem Fall erhält das
Radio seine Betriebsspannung
von 5 V vom Mikrocontroller. Die Verbindung zum PC ist wahlweise die
RS232 oder
der USB.
Hier
wurde das neue entwickelte Radiomodul mit
gedruckten Spulen (FM-Testplatinen)
verwendet, das demnächst in einem Franzis-Bausatz erscheinen
wird. Man kann aber mit gleichem Erfolg auch das bisherige Franzis-UKW-Radio
einsetzen.
Zwischen Mikrocontroller und PC gibt es nur vier Leitungen: Masse, +5
V, Scan
und Abstimmspannung (am Reset-Pin des TDA7088). Der Controller misst
die
vorhandene Abstimmspannung und kann am gleichen Pin diese Spannung auch
verändern. Ein Tiefpassfilter ersetzt das
ursprüngliche Abstimmpoti.
Im
Betrieb misst der Controller laufend die
vorhandene Abstimmspannung am Radio, die durch die ALC automatisch
konstant
gehalten wird. Nachdem mit Scan ein neuer Sender gesucht wurde, kennt
man also
die erforderliche Spannung. Um auf einen anderen Sender umzuschalten,
wird der
AD-Pin in kurzen Impulsen als Ausgang PortA.0 high oder low geschaltet.
Nach
jedem Impuls wird die Spannung neu gemessen. Ein Regelkreis sorgt
dafür, dass
die Sollspannung erreicht wird. So wird aus dem
10-Bit-AD-Eingang
zugleich auch ein 10-Bit-DA-Wandler.
Das
Interface-Programm enthält einen einfachen Befehlsinterpreter
für die erforderlichen Grundfunktionen. Hinter dem Kommando 64
verbirgt sich die Ausgabe einer Spannung am Pin ADC0.
If Kommando = 56 Then 'Spannung Messen Dd = Getadc(0) Hi = High(dd) Put #1 , Hi Lo = Low(dd) Put #1 , Lo End If
If Kommando = 64 Then 'Spannung ausgeben Get #1 , Hi Get #1 , Lo Dd = 256 * Hi Dd = Dd + Lo F1 = Dd For N = 1 To 250 D = Getadc(0) If D < F1 Then Porta.0 = 1 'laden Ddra.0 = 1 Waitus 20 Ddra.0 = 0 Porta.0 = 0 End If If D > F1 Then Ddra.0 = 1 'entladen Waitus 20 Ddra.0 = 0 Waitms 1 End If Next N End If
If Kommando = 1 Then 'Scan-Impuls Porta.1 = 1 Ddra.1 = 1 Waitms 600 Ddra.1 = 0 Porta.1 = 0 End If
Loop
Der Regelkreis für die Abstimmspannung erzeugt die
gewünschte Abstimmspannung zusammen mit etwa 50 mVss an
unregelmäßigen Impulsen, die aber durch das zweite
Tiefpassfilter im Radio (100 k und 100 n, Grenzfrequunz 16 Hz)
geglättet werden. Der Regelvorgang hält nur für ca. 250
ms an. Danach schaltet sich der PortA.0 wieder hochohmig und
überlässt der Radio-AFC den Rest. Das Radio hält dann
die Abstimmspannung vollkommen glatt, sofern ein Sender eingerastet
ist.
Das
zugehörige PC-Programm wurde mit VB6
entwickelt. Alle Einstellungen werden beim Beenden des Programms in der
Datei
FM.ini gespeichert. Drückt man auf eine Stationstaste, holt
sich das Programm
die entsprechende Sollspannung und stellt sie ein. Beim Abstimmen
schießt das
Programm jeweils um vier Stufen über das genaue Ziel hinaus,
damit die AFC eine
Chance erhält, den entsprechenden Sender einzufangen.
Private Sub Command1_Click() 'Scan SENDBYTE 1 End Sub
Private Sub Command2_Click() 'Direktabstimmung Wert = Val(Text2.Text) hi = Int(Wert / 256) lo = Wert And 255 SENDBYTE 64 SENDBYTE hi SENDBYTE lo End Sub
Private Sub FreqSet(Wert) 'Abstimmspannung hi = Int(Wert / 256) lo = Wert And 255 SENDBYTE 64 SENDBYTE hi SENDBYTE lo End Sub
Private Sub Command20_Click(Index As Integer) 'Speichern Freq(Index + 1) = AinA10Bit End Sub
Private Sub Command21_Click(Index As Integer) 'Stationstasten ff = AinA10Bit dd = Freq(Index + 1) If dd > ff Then dd = dd + 4 If dd < ff Then dd = dd - 4 FreqSet (dd) End Sub
Private Sub Command8_Click() 'Reset FreqSet 750 End Sub
Private Sub Form_Unload(Cancel As Integer) CLOSECOM Open "FM.ini" For Output As #1 For n = 0 To 9 Print #1, Freq(n + 1) Stationsname = Text10(n) Print #1, Stationsname Next n Close 1 End Sub
Beim
ersten Start muss man den Suchlauf starten: Reset und Scan. Das Radio
findet dann alle starken Stationen vom unteren Bandende an. Jeder
Wunschsender kann dann mit der kleinen p-Taste an dem jeweiligen
Speicherplatz festgehalten werden. Zusätzlich trägt man die
entsprechenden Stationsnamen in die Textfenster ein. Von nun an
können die Stationstasten verwendet werden. Alle Einstellunnen
werden beim Beenden des Programms in Freq.ini gespeichert.
Typischer Inhalt der Ini-Datei:
619 WDR 5 542 DLR 523 WDR 3 483 WDR 2 453 WDR 4 439 Essen 421 Funkhaus E 392 Essen 366 Eins Live 357 -