Ta shematski diagram vezja je FM radijski sprejemnik, zgrajen okoli RDA5807M kot osrednjega integriranega vezja. V glavnem izvaja sprejem FM signala, avdio izhod in osnovne krmilne funkcije . Spodnja analiza je razdeljena na osrednje komponente, funkcionalne module in ključne parametre zasnove.

1. Funkcije osnovnih komponent in pinov
Jedrno integrirano vezje: RDA5807M
RDA5807M je visoko integrirano integrirano vezje za FM radijski sprejemnik, ki podpira sprejem FM oddajanja in serijski nadzor I2C / SDIO . Na 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 stabilno in tiho dovajanje energije v 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
//------------------------------------------------------------------------------




