Radioschematiskt diagramanalys baserat på RDA5807M

Detta kretsschema är ett FM-radiomottagarmodul byggd runt RDA5807M som kärn-IC. Den implementerar huvudsakligen FM-signalmottagning, ljudutgång och grundläggande kontrollfunktionerAnalysen nedan är indelad i kärnkomponenter, funktionella moduler och viktiga designparametrar.

Schematiskt diagram för FM-radio RDA5807M

1. Kärnkomponent och pinfunktioner

Kärnkrets: RDA5807M

Ocuco-landskapet RDA5807M är en högintegrerad FM-radiomottagare-IC som stöder mottagning av FM-sändningar och I2C / SDIO seriell styrningBaserat på schemat sammanfattas nyckelstiften och deras anslutningar nedan:

Pin-namnFunktion Ansluten komponent / NätBESKRIVNING
VILD FLYKTHöger kanals ljudutgångDirektutgång (inga extra komponenter visas)Ger analogt ljud i höger kanal
DRUMMELVänster kanals ljudutgångDirektutgång (inga extra komponenter visas)Ger analogt ljud för vänster kanal
RCLKKlocksignalstiftIngen explicit extern anslutning (troligen intern synkronisering)Intern klocksynkronisering
VDDIngång för strömförsörjning3V3 strömnät3.3V DC strömförsörjning
GNDMarkenGlobalt GND-nätGemensam kraft- och signaljord
SDIOSeriell data-I/OStift 3 (styrsignal)Kommunikation med MCU för finjustering, volymkontroll etc.
SCLKSeriell klockaStift 2 (klocksignal)Klocksignal för SDIO-kommunikation
FMINFM-signalingångStift 5Tar emot FM RF-signal från antennen
X1Kristalloscillatoringång32.768 kHz kristallGer referensklocka för stabil frekvensdrift

2. Funktionell moduluppdelning

2.1 Strömförsörjningsmodul

  • Inspänning: 3.3V DC (reglerad)
  • Filtrera komponenter:
    • C8 (0.1µF), C9 (0.1µF): Högfrekventa avkopplingskondensatorer mellan VDD och GND, vilket undertrycker effektbrus
    • C10 (22µF): Bulkelektrolytkondensator för lågfrekvensfiltrering och energilagring
    • C26 (0.1µF): Ytterligare frikoppling för att ytterligare förbättra effektstabiliteten

Denna flerstegsfiltrering säkerställer stabil och tystgående strömförsörjning till FM-mottagarens IC.


2.2 FM-signalmottagningsmodul

  • Signalingång:
    • Ocuco-landskapet FMIN-stift (stift 5) ansluts till en extern FM-antenn (antennelementet visas inte i schemat)
    • Tar emot FM-sändningssignaler i 87-108 MHz Bandet
  • Kristalloscillatorkrets:
    • A 32.768 kHz kristall (X1) ger en noggrann referensklocka
    • Säkerställer exakt FM-inställning och förhindrar frekvensavvikelse vid stationsval

2.3 Styr- och kommunikationsmodul

  • Kommunikationsgränssnitt:
    • SDIO (seriell data) + SCLK (seriell klocka)
    • Kompatibel med I2C eller liknande seriella kommunikationsprotokoll
    • Används för att ansluta till en extern MCU (t.ex. mikrokontroller)
  • Pull-up-motstånd:
    • R6 (10 kΩ) för SDIO
    • R7 (10 kΩ) för SCLK
    • Båda är kopplade till 3V3, vilket säkerställer stabila logiknivåer och tillförlitlig kommunikation

2.4 Ljudutgångsmodul

  • Ljudutgångar:
    • VILD FLYKT: Högerkanalig analog ljudkanal
    • DRUMMEL: Vänster kanals analoga ljud
  • Dessa utgångar kan vara:
    • Ansluten direkt till hörlurar
    • Ansluten till högtalare (obs: en extern ljudförstärkare krävs för högre effekt)

2.5 Hjälpfiltrerings- och matchningsmodul

  • Indikatorer:
    • L1, L2 (100 nH): Används troligen för RF-impedansmatchning eller ingångsfiltrering vid FM-frontänden
    • Hjälper till att minska signalreflektion och förbättra mottagningskänsligheten
  • Kondensatorer:
    • C13 (100 pF), C14 (24 pF): Arbeta med induktorer för att bilda en LC-filternätverk
    • Dämpa högfrekventa störningar och rengöra FM-signalen
  • Grundstötning:
    • Flera GND-anslutningar indikerar en global gemensam grunddesign
    • Minskar brus och förbättrar den totala kretsstabiliteten

3. Viktiga parametrar och designfunktioner

  • Driftspänning: 3.3V
    • Helt kompatibel med vanliga mikrokontroller utan nivåförskjutning
  • Kristallfrekvens: 32.768 kHz
    • Branschstandardreferensfrekvens för stabil timing
  • Kontroll metod: SDIO + SCLK seriellt gränssnitt
    • Förenklad routing, endast två styrledningar krävs
  • Filtreringsdesign:
    • Flera effektavkopplingskondensatorer (0.1 µF + 22 µF)
    • LC-filtrering på RF-frontänden för stark brusimmunitet
  • Ljudutgång:
    • Dubbelkanaligt analogt ljud (ROUT / LOUT)
    • Stöder FM-stereouppspelning

4. Tillämpningsscenarier och förslag på expansion

Typiska användningsområden

  • Bärbara FM-radioapparater
  • Smarta högtalare med FM-radiofunktion
  • MCU-styrda FM-mottagarsystem

Expansionsalternativ

  • Använd en extern teleskopantenn eller PCB-antenn för att förbättra mottagningskänsligheten
  • Lägg till en förstärkare (t.ex. LM386) till ROUT/LOUT för att driva större högtalare
  • Aktivera avancerade funktioner via MCU-kontroll:
    • Automatisk stationssökning
    • Förinställd kanallagring
    • Digital volymkontroll

5. Designanmärkningar och försiktighetsåtgärder

  • Effektstabilitet:
    • Se till att 3.3 V-matningen har låg rippel för att undvika ljudbrus eller instabil mottagning.
  • Grundstötning:
    • Använd en stabil och konsekvent markreferens
    • Undvik potentiella skillnader mellan matningsjord och ljudjord för att förhindra brus
  • Impedansmatchning:
    • Antennen som är ansluten till FMIN bör vara impedansmatchade (vanligtvis 50Ω) för optimal mottagning
  • Komponentval:
    • Använd hög noggrann 32.768 kHz kristall
    • Föredra NP0/C0G-kondensatorer för RF- och timingrelaterade komponenter tack vare överlägsen stabilitet

Radiokretsprogramkod

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
//------------------------------------------------------------------------------

Lämna en kommentar

E-postadressen publiceras inte. Obligatoriska fält är markerade *