Analýza schématu rádiového zapojení založená na RDA5807M

Toto schéma zapojení je Modul přijímače FM rádia postaveno kolem RDA5807M jako jádro integrovaného obvodu. Implementuje hlavně Příjem FM signálu, audio výstup a základní ovládací funkceNíže uvedená analýza je rozdělena na klíčové komponenty, funkční moduly a klíčové konstrukční parametry.

Schéma zapojení FM rádia RDA5807M

1. Funkce základních komponent a pinů

Jádro integrovaného obvodu: RDA5807M

Jedno RDA5807M je vysoce integrovaný integrovaný obvod pro přijímač FM rádia, který podporuje příjem FM vysílání a Sériové ovládání I2C / SDIONa základě schématu zapojení jsou níže shrnuty klíčové piny a jejich zapojení:

Název PINfunkcePropojená komponenta / síťPopis
ÚTĚKVýstup zvuku pravého kanáluPřímý výstup (bez zobrazených dalších komponent)Poskytuje analogový zvuk pravého kanálu
KLACEKAudio výstup levého kanáluPřímý výstup (bez zobrazených dalších komponent)Poskytuje analogový zvuk levého kanálu
RCLKPin hodinového signáluŽádné explicitní externí připojení (pravděpodobně interní synchronizace)Synchronizace interních hodin
VDDVstup napájeníNapájecí síť 3V33.3V DC napájení
GNDZeměGlobální síť GNDSpolečné uzemnění napájení a signálu
SDIOSériové datové vstupy/výstupyPin 3 (řídicí signál)Komunikace s MCU pro ladění, ovládání hlasitosti atd.
SCLKSériové hodinyPin 2 (hodinový signál)Hodinový signál pro komunikaci SDIO
FMINVstup FM signáluKolík 5Přijímá FM RF signál z antény
X1Vstup krystalového oscilátoru32.768 kHz krystalPoskytuje referenční hodiny pro stabilní provozní frekvenci

2. Rozdělení funkčních modulů

Napájecí modul 2.1

  • Vstupní napětí: 3.3V DC (regulované)
  • Filtrační komponenty:
    • C8 (0.1 µF), C9 (0.1 µF): Vysokofrekvenční oddělovací kondenzátory mezi VDD a GND, potlačující šum
    • C10 (22 µF): Objemový elektrolytický kondenzátor pro nízkofrekvenční filtraci a skladování energie
    • C26 (0.1 µF): Dodatečné oddělení pro další zlepšení stability napájení

Tato vícestupňová filtrace zajišťuje stabilní a tichý přívod energie k integrovanému obvodu FM přijímače.


2.2 Modul pro příjem FM signálu

  • Vstup signálu:
    • Jedno Vývod FMIN (vývod 5) připojuje se k externí FM anténě (prvek antény není ve schématu zapojení zobrazen)
    • Přijímá signály FM vysílání v 87-108 MHz kapela
  • Obvod krystalového oscilátoru:
    • A 32.768 kHz krystal (X1) poskytuje přesné referenční hodiny
    • Zajišťuje přesné ladění FM a zabraňuje posunu frekvence během výběru stanice

2.3 Řídicí a komunikační modul

  • Komunikační rozhraní:
    • SDIO (sériová data) + SCLK (sériové hodiny)
    • kompatibilní s I2C nebo podobné sériové komunikační protokoly
    • Používá se k propojení s externím MCU (např. mikrokontrolérem)
  • Pull-up rezistory:
    • R6 (10 kΩ) pro SDIO
    • R7 (10 kΩ) pro SCLK
    • Oba jsou propojeni s 3V3, čímž se zajistí stabilní logické úrovně a spolehlivá komunikace

2.4 Modul zvukového výstupu

  • Audio výstupy:
    • ÚTĚK: Analogový zvuk pravého kanálu
    • KLACEK: Analogový zvuk levého kanálu
  • Tyto výstupy mohou být:
    • Připojeno přímo k sluchátka
    • Připojen k reproduktory (poznámka: externí audio zesilovač je vyžadováno pro vyšší výkon)

2.5 Pomocný modul filtrování a porovnávání

  • Induktory:
    • L1, L2 (100 nH): Pravděpodobně se používá pro přizpůsobení impedance RF nebo vstupní filtraci na vstupu FM
    • Pomáhá snižovat odrazy signálu a zlepšovat citlivost příjmu
  • Kondenzátory:
    • C13 (100 pF), C14 (24 pF): Práce s induktory pro vytvoření LC filtrační síť
    • Potlačení vysokofrekvenčního rušení a čištění FM signálu
  • Základy:
    • Vícenásobné připojení GND indikuje globální společný základ designu
    • Snižuje šum a zlepšuje celkovou stabilitu obvodu

3. Klíčové parametry a konstrukční prvky

  • Provozní napětí: 3.3V
    • Plně kompatibilní s běžnými mikrokontroléry bez posunu úrovní
  • Frekvence krystalu: 32.768 kHz
    • Standardní referenční frekvence pro stabilní časování
  • Způsob ovládání: Sériové rozhraní SDIO + SCLK
    • Zjednodušené směrování, potřeba pouze dvě řídicí linky
  • Návrh filtrování:
    • Vícenásobné oddělovací kondenzátory pro napájení (0.1 µF + 22 µF)
    • LC filtr na RF vstupu pro silnou odolnost proti šumu
  • Audio výstup:
    • Dvoukanálový analogový zvuk (ROUT / LOUT)
    • Podporuje stereo přehrávání FM rádia

4. Scénáře aplikací a návrhy na rozšíření

Typické aplikace

  • Přenosná FM rádia
  • Chytré reproduktory s funkcí FM rádia
  • Systémy FM přijímačů řízené MCU

Možnosti rozšíření

  • Použijte tlačítko externí teleskopická anténa nebo anténa na plošný spoj pro zlepšení citlivosti příjmu
  • Přidat komentář zesilovač zvukového výkonu (např. LM386) na ROUT/LOUT pro řízení větších reproduktorů
  • Povolte pokročilé funkce pomocí ovládání MCU:
    • Automatické skenování stanic
    • Ukládání přednastavených kanálů
    • Digitální ovládání hlasitosti

5. Poznámky a bezpečnostní opatření k návrhu

  • Výkonová stabilita:
    • Zajistěte nízké zvlnění na 3.3V napájení, abyste zabránili šumu nebo nestabilnímu příjmu.
  • Základy:
    • Použijte pevný a konzistentní referenční bod země
    • Zabraňte rozdílům v potenciálu mezi uzemněním napájení a uzemněním audio, abyste předešli šumu
  • Impedanční přizpůsobení:
    • Anténa připojená k FMIN by měly být impedančně přizpůsobeny (obvykle 50Ω) pro optimální příjem
  • Výběr komponent:
    • Použití vysoce přesný krystal 32.768 kHz
    • Preferujte Kondenzátory NP0 / C0G pro RF a časovací součástky díky vynikající stabilitě

Programový kód rádiového obvodu

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

Zanechat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *