Diagram skema rangkaian ini adalah sebuah Modul penerima radio FM dibangun di sekitar RDA5807M sebagai IC inti. Fungsinya terutama untuk Penerimaan sinyal FM, keluaran audio, dan fungsi kontrol dasar.Analisis di bawah ini dibagi menjadi... komponen inti, modul fungsional, dan parameter desain utama.

1. Komponen Inti dan Fungsi Pin
IC Inti: RDA5807M
The RDA5807M adalah IC penerima radio FM yang sangat terintegrasi yang mendukung penerimaan siaran FM dan Kontrol serial I2C / SDIOBerdasarkan skema tersebut, pin-pin utama dan koneksinya dirangkum di bawah ini:
| Nama Pin | fungsi | Komponen Terhubung / Jaringan | Uraian Teknis |
|---|---|---|---|
| MENGUSIR | Output audio saluran kanan | Output langsung (tidak ada komponen tambahan yang ditampilkan) | Menyediakan audio analog saluran kanan. |
| ORANG UDIK | Output audio saluran kiri | Output langsung (tidak ada komponen tambahan yang ditampilkan) | Menyediakan audio analog saluran kiri. |
| RCLK | Pin sinyal jam | Tidak ada koneksi eksternal eksplisit (kemungkinan sinkronisasi internal) | Sinkronisasi jam internal |
| Vdd | catu daya input | Jaringan daya 3V3 | Catu daya 3.3V DC |
| GND | Tanah | Jaringan GND global | Ground daya dan sinyal umum |
| SDIO | Input/Output data serial | Pin 3 (sinyal kontrol) | Komunikasi dengan MCU untuk penyetelan, kontrol volume, dll. |
| SCLK | Jam serial | Pin 2 (sinyal clock) | Sinyal clock untuk komunikasi SDIO |
| FMIN | Input sinyal FM | pin 5 | Menerima sinyal RF FM dari antena |
| X1 | Input osilator kristal | Kristal 32.768 kHz | Menyediakan jam referensi untuk pengoperasian frekuensi yang stabil. |
2. Rincian Modul Fungsional
2.1 Modul Catu Daya
- Input Voltage: 3.3V DC (teratur)
- Komponen Penyaringan:
- C8 (0.1µF), C9 (0.1µF): Kapasitor decoupling frekuensi tinggi antara VDD dan GND, untuk meredam noise daya.
- C10 (22µF): Kapasitor elektrolitik massal untuk penyaringan frekuensi rendah dan penyimpanan energi.
- C26 (0.1µF): Dekopling tambahan untuk lebih meningkatkan stabilitas daya.
Penyaringan bertahap ini memastikan penyaluran daya yang stabil dan rendah kebisingan ke IC penerima FM.
2.2 Modul Penerimaan Sinyal FM
- Input Sinyal:
- The Pin FMIN (Pin 5) terhubung ke antena FM eksternal (elemen antena tidak ditunjukkan dalam skema)
- Menerima sinyal siaran FM di 87 – 108 MHz pita
- Rangkaian Osilator Kristal:
- A Kristal 32.768 kHz (X1) menyediakan jam referensi yang akurat
- Memastikan penyetelan FM yang tepat dan mencegah pergeseran frekuensi selama pemilihan stasiun.
2.3 Modul Kontrol dan Komunikasi
- Antarmuka Komunikasi:
- SDIO (Data Serial) + SCLK (Jam Serial)
- Kompatibel dengan I2C atau protokol komunikasi serial serupa
- Digunakan untuk berinteraksi dengan MCU eksternal (misalnya, mikrokontroler)
- Resistor Pull-up:
- R6 (10kΩ) untuk SDIO
- R7 (10kΩ) untuk SCLK
- Keduanya terhubung ke 3V3, memastikan tingkat logika yang stabil dan komunikasi yang andal
2.4 Modul Output Audio
- Keluaran Audio:
- MENGUSIR: Audio analog saluran kanan
- ORANG UDIK: Audio analog saluran kiri
- Hasil keluaran ini dapat berupa:
- Terhubung langsung ke headphone
- Terhubung dengan speaker (catatan: eksternal) audio amplifier (diperlukan untuk keluaran daya yang lebih tinggi)
2.5 Modul Penyaringan dan Pencocokan Tambahan
- Induktor:
- L1, L2 (100 nH): Kemungkinan digunakan untuk pencocokan impedansi RF atau penyaringan input pada bagian depan FM.
- Membantu mengurangi pantulan sinyal dan meningkatkan sensitivitas penerimaan.
- kapasitor:
- C13 (100 pF), C14 (24 pF): Bekerja dengan induktor untuk membentuk sebuah Jaringan filter LC
- Menekan interferensi frekuensi tinggi dan memurnikan sinyal FM.
- Grounding:
- Beberapa koneksi GND menunjukkan sebuah desain landasan bersama global
- Mengurangi kebisingan dan meningkatkan stabilitas sirkuit secara keseluruhan.
3. Parameter Utama dan Fitur Desain
- Tegangan operasi: 3.3V
- Sepenuhnya kompatibel dengan MCU arus utama tanpa pergeseran level.
- Frekuensi Kristal: 32.768 kHz
- Frekuensi referensi standar industri untuk pengaturan waktu yang stabil.
- Metode kontrol: Antarmuka serial SDIO + SCLK
- Perutean yang disederhanakan, hanya membutuhkan dua jalur kontrol.
- Desain Penyaringan:
- Beberapa kapasitor decoupling daya (0.1µF + 22µF)
- Penyaringan LC pada bagian depan RF untuk kekebalan terhadap kebisingan yang kuat.
- Audio Output:
- Audio analog dua saluran (ROUT / LOUT)
- Mendukung pemutaran FM stereo.
4. Skenario Aplikasi dan Saran Pengembangan
Aplikasi khas
- Radio FM portabel
- Speaker pintar dengan fungsi radio FM
- Sistem penerima FM yang dikendalikan MCU
Opsi Perluasan
- Gunakan sebuah antena teleskopik eksternal atau antena PCB untuk meningkatkan sensitivitas penerimaan
- Tambahkan sebuah audio power amplifier (misalnya, LM386) ke ROUT/LOUT untuk menggerakkan speaker yang lebih besar
- Aktifkan fitur-fitur canggih melalui kontrol MCU:
- Pemindaian stasiun otomatis
- Penyimpanan saluran preset
- Kontrol volume digital
5. Catatan Desain dan Tindakan Pencegahan
- Stabilitas Daya:
- Pastikan riak tegangan pada catu daya 3.3V rendah untuk menghindari gangguan suara atau penerimaan yang tidak stabil.
- Grounding:
- Gunakan acuan dasar yang kokoh dan konsisten.
- Hindari perbedaan potensial antara ground daya dan ground audio untuk mencegah gangguan suara.
- Pencocokan Impedansi:
- Antena yang terhubung ke FMIN harus disesuaikan impedansinya (biasanya 50Ω) untuk penerimaan optimal
- Pemilihan Komponen:
- Menggunakan kristal 32.768 kHz dengan akurasi tinggi
- Lebih suka Kapasitor NP0 / C0G untuk komponen RF dan yang berhubungan dengan pengaturan waktu karena stabilitasnya yang unggul.
Kode program rangkaian 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
//------------------------------------------------------------------------------




