www.wernerhirsch.de
Elektronikprojekte

RDS FM Tuner

- Einfacher Aufbau durch Verwendung des FM Tuner Chips RDA5807M - Frequenzbereich 87 – 108 MHz - Anzeige des Senders, Radiotext und Datum/Uhrzeit über RDS - Optionale Mini Endstufe für den Anschluss von Lautsprechern - Aufbau auf Streifenraster Platine

Einführung/Voraussetzungen

Wer Freude am Selbstbau von elektronischen Schaltungen hat, findet hier eine einfache Schaltung für einen UKW (FM) Empfänger. Finanziell wird der Selbstbau sicherlich keine Vorteile bieten, da die Preise für die Bauteile in der letzten Zeit stark angezogen haben. Zusätzlich wird der Selbstbau dadurch erschwert, das immer mehr Bauteile nur noch als SMD Versionen verfügbar sind. Aber wie gesagt: Wer Freude dran hat… Für die Schaltung wird ein Mikrocontroller PIC16F876A verwendet, der mit der HEX-Datei FM_Tuner_P16F876A.hex programmiert werden muss. Die HEX-Datei sowie eine Assembler-Datei findet ihr im Downloadordner am Ende der Seite. Ist kein geeignetes Programmiergerät vorhanden, kann ein einfaches Gerät (JDM-Programmer) selbst gebaut werden. Voraussetzung hierfür ist ein PC mit "echter" 9-poliger RS232 Schnittstelle (USB auf RS232 Adapter funktionieren in der Regel nicht). T1 und T3 sind leider nur als SMD Version im SOT23 Gehäuse verfügbar, können aber noch relativ einfach auf die Kupferseite der Streifenrasterplatinen gelötet werden. Für das Löten der Chips sind eine ruhige Hand, gute Augen (ggf. eine gute Lupe mit 3-5 facher Vergrößerung), viel Licht und ein Lötkolben mit feiner Spitze erforderlich.

Beschreibung der Schaltung

Die Elektronik besteht im Wesentlichen aus dem Mikrocontroller IC2, Eingabetaster, Display und dem FM Tuner Modul. Die Mini Endstufe ist optional. Die Schaltung benötigt eine 5V Versorgungsspannung (z.B. USB Ladegerät). Für die Kommunikation zwischen Tasten/IR-Empfänger, Display und dem FM Tuner ist der Mikrocontroller PIC16F876A (IC2) mit 4MHz Quarzoszillator zuständig. Das Programm wird mittels der Datei FM_Tuner_P16F876A.hex in den Mikrocontroller geladen. Die Datei befindet sich in dem Download Ordner am Ende der Seite. Wer noch Änderungen am Programm vornehmen möchte, findet in dem Ordner auch die Assembler-Datei FM _Tuner_P16F876A.asm. Über die 5-polige Stiftleiste SV1 kann der PIC im eingebauten Zustand in der Schaltung programmiert werden (ICSP = In Circuit Serial Programming), ich empfehle jedoch die Programmierung im Programmiergerät.

FM Tuner

Als UKW Empfänger wurde der RDA5807M gewählt, der alle Funktionen in einem Chip integriert hat und nur wenige

externe Bauteile benötigt.

Über Ebay kann man ein Modul kaufen (RRD-102v2.0, gefertigt in China), das neben

dem RDA5807M auch den benötigten 32,768kHz Quarz, den Bypass Kondensator

für die Versorgungsspannung und den Koppelkondensator für den FM Eingang

enthält.

Ich habe 4 Stück zum Preis von 4 Euro incl. Versand bestellt, von denen 3

problemlos funktionierten und einer einen Kurzschluss zwischen Masse und dem

linken Audioausgang aufgrund einer Lötbrücke hatte. Nach entfernen der Lötbrücke

hat auch dieser einwandfrei funktioniert.

Ungünstig sind das Rastermaß des Moduls (2mm) und die recht bruchempfindlichen

Anschlusspunkte. Beim Auslöten eines Moduls aus einem Testaufbau sind mir gleich

