Ta shematski diagram vezja je Modul FM radijskega sprejemnika zgrajeno okoli RDA5807M kot osrednji integrirani vezje. V glavnem izvaja Sprejem FM signala, zvočni izhod in osnovne funkcije upravljanjaSpodnja analiza je razdeljena na ključne komponente, funkcionalni moduli in ključni parametri zasnove.

1. Funkcije osnovnih komponent in pinov
Jedrno integrirano vezje: RDA5807M
Naš RDA5807M je visoko integrirano integrirano vezje za sprejem FM radia, ki podpira sprejem FM oddaj in Serijsko krmiljenje I2C / SDIONa podlagi sheme so ključni zatiči in njihove povezave povzeti spodaj:
| Pripnite ime | funkcija | Povezana komponenta / omrežje | Opis |
|---|---|---|---|
| POT | Zvočni izhod desnega kanala | Neposredni izhod (brez prikazanih dodatnih komponent) | Zagotavlja analogni zvok desnega kanala |
| LUTA | Zvočni izhod levega kanala | Neposredni izhod (brez prikazanih dodatnih komponent) | Zagotavlja analogni zvok levega kanala |
| RCLK | Pin signala ure | Ni eksplicitne zunanje povezave (verjetno notranja sinhronizacija) | Sinhronizacija notranje ure |
| VDD | Vhod za napajanje | 3V3 napajalno omrežje | 3.3V DC napajalnik |
| GND | Igrišče | Globalna GND mreža | Skupna napajalna in signalna ozemljitev |
| SDIO | Serijski podatkovni vhod/izhod | Pin 3 (krmilni signal) | Komunikacija z MCU za uglaševanje, nadzor glasnosti itd. |
| SCLK | Serijska ura | Pin 2 (taktni signal) | Taktni signal za komunikacijo SDIO |
| FMIN | Vhod FM signala | Zatič 5 | Sprejema FM RF signal iz antene |
| X1 | Vhod kristalnega oscilatorja | 32.768 kHz kristal | Zagotavlja referenčno uro za stabilno delovanje s frekvenco |
2. Razčlenitev funkcionalnih modulov
2.1 Napajalni modul
- Vhodna napetost: 3.3 V enosmernega toka (regulirano)
- Komponente filtriranja:
- C8 (0.1 µF), C9 (0.1 µF): Visokofrekvenčni ločilni kondenzatorji med VDD in GND, ki dušijo šum moči
- C10 (22 µF): Elektrolitski kondenzator v razsutem stanju za filtriranje nizkih frekvenc in shranjevanje energije
- C26 (0.1 µF): Dodatna ločitev za nadaljnje izboljšanje stabilnosti napajanja
To večstopenjsko filtriranje zagotavlja stabilna in tiha dobava energije na integrirano vezje FM sprejemnika.
2.2 Modul za sprejem FM signala
- Vhod signala:
- Naš FMIN pin (pin 5) priključi se na zunanjo FM anteno (element antene ni prikazan na shemi)
- Sprejema signale FM oddajanja v 87–108 MHz skupina
- Kristalno oscilatorno vezje:
- A 32.768 kHz kristal (X1) zagotavlja natančno referenčno uro
- Zagotavlja natančno FM iskanje in preprečuje nihanje frekvence med izbiro postaje
2.3 Modul za upravljanje in komunikacijo
- Komunikacijski vmesnik:
- SDIO (serijski podatki) + SCLK (serijska ura)
- Združljiv z I2C ali podobni serijski komunikacijski protokoli
- Uporablja se za povezavo z zunanjim mikrokontrolerjem (npr. mikrokrmilnikom)
- Pull-up upori:
- R6 (10 kΩ) za SDIO
- R7 (10 kΩ) za SCLK
- Oba sta povezana z 3V3, kar zagotavlja stabilne logične nivoje in zanesljivo komunikacijo
2.4 Modul za avdio izhod
- Zvočni izhodi:
- POBREŽITEV: Analogni zvok desnega kanala
- LUTA: Analogni zvok levega kanala
- Ti izhodi so lahko:
- Neposredno povezan z slušalke
- Povezan z zvočniki (opomba: zunanji audio ojačevalnik je potrebno za večjo izhodno moč)
2.5 Modul za pomožno filtriranje in ujemanje
- Induktorji:
- L1, L2 (100 nH): Verjetno se uporablja za usklajevanje RF impedance ali vhodno filtriranje na FM vhodu
- Pomaga zmanjšati odboj signala in izboljšati občutljivost sprejema
- kondenzatorji:
- C13 (100 pF), C14 (24 pF): Delajte z induktorji, da oblikujete LC filtrirno omrežje
- Zavira visokofrekvenčne motnje in čisti FM signal
- Zemljišče:
- Več ozemljitvenih povezav označuje globalna skupna zasnova
- Zmanjša šum in izboljša splošno stabilnost vezja
3. Ključni parametri in oblikovne značilnosti
- Operating Voltage: 3.3V
- Popolnoma združljiv z običajnimi mikrokontrolerji brez premika nivojev
- Kristalna frekvenca: 32.768 kHz
- Industrijsko standardna referenčna frekvenca za stabilno časovno usklajenost
- Nadzorna metoda: SDIO + SCLK serijski vmesnik
- Poenostavljeno usmerjanje, potrebni sta le dve krmilni liniji
- Zasnova filtriranja:
- Več kondenzatorjev za ločevanje moči (0.1 µF + 22 µF)
- LC filtriranje na RF vhodu za močno odpornost proti šumu
- Audio izhod:
- Dvokanalni analogni zvok (ROUT / LOUT)
- Podpira stereo predvajanje FM radia
4. Scenariji uporabe in predlogi za širitev
tipične aplikacije
- Prenosni FM radijski sprejemniki
- Pametni zvočniki s funkcijo FM radia
- FM sprejemni sistemi, ki jih krmili MCU
Možnosti razširitve
- Uporabite zunanja teleskopska antena ali antena s tiskanim vezjem za izboljšanje občutljivosti sprejema
- Dodajanje ojačevalnik avdio moči (npr. LM386) na ROUT/LOUT za pogon večjih zvočnikov
- Omogočite napredne funkcije prek krmiljenja MCU:
- Samodejno iskanje postaj
- Shranjevanje prednastavljenih kanalov
- Digitalni nadzor glasnosti
5. Opombe in previdnostni ukrepi pri načrtovanju
- Stabilnost moči:
- Zagotovite nizko valovanje na 3.3 V napajalni napetosti, da se izognete zvočnemu šumu ali nestabilnemu sprejemu.
- Zemljišče:
- Uporabite trdno in dosledno ozemljitveno referenco
- Izogibajte se potencialnim razlikam med ozemljitvijo napajanja in ozemljitvijo zvoka, da preprečite šum
- Ujemanje impedance:
- Antena, priključena na FMIN mora biti impedančno usklajen (običajno 50Ω) za optimalen sprejem
- Izbira komponente:
- Uporaba visoko natančen kristal 32.768 kHz
- Raje Kondenzatorji NP0 / C0G za RF in časovno povezane komponente zaradi vrhunske stabilnosti
Programska koda radijskega vezja
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
//------------------------------------------------------------------------------



