Von
Zeit zu Zeit beschäftige ich mich mit nostalgischem Radiobasteln - zur
Entspannung und einfach, weil es Freude macht. Oft ist der Weg von der
ursprünglichen Idee bis zum fertigen Gerät länger als gedacht. Aber wenn ich
mir die Zeit lasse, dann ist es immer ein vergnüglicher Weg, der viele neue
Erkenntnisse bringt.
Der
Adventskalender vom letzten Jahr und die auf dieser Web-Page vorgestellten
Versuche mit dem dazugehörigen Stereo-Dekoder haben mich auf die Idee gebracht,
ein FM-Stereo-Radio anzugehen. UKW hatte es in meiner Bastelgeschichte schon
öfter gegeben, aber Stereo und „richtig brauchbar“ war bisher noch nicht dabei.
Das UKW-Stereo-Radio
Zielsetzung
Was
sollte es also werden? Natürlich ein praxistauglicher FM-Stereo-Empfänger. Und
er sollte offen sein für neugierige Einblicke: Wie schon bei anderen Projekten
wollte ich die Elektronik in einem Plexiglas-Gehäuse als freie Verdrahtung
unterbringen. Bei dieser Bauweise kommt keine Platine zum Einsatz. Statt dessen
wird die Schaltung so aufgebaut, dass die Bauteile über ihre Anschlussdrähte
und einige Lötösen auf der durchsichtigen Grundplatte Halt finden. Das ist nun
eigentlich gar nicht für Hochfrequenz geeignet. Aber zum Glück machen die
Philips-Bausteine vom Adventskalender die Sache einfach, da die ICs die hohen
Frequenzen weitgehend intern verarbeiten. Das sollte auch mit einem Drahtverhau
funktionieren.
Die
Bedienung für Senderwahl und Lautstärke sollte über Drehknöpfe erfolgen, so wie
früher, als Elektronik noch nicht über Tipptasten oder Touchscreens
kontrolliert wurde. Wo ich schon einmal dabei war, wurde auch eine
Frequenzskala mit beweglicher Markierung via Skalenseil in das Pflichtenheft
mit aufgenommen. Und schließlich sollte noch eine Leuchtbandanzeige in
Anlehnung an ein „magisches Auge“ die Empfangsstärke anzeigen und bei der
manuellen Abstimmung helfen.
Planung
Für
die Schaltung kam allerdings nicht der im Adventskalender verwendete TDA7088
zum Einsatz, sondern der etwas ältere TDA7021. Dieser war besser geeignet, weil
er zum einen an Pin 9 die Empfangs-Feldstärke als Spannungswert zur Verfügung
stellt. Zum anderen ist der 7021 für kontinuierliche, manuelle Abstimmung über
einen Drehknopf besser geeignet ist. Als Stereo-Dekoder sollte ein TDA7040 dazu
kommen, der sehr gut mit dem 7021 harmoniert.
Die
Chips waren gar nicht so einfach zu bekommen. Aber es gibt nichts, das es im
Internet nicht gibt. Ich wurde bei einem Internet-Auktionshaus fündig, so dass
schließlich für wenige Euro ein kleiner Umschlag aus Hongkong mit den
Philips-Bausteinen in meinem Briefkasten landete. Das ging ja einfacher, als
ich gedacht hatte.
(Update 8.4.17)
Aber der Reihe nach. Die Schaltung wird über
eine 9-Volt-Batterie versorgt, was gut für den NF-Verstärker, aber deutlich zu
viel für die TDA-Chips ist. Deshalb sorgt ein 78L03 für stabile 3 Volt auf der
HF-Seite. Die Schaltung folgt fast vollständig der Anwendung, die im
Philips-Datenblatt gezeigt ist. Der frequenz-bestimmende Oszillatorkreis
besteht aus einer Spule (Luftspule aus 4 Windungen mit 5 mm Durchmesser) und
einer Kapazitätsdiode 1SV101. Die Abstimmung erfolgt über ein 47
k-Potentiometer. Mit dem Spannungsbereich von 0 bis 3 Volt lässt sich das
UKW-Band sehr gut überstreichen. Die Widerstände links und rechts vom
Abstimm-Poti begrenzen den Empfangsbereich auf das nutzbare Radioband. Als
Antenne wird ein Drahtstück von 1 m Länge am Eingangskreise angeschlossen. Die
Induktivität L3 in der Stromversorgung des TDA7021 ist übrigens in der
Philips-Applikation nicht zu finden. Bei meinem Aufbau eliminierte sie
Zwitschergeräusche, die andernfalls ab und zu zu hören waren.
Der
Stereo-Dekoder übernimmt das MPX-Signal und liefert die Niederfrequenz an das
Stereo-Poti zu Lautstärke-Einstellung.
Für
die NF-Verstärkung konnte ich zwei LM386 zur Mitarbeit überreden, die sich in
der Bastelkiste langweilten. Sie arbeiten hier mit niedriger Verstärkung und
treiben zwei kleine Lautsprecher. Die Schaltung hat noch einige Elkos und 100
nF Blockkondensatoren zur Stabilisierung und Vermeidung von ungewollten
Schwingungen.
Für
das „magische Auge“ musste auch wieder die Bastelkiste herhalten. Die Messungen
an Pin 9 des TDA7021 zeigten, dass ohne Sender etwa 2.7 Volt anlagen. Je
stärker der Sender, desto geringer war die Spannung bis herunter auf minimal
etwa 0.3 Volt. Das Signal hätte man mit Komparator, Inverter und LED-Treiber
aufbereiten können. Ein Blick in meine Vorräte brachte mich aber auf eine
andere Idee. Schon vor ein paar Wochen hatte ich einen Satz ATtiny44 bekommen,
die auf eine Aufgabe warteten. Dieser AVR-Controller ist dem ATtiny13 sehr
ähnlich, verfügt aber über wesentlich mehr Ausgänge. Das war ideal für meinen
Zweck. Der ADC des Mikrocontrollers übernimmt den Spannungswert an PA7 und
steuert die Leuchtdioden an PA0 bis PA6. Die Pegelanpassung wurde komplett per
Software gemacht, was den Aufbau natürlich sehr vereinfachte. Die Anzahl von 7
LEDs erschien mir als guter Kompromiss zwischen Auflösung und Stromverbrauch.
Tatsächlich arbeitetet das Programm mit einer Auflösung von 14 statt 7 Stufen.
Bei allen ungeraden Werten wird die jeweils nächst höhere LED im
Pulsweiten-Modus mit 25 % betrieben, was etwa die halbe Helligkeit ergibt.
Dadurch erscheinen die Übergänge „weicher“, schon beinahe wie mit analoger Elektronik.
Der Controller läuft mit dem internen 1 Mhz-Oszillator und hat nicht wirklich
viel zu tun. Er darf deshalb den größten Teil der Zeit im Sleep-Modus
entspannen. Das
Programm ist in C geschrieben und recht einfach. Die Details sind den Kommentaren
im C-Programm zu entnehmen.
Experimente
Bevor
ich mich an den Aufbau des Radios im Plexiglasgehäuse machen konnte, musste
etwas Forschungsarbeit betrieben werden. Die erste Frage war: Wie bekomme ich
SMD-Bausteine in eine frei-fliegende Verdrahtung? Ich habe einige Varianten
probiert und bin dann mit der Montage auf einer IC-Fassung am Besten zurecht
gekommen. Die SMD-Chips wurden mit einem kleine Stück Holz etwas erhöht auf die
IC-Fassung geklebt und dann Pin für Pin verdrahtet. Ein spitzer Lötkolben, eine
ruhige Hand (!) und eine kräftige Lesebrille machten es möglich. Die SMD-Chips
mit 1,27 mm Pin-Abstand sind eigentlich recht gutmütig, und nach ein bisschen
Übung geht das Löten zügig von der Hand. Die montierten ICs sind mechanisch
sehr robust und können vielseitig verwendet werden.
Montage des SMD-Chip auf einer
IC-Fassung
Der
nächste Schritt war ein Probeaufbau auf einem Holzbrett. Ich hatte verschiedene
Varianten der Anordnung ausprobiert, um Leitungslängen klein zu halten. Als
Draht kam versilberter Kupferdraht mit 1 mm Durchmesser zum Einsatz, der
einerseits gute, mechanische Stabilität bietet und andererseits hübsch
anzuschauen ist. Die Schaltung war erstaunlich unproblematisch und robust.
Testaufbau
Der
dritte Versuchsaufbau beschäftigte sich mit dem Skalentrieb. Das Seilrad am
Abstimmpoti sollte einen Durchmesser von 5 cm Durchmesser bekommen. Das ergab
bei einem nutzbaren Drehwinkel von 270 Grad eine Skalenlänge von etwa 11 cm,
was dann auch die wesentlichen Gehäusemasse definierte. Aus Platzgründen wurde
das Abstimmpoti um 90 Grad verdreht angeordnet. Das Seil ließ sich gut über
Umlenkrollen führen. Als Gegenstück arbeitete ein kleines Seilrad mit 2 cm
Durchmesser, das auf einer freien Achse (eine M6-Schraube) mit Drehknopf montiert
war. Die Abstimmung hat also eine Untersetzung von 2 auf 5, ein guter Wert für
feinfühligen Abstimmen. Das Seil kam übrigens von einer Nylon-Drachenschnur. Es
wurde mit einer kleiner Feder gespannt.
Skalentrieb
Aufbau und Abgeich
Nachdem
die Forschung erfolgreich abgeschlossen war, konnte es an den Zusammenbau
gehen. Als Material kamen durchgängig Plexiglas und Aluminium zum Einsatz. Die
Plexiglasplatten sind leider sehr empfindlich, wenn die Schutzfolie erst einmal
entfernt ist. Deshalb hatte ich die Schaltung komplett auf einem Holzbrett
aufgebaut und erst dann auf die fertig bearbeitete und gebohrte Plexiglasplatte
transferiert. Die aufgebaute Schaltung war auch ohne Grundplatte einigermaßen
stabil, so dass sie sich gut an ihren Arbeitsplatz transferieren ließ.
Die Schaltung an ihrem Arbeitsplatz
Der
Abgleich war sehr einfach. Erster Punkt war das Auseinanderziehen oder
Zusammendrücken der Oszillatorspule, bis der Frequenzbereich mit dem UKW-Band
übereinstimmte. Das brauchte ein bisschen Geduld und Fingerspitzengefühl.
Zum
Abgleich von P2 und P3 schweigt sich das Philips-Datenblatt leider aus. Kollege
Google hatte dann ein paar Tipps, die zu folgender Methode führten:
Zuerst
wurde der PLL-Oszillator des Stereo-Dekoders mit P3 abgeglichen. Dazu wurde die
Abstimmung in einen Bereich ohne Sender gedreht, so dass der Oszillator frei
lief. Jetzt wurde der 100 nF-Kondensator an Pin 7 des TDA7040 gelöst und Pin7
über einen 10 kOhm-Widerstand an die Spannungsversorgung (3 V) gelegt. Mit einem
Oszilloskop oder Frequenzzähler konnte ich an Pin 7 die Frequenz des
Oszillators abnehmen. Sie wurde möglichst exakt auf 19 kHz eingestellt. Damit
hat der Oszillator die optimalen Voraussetzungen, auf das Pilot-Signal eines
Senders einzurasten. Zum Schluss musste ich den Umbau natürlich wieder
rückgängig machen. Besonders der 100 nF-Kondensator an Pin 7 nach Masse war
wichtig, weil sonst die Klangqualität leidet.
P2
an Pin 15 des TDA7021 wurde schließlich so eingestellt, dass auch ein schwacher
Sender mit deutlich erkennbarem Stereo-Sound übertragen wurde. Die Einstellung
war aber unkritisch. Ein mittlerer Wert wird meistens gut passen.
Zum
Schluss kam noch, sozusagen als i-Tüpfelchen, die Frequenzskala. Um die
Positionen der Frequenzen zu finden, hatte ich meinen geschätzten
Reiseempfänger um Unterstützung gebeten und mit dessen Hilfe die Frequenzen des
Oszillators am TDA7021 ermittelt. Das klappte prima, weil die Zwischenfrequenz
mit 70 kHz quasi vernachlässigbar ist. Den Empfänger stellte ich mit eingeschobener
Antenne so dicht wie möglich neben mein Radio. Die gesuchte Frequenz wurde am
Reiseempfänger eingestellt, z.B. 90 MHz. Jetzt war der Oszillator beim
Durchdrehen der Abstimmung einwandfrei im Reiseempfänger zu finden, so dass ich
die 90 MHz-Position auf der Skala übernehmen konnte. Das wurde schrittweise für
mehrere Frequenzen wiederholt, bis die Skala komplett war. Die Skala habe ich
dann mit dem Computer auf transparente Folie gedruckt und mit Tesafilm auf den
durchsichtigen Skalenträger montiert. So, fertig.
Skala mit Zeiger
Empfangspraxis
Und
dann war es soweit: Das Radio funktionierte und konnte vorgeführt und
ausprobiert werden. Die Empfindlichkeit hat mich von Anfang an überrascht. Der
TDA7021 kommt auch mit schwachen Sender gut zurecht und ist sicherlich mit dem
UKW-Band meines Reiseempfängers auf Augenhöhe. Beim Durchdrehen des
Abstimmknopfes erscheinen die Sender dicht gepackt auf der Skala. Die
LED-Anzeige ist flink und beim Abstimmen hilfreich. Assoziationen an Omas
Röhrenradio mit Skala und magischem Auge sind fast unvermeidlich. Auch die
Klangqualität ist gut; und der Stereo-Effekt ist durch den relativ großen
Abstand der beiden Lautsprecher im breiten Gehäuse schön zu hören. Der Empfang
ist absolut klar, zumindest solange die Sender mit ausreichender Feldstärke
hereinkommen. Wenn der Empfang schwächer ist (3 oder 4 LEDs), dann sind die
Sender von ausgeprägtem Stereo-Rauschen begleitet. Aber das kann man der
kleinen Schaltung nicht übel nehmen.
Interessante Einsichten
Das
Radio steht nun schon seit ein paar Wochen in der Küche. Wir benutzen es oft
und gerne und möchten es nicht mehr missen. Und das gut einsehbare Innenleben
beschert interessante Einblicke, die auch oft Besucher in ihren Bann ziehen.
Eine Demonstration ist auf YouTube zu sehen:
http://youtu.be/Yv7g0Zxqzz8
/*
* Magic Eye - field strength indicator for TDA7021 FM radio
*
* 2.7 V => all LEDs off, 0.3 V => all LEDs on
*
* The algorithm takes the average of 4 ADC measurement and drives a 7 LED array. It maps
* 14 voltage steps to 7 LEDs. Even step-values are mapped to half the number of LEDs.
* Odd values are mapped to half the number LEDs + the next LED at 25% (1 out of 4 cycles)
*
* Port A, Bit 0 ... 6: LED array, output
* Port A, Bit 7: ADC, input
*
* for Attiny44. Fuses: internal oscillator at 1 MHz, div128 off
*
* Created: 23.04.2013 21:11:17
* Author: Stephan Laage-Witt
*/
#define F_CPU 1000000
#define ADC_UPPER_LIMIT 231 // corresponds to 2,70 V (reference = Vcc = 3.0 V)
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
volatile uint16_t adc_result; // sum of 4 conversions
volatile uint8_t job_counter = 0;
/* Interrupt Service Handler ---------------------------------------------------------------------*/
/* Runs approx. 240 times per second, reads ADC value, counts job_counter through from 0 to 3 */
ISR(TIM0_COMPA_vect) {
adc_result += ADCH; // read ADC value, use upper 8 bits only
ADCSRA |= (1<<ADSC); // kick off new conversion
if (++job_counter == 4) // increase job_counter
job_counter = 0;
}
/* MAIN ------------------------------------------------------------------------------------------*/
int main(void)
{
const uint8_t led_array[8] = {0b01111111, // 7 LED array, 0 = on
0b01111110, // highest bit always 0
0b01111100,
0b01111000,
0b01110000,
0b01100000,
0b01000000,
0b00000000,
};
uint8_t step = 0;
uint8_t odd_flag = 0;
// I/O ports
DDRA = 0b01111111; // bits 0 to 6 drive LED array, bit 7 used for ADC input
// Initializing ADC
ADMUX = (1<<MUX2) | (1<<MUX1) | (1<<MUX0); // Vcc is reference, channel PDA7
ADCSRA = (1<<ADEN) | (1<<ADPS0); // ADC enabled, pre-scaler division factor = 2
ADCSRB = (1<<ADLAR); // result is left adjusted in ADCH
ADCSRA |= (1<<ADSC); // kick off first conversion
// Configuring timer 0 for interrupt at (approx) 240 Hz
TCCR0A |= (1<<WGM01); // CTC mode
TCCR0B |= (1<<CS02) | (0<<CS01) | (0<<CS00); // prescale = clock rate / 256
OCR0A = (16 - 1); // compare value = 16 * 256 usec -> 244 Hz
TIMSK0 |= (1<<OCIE0A); // enable timer compare interrupt
sei(); // off we go ...
// set sleep mode to idle: interrupts and adc kept running
set_sleep_mode(SLEEP_MODE_IDLE);
while(1) {
if (job_counter == 3) { // every 4th cycle:
adc_result = adc_result / 4; // take the average across 4 measurements
if (adc_result > ADC_UPPER_LIMIT) { // anything above 2.7 V counts as "all LEDs off"
step = 0;
} else {
step = ADC_UPPER_LIMIT - adc_result; // invert value
step /= 15; // one step is approx. 0.18 V
if (step > 14) step = 14; // anything below 0.3 V counts as "all LEDs on
if (step & 0b00000001) // check odd (bit 0 = 1) or even (bit 0 = 0)
odd_flag = 1;
else
odd_flag = 0;
step = step / 2; // reduce scale to 0 ... 7
adc_result = 0; // reset adc_result for the next round
};
};
if ((job_counter == 0) && (odd_flag)) // only for 1 out of 4 cycles:
PORTA = led_array[step + 1]; // if result is odd then toggle
else // highest LED between on and off
PORTA = led_array[step]; // set LED array according to ADC value
sleep_mode(); // good night - wake up via interrupt
}
}
Nostalgisches FM-Stereo-Radio - Nachbau von Rainer Melcher
Ich
wollte schon seit Langem (erste Idee vor ewiger Zeit durch das
„Werkbuch für Jungen“) ein Radio selber bauen. Lange Zeit verging, oft
dachte ich daran. Dann im Herbst 2015 kam endlich die Umsetzung. Im
besagten Werkbuch baute ich das Kurzwellenradio in der exklusivsten
Baustufe nach. Da ich als elektronischer Quereinsteiger eher von der
Mechanikfraktion komme half ein Arbeitskollege. Wir schafften es im
Jahreswechsel 2015/2016 pünktlich zum Abschalttermin der Kurzwelle in
Deutschland (Punktlandung).
Motiviert vom Misserfolg suchte ich im
höherfrequenten Sendebereich (UKW) nach Bauvorschlägen und entschied
mich nach dem Vergleich einiger ähnlicher Bauvorschläge für das sehr
interessante und gut beschriebene Projekt von Herrn Stephan
Laage-Witt. Er unterstütze mich dabei auch mit Rat und Tat und sendete
mir sogar unentgeltlich den programmierten ATtiny zur optischen Anzeige
der Sendergüte.
Ich brauchte allerdings einige Anläufe, baute
immer wieder ein paar kleine hochwirkungsvolle Fehlerchen ein, bis ich
eines Abends fast erschrak, als aus dem kleinen Testlautsprecher ganz
ordentliche Musik surrte. Endlich geschafft. Jetzt
wurde alles noch hübsch gemacht und in dem Ganzen ein selbstgemachtes
Plexiglasgehäuse verpasst.
Das UKW-Stereo Radio hat schon viele hundert
Betriebsstunden absolviert. Ich bin einfach begeistert von dem Bastelprojekt. Die zwei
gekapselten 77-er Lautsprecher erzeugen einen sehr ordentlichen Klang.
Mit der eigenwilligen Form der Plexiglasteile und der blauen
LED-Beleuchtung ist es ein Schmuckstückchen, gleich wo es gerade steht,
und das 9 V Stecker-Netzteil und die Teleskopantenne machen
den Betrieb einfach.