Diagram skematik rangkaian ini adalah modul penerima radio FM yang dibangun di sekitar RDA5807M sebagai IC inti. Fungsi utamanya adalah 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
RDA5807M adalah IC penerima radio FM yang sangat terintegrasi yang mendukung penerimaan siaran FM dan kontrol serial I2C/SDIO . Berdasarkan skema, pin-pin utama dan koneksinya dirangkum di bawah ini:
| Nama Pin | fungsi | Komponen Terhubung / Jaringan | Deskripsi |
|---|---|---|---|
| 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 pengiriman daya yang stabil dan rendah noise 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
//------------------------------------------------------------------------------