2 Anschlusspunkte abgebrochen.

Der RDA5807M benötigt eine Versorgungsspannung von ca. 3V (2,7…3,3V). Mittels

des Low Drop Spannungsreglers LP2950-3.0 (IC1) werden die 3V aus der 5V

Versorgungsspannung der Schaltung generiert.

Die Kommunikation zwischen RDA5807M und Mikrocontroller erfolgt seriell mittels

I2C Protokoll über 2 Leitungen, SCLK/SCL für den seriellen Takt und SDIO/SDA für

die seriellen Daten. Die Datenübertragung erfolgt mit einem Takt von 100kHz.

Im Schreibmodus werden diverse Grundeinstellungen sowie variable Einstellungen

wie z.B. Frequenz, Lautstärke, Mute oder Standby an den RDA5807M gesendet.

Im Lesemodus werden Statusinformationen wie Signalqualität RSSI (Received Signal Strength Indicator), aktuelle

Frequenz, neuer RDS Datensatz und RDS Informationen wie Sendername, Radiotext und Datum/Uhrzeit ausgelesen.

Da der RDA5807M einen Signalpegel von 3V und der Mikrokontroller 5V benötigt, ist pro Leitung ein Pegelwandler

erforderlich.

Für die Taktleitung ist die Lösung mit der Schottky Diode BAT43 (D1) und den Pull-Up Widerständen R1,R2 ausreichend,

da der Takt nur vom Mikrocontroller erzeugt wird. Ist SCL High (5V) wird SCLK durch R1 ebenfalls auf High (3V) gezogen.

Wird SCL Low (0V) wird SCLK durch D1 auf den Wert der Diodenspannung (ca.0,3V) auf Low gezogen.

Für die Datenleitung ist ein bidirektionaler Pegelwandler, bestehend aus R3,R4 und dem MOSFET BSS138 (T1)

erforderlich. Ist SDA High (5V) wird SDIO durch R3 ebenfalls auf High (3V) gezogen, da die Gate-Source Spannung Ugs

von T1 ~ 0V beträgt und damit der Drain-Source Widerstand Rds groß ist. Wird SDA Low (0V) wird SDIO durch die Diode

von T1 auf den Wert der Diodenspannung auf Low gezogen. Dadurch steigt Ugs und Rds wird klein, sodass SDIO auf ~

0V gezogen wird.

In umgekehrter Richtung, wenn SDIO Low ist, ist Ugs = 3V und Rds klein und damit SDA auch Low (~0V).

Der BSS138 (T1) ist nur als SMD Version im SOT23 Gehäuse erhältlich. Wer sich das löten von SMD Bauteilen nicht

zutraut, kann auch eine fertige I2C Pegelwandlerplatine (Ebay) verwenden, die in

der Regel 4 Kanäle hat, von denen nur 2 benötigt werden.

Alternativ kann auch ein JFET J113 für T1 und eine zusätzliche Diode BAT43 (D2)

verwendet werden, wobei das Gate des J113 auf Masse liegt. Der J113 ist im TO92

Gehäuse erhältlich.

Als Antenne dient ein Stück dünnes, isoliertes Kabel von 0,3…1m Länge, je nach

Empfangsbedingungen.

Die Audioausgänge gehen über R10/C9 bzw. R11/C10 auf die Kopfhörerbuchse

SV6. Werden ausschließlich Kopfhörer mit einem Widerstand >32Ohm verwendet,

kann auf R10/R11 verzichtet werden. Über die Schaltkontakte von SV6 können die

Audiosignale bei abgezogenem Kopfhörer über die Buchsen SV7/SV8 an einen Leistungsverstärker geleitet werden

und/oder an die optionale interne Endstufe.

RDS Daten

Über das FM Signal werden auch diverse digitale Zusatzinformationen gesendet (RDS => Radio Data System).

Für dieses Projekt werden der Sendername (max. 8 Zeichen), Radiotext (Titel/Interpret, max. 64 Zeichen) und die

Zeitinformation verwendet.

