Analyse des Funkschaltplans basierend auf dem RDA5807M

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.

Schaltplan des FM-Radios RDA5807M

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-NameFunktionVerbundene Komponente / NetzBeschreibung
ROUTAudioausgang des rechten KanalsDirekter Ausgang (keine zusätzlichen Bauteile dargestellt)Bietet analogen Audio-Eingang für den rechten Kanal
LÜMMELAudioausgang des linken KanalsDirekter Ausgang (keine zusätzlichen Bauteile dargestellt)Bietet analogen Audio-Kanal für den linken Kanal
RCLKTaktsignalanschlussKeine explizite externe Verbindung (wahrscheinlich interne Synchronisierung)Interne Uhrsynchronisation
VDDStromversorgungseingang3V3-Stromnetz3.3V Gleichstromversorgung
GNDBodenGlobales GND-NetzGemeinsame Strom- und Signalmasse
SDIOSerielle Daten-E/APin 3 (Steuersignal)Kommunikation mit dem Mikrocontroller für Abstimmung, Lautstärkeregelung usw.
SCLKSerielle UhrPin 2 (Taktsignal)Taktsignal für die SDIO-Kommunikation
FMINFM-SignaleingangStift 5Empfängt FM-HF-Signal von der Antenne
X1Quarzoszillatoreingang32.768 kHz QuarzBietet 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
//------------------------------------------------------------------------------

Hinterlasse einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *