Diagram Skematik sirkuit ieu mangrupikeun Modul panarima radio FM diwangun sabudeureun éta RDA5807M salaku IC inti. Ieu utamina ngalaksanakeun Panarimaan sinyal FM, kaluaran audio, sareng fungsi kontrol dasarAnalisis di handap ieu dibagi kana komponén inti, modul fungsional, sareng parameter desain konci.

1. Komponen Inti sareng Fungsi Pin
IC Inti: RDA5807M
nu RDA5807M nyaéta IC panarima radio FM anu terintegrasi pisan anu ngadukung panarimaan siaran FM sareng Kontrol serial I2C / SDIODumasar kana skéma, pin konci sareng sambunganna diringkeskeun di handap ieu:
| Ngaran Pin | fungsi | Komponen / Jaringan anu Terhubung | gambaran |
|---|---|---|---|
| ROUT | Kaluaran audio saluran katuhu | Kaluaran langsung (teu aya komponén tambahan anu dipidangkeun) | Nyayogikeun audio analog saluran katuhu |
| LOUT | Kaluaran audio saluran kénca | Kaluaran langsung (teu aya komponén tambahan anu dipidangkeun) | Nyayogikeun audio analog saluran kénca |
| RCLK | Pin sinyal jam | Teu aya sambungan éksternal anu jelas (kamungkinan sinkronisasi internal) | Sinkronisasi jam internal |
| VDD | input catu daya | Jaring kakuatan 3V3 | Pasokan kakuatan 3.3V DC |
| GND | tanah | Net GND Global | Daya umum sareng sinyal taneuh |
| SDIO | I/O data serial | Pin 3 (sinyal kontrol) | Komunikasi sareng MCU pikeun nyetel, ngontrol volume, jsb. |
| SCLK | Jam sérial | Pin 2 (sinyal jam) | Sinyal jam pikeun komunikasi SDIO |
| FMIN | Input sinyal FM | pin 5 | Narima sinyal FM RF ti anteneu |
| X1 | Input osilator kristal | Kristal 32.768 kHz | Nyayogikeun jam rujukan pikeun operasi frékuénsi anu stabil |
2. Rincian Modul Fungsional
2.1 Power Supply Module
- Input tegangan: 3.3V DC (diatur)
- Komponen Panyaring:
- C8 (0.1µF), C9 (0.1µF): Kapasitor decoupling frékuénsi luhur antara VDD sareng GND, ngurangan noise daya
- C10 (22µF): Kapasitor éléktrolitik curah pikeun panyaringan frékuénsi rendah sareng panyimpenan énergi
- C26 (0.1µF): Decoupling tambahan pikeun ningkatkeun stabilitas daya
Panyaringan multi-tahap ieu mastikeun pangiriman daya anu stabil sareng rendah noise ka IC panarima FM.
Modul Panarimaan Sinyal 2.2 FM
- Masukan Sinyal:
- nu Pin FMIN (Pin 5) nyambung ka anteneu FM éksternal (élémen anteneu teu dipidangkeun dina skéma)
- Narima sinyal siaran FM dina 87-108 MHz pita
- Sirkuit Osilator Kristal:
- A Kristal 32.768 kHz (X1) nyadiakeun jam rujukan anu akurat
- Mastikeun tuning FM anu tepat sareng nyegah parobahan frékuénsi nalika milih stasiun
2.3 Modul Kontrol sareng Komunikasi
- Komunikasi Interface:
- SDIO (Data Sérial) + SCLK (Jam Sérial)
- cocog sareng I2C atanapi protokol komunikasi serial anu sami
- Dianggo pikeun berinteraksi sareng MCU éksternal (contona, mikrokontroler)
- Resistor Pull-up:
- R6 (10kΩ) kanggo SDIO
- R7 (10kΩ) kanggo SCLK
- Duanana disambungkeun ka 3V3, mastikeun tingkat logika anu stabil sareng komunikasi anu tiasa dipercaya
2.4 Modul Kaluaran Audio
- Kaluaran Audio:
- RUTE: Audio analog saluran katuhu
- LOUT: Audio analog saluran kénca
- Kaluaran ieu tiasa:
- Dihubungkeun langsung ka headphone
- Dihubungkeun ka speaker (catetan: éksternal panguat audio diperyogikeun pikeun kaluaran daya anu langkung luhur)
2.5 Modul Panyaringan sareng Pencocokan Bantu
- Induktor:
- L1, L2 (100 nH): Kamungkinan dianggo pikeun cocog impedansi RF atanapi panyaringan input di tungtung hareup FM
- Ngabantosan ngirangan pantulan sinyal sareng ningkatkeun sensitivitas panarimaan
- Kapasitor:
- C13 (100 pF), C14 (24 pF): Gawé bareng jeung induktor pikeun ngabentuk hiji Jaringan filter LC
- Nyegah gangguan frékuénsi luhur sareng ngamurnikeun sinyal FM
- Grounding:
- Sababaraha sambungan GND nunjukkeun hiji desain landasan umum global
- Ngurangan noise sareng ningkatkeun stabilitas sirkuit sacara umum
3. Parameter Kunci sareng Fitur Desain
- Tegangan operasi: 3.3V
- Cocog pisan sareng MCU mainstream tanpa ngarobih tingkat
- Frékuénsi Kristal: 32.768 kHz
- Frékuénsi rujukan standar industri pikeun timing anu stabil
- Métode Kontrol: Antarbeungeut sérial SDIO + SCLK
- Routing anu disederhanakeun, ngan ukur dua jalur kontrol anu diperyogikeun
- Desain Panyaringan:
- Kapasitor pamisah daya sababaraha (0.1µF + 22µF)
- Panyaringan LC dina ujung hareup RF pikeun kekebalan noise anu kuat
- Kaluaran audio:
- Audio analog dua saluran (ROUT / LOUT)
- Ngarojong pamuteran FM stereo
4. Skenario Aplikasi sareng Saran Ékspansi
Aplikasi has
- Radio FM portabel
- Spiker pinter kalayan fungsi radio FM
- Sistem panarima FM anu dikontrol ku MCU
ékspansi Options
- Anggo hiji anteneu teleskopik éksternal atanapi anteneu PCB pikeun ningkatkeun sensitivitas panarimaan
- Tambihkeun hiji amplifier daya audio (contona, LM386) ka ROUT/LOUT pikeun ngajalankeun speaker anu langkung ageung
- Aktipkeun fitur canggih via kontrol MCU:
- Pamindaian stasiun otomatis
- Panyimpenan saluran anu tos disetel
- Kontrol volume digital
5. Catetan Desain sareng Pancegahan
- Stabilitas kakuatan:
- Pastikeun riak anu handap dina suplai 3.3V pikeun nyingkahan gangguan audio atanapi panarimaan anu teu stabil
- Grounding:
- Anggo rujukan taneuh anu padet sareng konsisten
- Hindarkeun béda poténsial antara taneuh listrik sareng taneuh audio pikeun nyegah noise
- Impedansi cocog:
- Antena anu disambungkeun ka FMIN kedah cocog sareng impedansi (biasana 50Ω) pikeun panarimaan anu optimal
- Pilihan komponén:
- ngagunakeun kristal 32.768 kHz akurasi luhur
- Langkung resep Kapasitor NP0 / C0G pikeun RF sareng komponén anu aya hubunganana sareng timing kusabab stabilitas anu unggul
Kode program sirkuit radio
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
//------------------------------------------------------------------------------