Der Sendername wird in sehr kurzen Intervallen mit jeweils 4x2 Zeichen gesendet und ist damit schnell verfügbar.

Radiotext beinhaltet überwiegend den gesendeten Titel und Interpreten, aber auch andere Informationen zum Sender wie

Internetadresse oder Telefonnummer bis hin zu Werbung.

Die Verwendung der max. 64 Zeichen erfolgt je nach Sender unterschiedlich. Einige Sender nutzen die 64 Zeichen, um

lange Texte zu übertragen (z.B. Klassische Musik). Andere Sender nutzen 2x32 Zeichen im Wechsel, um z.B. den aktuellen

Titel in den ersten 32 Zeichen und den folgenden Titel in den anderen 32 Zeichen zu übertragen. Radiotext wird immer in

Blöcken mit 4 Zeichen gesendet.

Die Zeitinformation wird in der Regel im Abstand von einigen Minuten gesendet. Nach dem Einschalten der

Versorgungsspannung wird die interne Uhr im Mikrocontroller mit der ersten empfangenen Zeitinformation synchronisiert.

Die nächste Zeitinformation wird für die Verifizierung genutzt: stimmen empfangenes Datum, Stunde und Minute mit der

internen Uhr überein, wird das Datum und die Zeit für die Anzeige freigegeben und die Sekunde synchronisiert. Alle

folgenden Zeitinformationen werden in dieser Weise verifiziert. Dadurch werden falsche Zeitanzeigen weitestgehend

vermieden.

Die RDS Informationen werden in der unteren Zeile des Display nacheinander angezeigt: Sendername => Radiotext

Zeichen 1-16 + 17-32 => Radiotext Zeichen 33-48 + 49-64 => Wochentag/Datum => Uhrzeit.

Bedientasten / IR-Empfang

Die Bedienung erfolgt über die Bedientaster Ta1-Ta7 und/oder eine IR-Fernbedienung. Die Taster liegen an den Pins 22 (RB1) bis 28 (RB7) und werden durch interne Pull-Up Widerstände auf High gehalten. Wird ein Taster gedrückt, wird der entsprechende Eingang auf Masse gezogen und damit aktiviert. Über Ta1 (On/Off) wird zwischen Standby und Betrieb umgeschaltet. Mit Ta2 (Menü) wird das Menü aufgerufen, in dem einige Grundeinstellungen vorgenommen werden können, ein Sendersuchlauf durchgeführt werden kann und Sender manuell gespeichert bzw. gelöscht werden. Alle gewählten Einstellungen werden in dem internen EEPROM gespeichert und beim Einschalten des Gerätes geladen, d.h. das Gerät startet mit den zuletzt benutzten Einstellungen. Eine ausführliche Beschreibung findet sich in der Bedienungsanleitung im Downloadordner am Ende der Seite. Mit Ta3 (OK) wird im Normalbetrieb die Funktion der P+/- Tasten umgeschaltet zwischen Veränderung der Sender Nr. oder Veränderung der Frequenz. Im Menü Modus wird über die OK Taste die Auswahl bestätigt. Über Ta4/Ta5 (Vol-/+) wird die Lautstärke in 16 Stufen reduziert bzw. erhöht. Im Menü Modus wird über die Vol-/+ Tasten der jeweilige Wert verändert. Über Ta6/Ta7 (P-/+) wird die Sender Nr. oder die Frequenz reduziert bzw. erhöht. Im Menü Modus wird über die P-/+ Tasten der Cursor bewegt. Als IR-Empfänger wurde auf Grund der kleinen Bauform der TSOP4836 mit einer Empfangsfrequenz von 36KHz gewählt (IC3). Der IR-Empfänger liegt an Pin 21 (RB0) des PIC. Das Programm im PIC ist ausgelegt für den Empfang des RC5 Codes, der häufig von Phillips Geräten verwendet wird und in der Regel auf jeder Universalfernbedienung mehrfach vorhanden ist. Der Code besteht aus 3 Startbits, einer 5 Bit Geräteadresse (0-31) und dem 6 Bit Befehl (0-63). Die Ermittlung und Speicherung eines RC5 Codes ist ebenfalls in der Bedienungsanleitung beschrieben.

