Dieser Schaltplan ist ein FM-Radioempfängermodul gebaut um die RDA5807M als Kern-IC. Es implementiert hauptsächlich FM-Signalempfang, Audioausgabe und grundlegende SteuerungsfunktionenDie nachfolgende Analyse ist unterteilt in Kernkomponenten, Funktionsmodule und wichtige Designparameter.

1. Kernkomponenten und Pin-Funktionen
Kern-IC: RDA5807M
Das RDA5807M ist ein hochintegrierter FM-Radioempfänger-IC, der den FM-Rundfunkempfang unterstützt und I2C / SDIO serielle SteuerungBasierend auf dem Schaltplan sind die wichtigsten Pins und ihre Verbindungen nachfolgend zusammengefasst:
| Pin-Name | Funktion | Verbundene Komponente / Netz | Beschreibung |
|---|---|---|---|
| ROUT | Audioausgang des rechten Kanals | Direkter Ausgang (keine zusätzlichen Bauteile dargestellt) | Bietet analogen Audio-Eingang für den rechten Kanal |
| LÜMMEL | Audioausgang des linken Kanals | Direkter Ausgang (keine zusätzlichen Bauteile dargestellt) | Bietet analogen Audio-Kanal für den linken Kanal |
| RCLK | Taktsignalanschluss | Keine explizite externe Verbindung (wahrscheinlich interne Synchronisierung) | Interne Uhrsynchronisation |
| VDD | Stromversorgungseingang | 3V3-Stromnetz | 3.3V Gleichstromversorgung |
| GND | Boden | Globales GND-Netz | Gemeinsame Strom- und Signalmasse |
| SDIO | Serielle Daten-E/A | Pin 3 (Steuersignal) | Kommunikation mit dem Mikrocontroller für Abstimmung, Lautstärkeregelung usw. |
| SCLK | Serielle Uhr | Pin 2 (Taktsignal) | Taktsignal für die SDIO-Kommunikation |
| FMIN | FM-Signaleingang | Stift 5 | Empfängt FM-HF-Signal von der Antenne |
| X1 | Quarzoszillatoreingang | 32.768 kHz Quarz | Bietet einen Referenztakt für einen stabilen Frequenzbetrieb |
2. Aufschlüsselung der Funktionsmodule
2.1-Netzteilmodul
- Eingangsspannung: 3.3 V DC (geregelt)
- Filterkomponenten:
- C8 (0.1µF), C9 (0.1µF): Hochfrequente Entkopplungskondensatoren zwischen VDD und GND zur Unterdrückung von Netzrauschen
- C10 (22µF): Elektrolytkondensator für Niederfrequenzfilterung und Energiespeicherung
- C26 (0.1µF): Zusätzliche Entkopplung zur weiteren Verbesserung der Leistungsstabilität
Diese mehrstufige Filterung gewährleistet stabile und rauscharme Stromversorgung zum FM-Empfänger-IC.
2.2 FM-Signalempfangsmodul
- Signaleingang:
- Das FMIN-Pin (Pin 5) Anschluss an eine externe FM-Antenne (Antennenelement nicht im Schaltplan dargestellt)
- Empfängt FM-Rundfunksignale im 87-108 MHz Band
- Quarzoszillatorschaltung:
- A 32.768 kHz Quarz (X1) bietet eine genaue Referenzuhr
- Gewährleistet präzises FM-Tuning und verhindert Frequenzdrift bei der Senderauswahl.
2.3 Steuerungs- und Kommunikationsmodul
- Kommunikationsinterface:
- SDIO (Serielle Daten) + SCLK (Serieller Takt)
- Kompatibel mit I2C oder ähnliche serielle Kommunikationsprotokolle
- Dient zur Anbindung an einen externen Mikrocontroller (z. B. MCU).
- Pull-up-Widerstände:
- R6 (10kΩ) für SDIO
- R7 (10kΩ) für SCLK
- Beide sind miteinander verbunden 3V3Gewährleistung stabiler Logikpegel und zuverlässiger Kommunikation
2.4 Audioausgangsmodul
- Audioausgänge:
- ROUT: Analoger Audiokanal rechts
- LÜMMEL: Analoger Audiokanal (linker Kanal)
- Diese Ausgaben können sein:
- Direkt verbunden mit Kopfhörer
- Angeschlossen Lautsprecher (Hinweis: ein externer Audio-Verstärker (wird für eine höhere Ausgangsleistung benötigt)
2.5 Hilfsfilter- und Abgleichmodul
- Induktivitäten:
- L1, L2 (100 nH): Wird wahrscheinlich zur HF-Impedanzanpassung oder Eingangsfilterung am FM-Eingangsende verwendet.
- Hilft dabei, Signalreflexionen zu reduzieren und die Empfangsempfindlichkeit zu verbessern.
- Kondensatoren:
- C13 (100 pF), C14 (24 pF): Arbeiten Sie mit Induktoren, um eine LC-Filternetzwerk
- Hochfrequente Störungen unterdrücken und das FM-Signal reinigen
- Erdung:
- Mehrere GND-Verbindungen deuten auf ein globales gemeinsames Grundlagendesign
- Reduziert Rauschen und verbessert die Gesamtstabilität der Schaltung.
3. Wichtigste Parameter und Konstruktionsmerkmale
- Betriebsspannung: 3.3V
- Vollständig kompatibel mit gängigen Mikrocontrollern ohne Pegelanpassung
- Kristallfrequenz: 32.768 kHz
- Industriestandard-Referenzfrequenz für stabile Taktung
- Kontroll-Methode: SDIO + SCLK serielle Schnittstelle
- Vereinfachtes Routing, nur zwei Steuerleitungen erforderlich
- Filterdesign:
- Mehrere Entkopplungskondensatoren (0.1µF + 22µF)
- LC-Filterung am HF-Eingang für hohe Störfestigkeit
- Audioausgang:
- Zweikanal-Analogaudio (ROUT / LOUT)
- Unterstützt Stereo-FM-Wiedergabe
4. Anwendungsszenarien und Erweiterungsvorschläge
Typische Anwendungen
- Tragbare FM-Radios
- Intelligente Lautsprecher mit FM-Radiofunktion
- MCU-gesteuerte FM-Empfängersysteme
Erweiterungsoptionen
- Benutze ein externe Teleskopantenne oder Leiterplattenantenne zur Verbesserung der Empfangsempfindlichkeit
- Fügen Sie ein ein Audio-Leistungsverstärker (z. B. LM386) an ROUT/LOUT zum Ansteuern größerer Lautsprecher
- Erweiterte Funktionen über die MCU-Steuerung aktivieren:
- Automatische Stationsabtastung
- Voreingestellter Kanalspeicher
- Digitale Lautstärkeregelung
5. Hinweise und Vorsichtsmaßnahmen für die Konstruktion
- Leistungsstabilität:
- Um Audiostörungen oder Empfangsprobleme zu vermeiden, sollte die Restwelligkeit der 3.3-V-Versorgung gering sein.
- Erdung:
- Verwenden Sie einen festen und gleichmäßigen Bodenbezug
- Vermeiden Sie potenzielle Differenzen zwischen Strommasse und Audiomasse, um Störungen zu verhindern.
- Impedanzanpassung:
- Die Antenne angeschlossen an FMIN sollte impedanzangepasst sein (typischerweise 50Ωfür optimalen Empfang
- Komponentenauswahl:
- Verwenden hochpräziser 32.768-kHz-Quarz
- Bevorzugen NP0 / C0G Kondensatoren für HF- und zeitbezogene Komponenten aufgrund überlegener Stabilität
Programmcode für Funkschaltungen
RDA5807.H
/*
**==============================================================================
** RDA5807.H:
**
** Description:
**
**==============================================================================
*/
#ifndef __RDA5807__
#define __RDA5807__
//------------------------------------------------------------------------------
#ifdef RDA5807_GLOBALS
#define RDA5807_EXT
#else
#define RDA5807_EXT extern
#endif // RDA5807_GLOBALS
//------------------------------------------------------------------------------
//==============================================================================
void RDA5807Init(void);
//------------------------------------------------------------------------------
RDA5807_EXT uint16_t g_nRDA5807Channel;
//------------------------------------------------------------------------------
void RDA5807Setup(void);
void RDA5807I2CWrite(uint8_t * pucData, int nLength);
void RDA5807SetChannel(float freq);
//==============================================================================
// END OF THE FILE : RDA5807.H
//------------------------------------------------------------------------------
#endif // __RDA5807__
/*
**==============================================================================
** RDA5807.C:
**
**==============================================================================
*/
//------------------------------------------------------------------------------
#include "stm32f0xx_hal.h"
#include "stm32f0xxa.h"
#define RDA5807_GLOBALS 1 // Define the global variables
#include "RDA5807.H"
//------------------------------------------------------------------------------
#define RDA5807_BOOT_LENGTH 12
uint8_t RDA5807_boot_config[] = {
0xc1, 0x03, // Register 0x2
0x00, 0x00, // Register 0x3
0x0a, 0x00, // Register 0x4
0x88, 0x0f, // Register 0x5
0x00, 0x00, // Register 0x6
0x42, 0x02, // Register 0x7
};
//------------------------------------------------------------------------------
#define RDA5807_TUNE_CONFIG_LENGTH 4
uint8_t RDA5807_tune_config[] = {
0xc0, 0x01, // Register 2
0x00, 0x00, // Reigster 3
};
void RDA5807SetTuneConfig(uint16_t channel) {
RDA5807_tune_config[2] = (uint8_t)(channel >> 2);
RDA5807_tune_config[3] = (uint8_t)(((channel & 0x3) << 6) | 0x10);
}
//------------------------------------------------------------------------------
void RDA5807Init(void) {
/* Assumin band starts at 87.0MHz(per setting below)
* and channel spaceing of 100kHz(0.1Mhz)(per settings below)
* then channel can be derive as floowins:
* channel = (<desired freq in MHz> - 87.0) / 0.1
*
* which is ave as:
* <10x desired ferq in MHz> - 870
*/
g_nRDA5807Channel = 6;
RDA5807Setup();
}
//------------------------------------------------------------------------------
extern I2C_HandleTypeDef hi2c1;
void RDA5807I2CWrite(uint8_t * pucData, int nLength) {
HAL_I2C_Master_Transmit(&hi2c1, 0x20, pucData, nLength, 10);
}
//------------------------------------------------------------------------------
void RDA5807Setup(void) {
RDA5807I2CWrite(RDA5807_boot_config, RDA5807_BOOT_LENGTH);
RDA5807SetTuneConfig(g_nRDA5807Channel);
RDA5807I2CWrite(RDA5807_tune_config, RDA5807_TUNE_CONFIG_LENGTH);
}
void RDA5807SetChannel(float freq) {
g_nRDA5807Channel = (int)((freq - 87.0) * 10.0 + 0.5);
RDA5807SetTuneConfig(g_nRDA5807Channel);
RDA5807I2CWrite(RDA5807_tune_config, RDA5807_TUNE_CONFIG_LENGTH);
}
//==============================================================================
// END OF THE FILE : RDA5807.C
//------------------------------------------------------------------------------




