Inhaltsverzeichnis
Motivation
Aufbau
Tuner
Antenne
Arduino Pro Mini
Audio-Endverstärker
Display
Platine
Schaltplan
Software
Mechanik
Test mit RDS Spy
Downloads
Motivation
Das UKW-Radio aus dem 1. Band bekommt eine komplett neue Arduino gesteuerte Elektronik mit RDS-Funktion.
Aufbau
Ein Arduino Pro Mini übernimmt die Steuerung des UKW Receivers Si4703 und eines OLED-Displays. Bedienelemente für Senderabstimmung und Lautstärke sind Rotary-Switches. Um best mögliche Störungsfreiheit zu erzielen, wird jede Baugruppe mit einem eigenen 3,3V-Spannungsregler versorgt und die Masse sternförmig angeschlossen. Der Audio-
Leistungsverstärker liefert ca. 5W an den Visaton Lautsprecher FR8JS-8.
Die neuen Features:
Sendersuchlauf (Rotary Switch)
Sender speichern (2x Druck auf die Achse des Rotary Switches)
gespeicherten Sender holen (1x Druck auf Achse des Rotary Switches)
Die Empfindlichkeit beträgt ca. 1,1µV (TDA7021T: 4µV)
Feldstärke-Anzeige (Symbol, Wert und LED)
ausreichende Feldstärke für RDS ca. 15µV
Frequenz gespeicherte Station
Frequenz aktuelle Station
kein Rauschen zwischen den Stationen
Lautstärke-Symbol
Lautstärke (Rotary Switch)
Mute alternierend (1x Druck auf die Achse des Rotary Switches)
Tuner
Eingesetzt wird ein Breakout des Si4703 von SOLID. Das hat den Vorteil, dass man den Chip mit seinem sehr engen Pitch nicht selbst anlöten muss. Außerdem ist schon die Beschaltung und ein Kopfhörer-Verstärker mit Audio-Buchse vorhanden. Die Kontrolle von Lautstärke,
Sendereinstellung und RDS erfolgt über die I2C-Schnittstelle. Für V11 werden R6 und R8 bestückt, R7 und R9 für V13.
Si4703 |
Antenne
Direkt am Si4703 Audio-Output wird ein Audio-Splitter angeschlossen. An einer Buchse wird ein ganz normales Audio-Kabel von 1 m Länge mit Klinkensteckern als Antenne eingesteckt und an der anderen Buchse ein kurzes Audio-Kabel als Verbindung zur Hauptplatine. Mit der Lage und Länge des langen Antennen-Audiokabels kann dann in Verbindung mit der Feldstärkeanzeige experimentiert werden.
Arduino Pro Mini
Dieser Arduino wurde gewählt, weil er mit 3,3V betrieben wird. Somit ist kein Einsatz von Pegelwandlern notwendig. Die Programmierung erfolgt über den Arduino Nano, wie im Kapitel 7 beschrieben. Sollte das Programm in einer Schleife stehen bleiben, sorgt ein externer
Watchdog (555) für einen Reset.
Audio-Endverstärker
Zum Einsatz kommt ein analoger Chip TDA8946J. Er bietet einen sehr niedrigen Klirrfaktor von 0,03%, einen Ruhestrom vom 28 mA und 2x 15W Ausgangsleistung (an 8 Ohm bei VCC 18V). Da nur ein Kanal benutzt und er nur mit 12V betrieben wird, kommt er bei normaler Lautstärke ohne zusätzliche Kühlung aus. Der BTL-Ausgang erübrigt große Koppelkondensatoren. Um einen Ein- oder Ausschaltknacks zu vermeiden, wird der Mute-Eingang mit dem Arduino gesteuert.
Display
Das verwendete 2.42” OLED hat eine Auflösung von 128x64 Pixel und bietet einen tollen Kontrast (schwarz ist wirklich schwarz). Controller ist der SSD1309. Hervorragende Unterstützung gibt es durch die GNU-Bibliotheken von olikraus (u8g2).
Display aktiv |
Bedeutung der Display-Informationen:
oberste Zeile: RDS-Information
links darunter: Feldstärke der eingestellten Station
Punkt über der Trennlinie: ausreichende Feldstärke für RDS
links unter der Trennlinie: Symbol für die Lautstärke und Mute
rechts daneben: Feldstärke als dynamisches Symbol
rechts daneben: gespeicherte Station
rechts daneben: aktuelle Station
Platine
Der Schaltplan und die Leiterplatte wurden mit fritzing erstellt. Der angeschlossene Leiterplattenhersteller kann die .fzz Datei direkt verarbeiten und liefert kostengünstige und qualitativ hochwertige Platinen. Wahlweise können die Lötflächen vergoldet sein (sehr zu empfehlen). Problemlos kann automatisch eine durchgehende Massefläche erzeugt werden. Dies erhöht die Störsicherheit wesentlich. Auch kann ein 2-seitiger Bestückungsdruck ausgewählt werden.
Platine Lötseite |
Platine Bestückungsseite Schaltplan |
Schaltplan links |
Schaltplan rechts |
Software
Das Programm wurde in der Arduino IDE 1.8.5 erstellt. Die Werte für die Rotary Switches und die RDS-Daten (nur rdsname) werden ständig in einer Loop abgefragt. Ebenso wird der externe Watchdog (7555) in dieser Loop nachgetriggert. In der Init-Phase wird der
MODE-Eingang des TDA8946J zur Pop-Unterdrückung ca. 2 s mit Low angesteuert (A1 des Nano über Transisitor).
Folgende GNU-Bibliotheken werden verwendet:
Rotary, Buxtronix, Rotary.h
ClickButton, marcobrianza, ClickButton.h
OLED, olikraus U8g2lib
RDS, brent boren, SparkFunSi4703.h
Der Startbildschirm ist eine Zeichnung des Autors und wurde in Gimp nach .xbm exportiert. Aus Speicherplatzgründen wurden nur einfache Schriften (_tr) ausgewählt. Lautstärke und Station werden bei jeder Aktion in das integrierte EEPROM gespeichert. Beim Wiedereinschalten werden diese Werte als Init wieder geladen. Beim Drücken des Rotary Switch Volume alterniert Mute. Bei Doppelclick Rotary Switch Seek wird die aktuelle Station abgespeichert und bei einfachem Click wieder aus dem Speicher geholt.
Mechanik
Die neue Elektronik mit FreeCAD virtuell eingebaut.
Assembly Holzgehäuse |
Test mit RDS Spy
Ein erster Funktionstest kann mit dem freien PC-Programm RDS Spy erfolgen. Dazu wird der Si4703 über einen Level Shifter mit einem Arduino Nano verbunden (per Jumper-Kabel). Die Programmierung des Arduino mit Si4703 RDS Spy.ino erfolgt über USB. Als Antenne wird einfach ein Kopfhörer über Kabel angeschlossen. Zunächst kann der serielle Monitor der Arduino IDE eingeschaltet werden. Die Baudrate wird dabei auf 19200 Baud eingestellt. Dann meldet sich der Si4703. Die Frequenz der Station und die Lautstärke können mit Senden ausgegeben werden. Nun kann der serielle Monitor wieder geschlossen werden. Nach dem Öffnen des RDS Spy wird RDS Source auf ASCII G Protocol, Connection Type auf RS232/USB und der COM Port auf den gleichen Wert wie für die Arduino IDE eingestellt. Jetzt kann die Frequenz gewählt und mit Tune übernommen werden. Im Kopfhörer sollte man jetzt den Sender hören. Gleichzeitig erscheinen nun, bei genügender Feldstärke, die verschiedenen Protokolle (z. B. Sendernamen etc.). Als optische Kontrolle flackert beim Nano die rote LED.
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.