Display

Als Display wurde ein LCD Display EA DOGM162. Die Vorteile dieses Typs gegenüber anderen LCD Displays sind: - gute Lesbarkeit bei kleiner Baugröße - serielle Ansteuerung (nur 6 Leitungen zum Display erforderlich) - keine Spannung zur Kontrasteinstellung erforderlich (Kontrast kann über Befehle verändert werden) - Display und Hintergrundbeleuchtung getrennt, dadurch viele Kombinationen möglich. Für die Übertragung der Daten vom Mikrokontroller zum Display wird Pin13 von IC2 auf Low gelegt (Disp.:CS). Anschließend wird Pin16 (Disp.:RS) für einen Befehl auf Low, für Daten auf High gelegt und dann die 8 Bit Befehl/Daten seriell über Pin18 (clock) und Pin17 (data) an das Display gesendet.

Endstufe

Optional kann die vorgeschlagene Endstufe mit 2x 0,25W an 4 Ohm eingebaut werden, um z.B. externe Lautsprecher oder kleine interne Breitbänder anzuschließen. Für „normales“ Radiohören ist die Leistung vollkommen ausreichend. Für die Endstufe wurde der TDA2822 (IC5) gewählt, der mit 5V betrieben werden kann und nur wenige externe Bauteile benötigt. Für eine gute Wärmeableitung sollte der Chip direkt auf die Platine gelötet werden. Der TDA2822 hat eine feste Verstärkung von 40dB (100 fach). Mit dieser Verstärkung würde die Endstufe sehr schnell übersteuert, daher wird das Eingangssignal über die Spannungsteiler R14/R16 bzw. R15/R17 reduziert, sodass die resultierende Gesamtverstärkung ca. 13 beträgt. Die Ausgänge gehen über C13/C14 an die Lautsprecher bzw. an ein Lautsprecheranschlussterminal. Die Boucherot- oder Zobel Glieder R18/C15 bzw. R19/C16 dienen der Dämpfung hochfrequenter Schwingungen. Die Endstufe kann über den P-Kanal Mosfet T3 ein- bzw. ausgeschaltet werden. Im On Zustand beträgt der Drain-Source Widerstand ca. 0,026Ohm.

Aufbau der Elektronik

Ich habe die gesamte Schaltung auf Streifenrasterplatinen aufgebaut (siehe auch Sonstiges => Streifenrasterplatinen). Die Platine für das Display und die Taster sind mit Drahtwinkeln direkt mit der Hauptplatine verlötet. Die Frontplatte des Gehäuses ist durch eine1,5mm Aluminiumplatte ersetzt, da ich das Gehäuse schon mal verwendet hatte. Zusätzlich bringt die Aluminiumplatte deutlich mehr Stabilität. In den Ausschnitt für das Display ist eine 3mm Plexiglasscheibe eingesetzt. Die in der Stückliste aufgeführten Taster ragen nur ca. 0,5 mm aus der Frontplatte, daher würde ich empfehlen, die Taster mit einem Abstand von ca. 0,5-1,0 mm zur Platine einzulöten. Die beiden unteren Pins der Taster müssen sowohl mit der Platine für das Display als auch mit der Hauptplatine verlötet werden. Ich habe andere Taster (Reichelt: TASTER 3301B) verwendet und die Tasterknöpfe selbst gefertigt (wozu hat man sonst eine Drehbank im Keller…?) Das Platinenlayout, ein Bestückungsplan, eine Zeichnung für Leiterbahnunterbrechungen, sowie die Stückliste befinden sich im Download Ordner am Ende der Seite. Nachfolgend noch einige Fotos des Aufbaus.

Download

Der unten aufgeführte Ordner beinhaltet alle relevanten Dateien, die für den Nachbau benötigt werden (siehe auch Sonstiges => Zeichnungen). FM_Tuner_P16F876A.zip 18.12.21 Seite erstellt
RDS FM Tuner