Analizo de Radio-Skemdiagramo Bazita sur RDA5807M

Ĉi tiu cirkvita skemo estas FM-radioricevilo-modulo konstruita ĉirkaŭ la RDA5807M kiel la kerna IC. Ĝi ĉefe efektivigas FM-signalricevo, aŭdio-eligo kaj bazaj kontrolfunkciojLa analizo sube estas dividita en kernaj komponantoj, funkciaj moduloj, kaj ŝlosilaj dezajnaj parametroj.

Skema diagramo de FM Radio RDA5807M

1. Kerna Komponanto kaj Pinglofunkcioj

Kerna IC: RDA5807M

la RDA5807M estas tre integra FM-radioricevilo-integrato, kiu subtenas FM-elsendan ricevon kaj I2C / SDIO seria kontroloSurbaze de la skemo, la ŝlosilaj stiftoj kaj iliaj konektoj estas resumitaj sube:

Pingla NomofunkcioKonektita Komponanto / RetoPriskribo
VENKODekstra-kanala aŭdio-eligoRekta eligo (neniuj ekstraj komponantoj montritaj)Provizas dekstra-kanalan analogan aŭdion
BUTULOMaldekstra-kanala aŭdio-eligoRekta eligo (neniuj ekstraj komponantoj montritaj)Provizas maldekstra-kanalan analogan aŭdion
RCLKHorloĝa signala stiftoNeniu eksplicita ekstera konekto (verŝajne interna sinkronigo)Interna horloĝsinkronigado
VDDPotenca provizo enigo3V3 potenca reto3.3V DC-nutrado
GNDteroTutmonda GND-retoKomuna potenco kaj signala tero
SDIOSeria datuma I/OStifto 3 (kontrola signalo)Komunikado kun MCU por agordado, laŭtoreguligo, ktp.
SCLKSeria horloĝoStifto 2 (horloĝsignalo)Horloĝsignalo por SDIO-komunikado
FMINFM-signala enigoPinglo 5Ricevas FM RF-signalon de anteno
X1Kristala oscilatora enigo32.768 kHz kristaloProvizas referencan horloĝon por stabila frekvenca operacio

2. Funkcia Modula Analizo

2.1 Elektroproviza Modulo

  • Eniro Tensio: 3.3V DC (reguligita)
  • Filtrilaj Komponentoj:
    • C8 (0.1µF), C9 (0.1µF): Altfrekvencaj malkuplaj kondensiloj inter VDD kaj GND, subpremante potencobruon
    • C10 (22µF): Groca elektroliza kondensilo por malaltfrekvenca filtrado kaj energiakumulado
    • C26 (0.1µF): Plia malkuplado por plue plibonigi potencostabilecon

Ĉi tiu plurŝtupa filtrado certigas stabila kaj malbrua potenco-liverado al la FM-ricevilo-integrato.


2.2 FM-Signala Riceva Modulo

  • Signala Enigo:
    • la FMIN-stifto (Stifto 5) konektiĝas al ekstera FM-anteno (antena elemento ne montrita en la skemo)
    • Ricevas FM-elsendajn signalojn en la 87–108 MHz bando
  • Kristala Oscilatora Cirkvito:
    • A 32.768 kHz-kristalo (X1) provizas precizan referenchorloĝon
    • Certigas precizan FM-agordon kaj malhelpas frekvencan drivon dum stacia elekto

2.3 Kontrola kaj Komunikada Modulo

  • Komunikado Interfaco:
    • SDIO (Seriaj Datumoj) + SCLK (Seria Horloĝo)
    • kongrua kun I2C aŭ similaj seriaj komunikaj protokoloj
    • Uzata por interagi kun ekstera mikroregilo (ekz., mikroregilo)
  • Rezistiloj por tiro:
    • R6 (10kΩ) por SDIO
    • R7 (10kΩ) por SCLK
    • Ambaŭ estas konektitaj al 3V3, certigante stabilajn logikajn nivelojn kaj fidindan komunikadon

2.4 Aŭdio-eliga modulo

  • Aŭdio-eligoj:
    • VENKO: Dekstra-kanala analoga aŭdio
    • BUTULO: Maldekstra-kanala analoga aŭdio
  • Ĉi tiuj eligoj povas esti:
    • Rekte konektita al aŭdiloj
    • Konektita al parolantoj (noto: ekstera aŭdio-amplifilo estas necesa por pli alta povumo)

2.5 Helpa Filtrado kaj Kongruiga Modulo

  • Induktiloj:
    • L1, L2 (100 nH): Verŝajne uzata por RF-impedanca akordigo aŭ eniga filtrado ĉe la FM-antaŭa finaĵo
    • Helpas redukti signalreflekton kaj plibonigi ricevan sentemon
  • Kondensiloj:
    • C13 (100 pF), C14 (24 pF): Laboru kun induktiloj por formi LC-filtrila reto
    • Subpremu altfrekvencan interferon kaj purigu la FM-signalon
  • bazanta:
    • Pluraj GND-konektoj indikas tutmonda komuna bazo-dezajno
    • Reduktas bruon kaj plibonigas la ĝeneralan cirkvitan stabilecon

3. Ŝlosilaj Parametroj kaj Dezajnaj Trajtoj

  • Mastruma tensio: 3.3V
    • Plene kongrua kun ĉefaj mikroregiloj sen niveloŝanĝo
  • Kristala Frekvenco: 32.768 kHz
    • Industri-norma referenca frekvenco por stabila tempigo
  • Kontrola Metodo: SDIO + SCLK seria interfaco
    • Simpligita vojigo, nur du stiraj linioj necesas
  • Filtrada Dezajno:
    • Multoblaj potenco-malkuplaj kondensiloj (0.1µF + 22µF)
    • LC-filtrado ĉe la RF-antaŭa finaĵo por forta bruimuneco
  • Aŭdio Eligo:
    • Du-kanala analoga aŭdio (ROUT / LOUT)
    • Subtenas sterean FM-reludigon

4. Aplikaĵaj Scenaroj kaj Vastigaj Sugestoj

Tipaj Aplikoj

  • Porteblaj FM-radioj
  • Inteligentaj laŭtparoliloj kun FM-radiofunkcio
  • MCU-kontrolitaj FM-ricevilsistemoj

Vastiĝaj Elektoj

  • Uzu an ekstera teleskopa anteno aŭ PCB-anteno plibonigi ricevan sentemon
  • Aldoni aŭda potencamplifilo (ekz., LM386) al ROUT/LOUT por funkciigi pli grandajn laŭtparolilojn
  • Ebligi progresintajn funkciojn per MCU-kontrolo:
    • Aŭtomata stacia skanado
    • Antaŭdifinita kanala stokado
    • Cifereca laŭtoregilo

5. Dezajnaj Notoj kaj Antaŭzorgoj

  • Potenca Stabileco:
    • Certigu malaltan ondeton ĉe la 3.3V-provizo por eviti aŭdan bruon aŭ malstabilan ricevon.
  • bazanta:
    • Uzu solidan kaj koheran grundan referencon
    • Evitu eblajn diferencojn inter la elektra tero kaj la aŭda tero por preventi bruon.
  • Impedancia Kongruo:
    • La anteno konektita al FMIN devus esti impedanc-kongruigita (tipe 50Ω) por optimuma ricevo
  • Elekto de komponantoj:
    • Uzu a alt-preciza 32.768 kHz kristalo
    • Prefere NP0 / C0G kondensatoroj por RF kaj tempigaj komponantoj pro supera stabileco

Radiocirkvita programkodo

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

Lasu komenton

Via retpoŝta adreso ne estos publikigita. Bezonata kampoj estas markitaj *