Bu devre şematik diyagramı bir FM radyo alıcı modülü etrafında inşa edilmiş RDA5807M Çekirdek entegre devre olarak. Esas olarak şu işlevleri yerine getirir: FM sinyal alımı, ses çıkışı ve temel kontrol fonksiyonlarıAşağıdaki analiz şu bölümlere ayrılmıştır: temel bileşenler, fonksiyonel modüller ve önemli tasarım parametreleri.

1. Ana Bileşen ve Pin Fonksiyonları
Ana Entegre Devre: RDA5807M
MKS RDA5807M FM radyo yayın alımını destekleyen, yüksek düzeyde entegre edilmiş bir FM radyo alıcı IC'sidir. I2C / SDIO seri kontrolüŞemaya göre, temel pinler ve bağlantıları aşağıda özetlenmiştir:
| Pin Adı | İşlev | Bağlı Bileşen / Ağ | Açıklama |
|---|---|---|---|
| ROTA | Sağ kanal ses çıkışı | Doğrudan çıkış (ekstra bileşen gösterilmemiştir) | Sağ kanal analog ses sinyali sağlar. |
| KABA ADAM | Sol kanal ses çıkışı | Doğrudan çıkış (ekstra bileşen gösterilmemiştir) | Sol kanal analog ses sinyali sağlar. |
| RCLK | Saat sinyali pini | Açık bir harici bağlantı yok (muhtemelen dahili senkronizasyon). | Dahili saat senkronizasyonu |
| VDD | Güç kaynağı girişi | 3V3 güç ağı | 3.3V DC güç kaynağı |
| GND | Zemin | Küresel GND ağı | Ortak güç ve sinyal topraklaması |
| SDIO | Seri veri giriş/çıkışı | Pin 3 (kontrol sinyali) | Ayarlama, ses kontrolü vb. için MCU ile iletişim. |
| SCLK | Seri saat | Pin 2 (saat sinyali) | SDIO iletişimi için saat sinyali |
| FMIN | FM sinyal girişi | Pim 5 | Antenden FM RF sinyali alır. |
| X1 | Kristal osilatör girişi | 32.768 kHz kristal | Kararlı frekans çalışması için referans saat sağlar. |
2. Fonksiyonel Modül Ayrıştırması
2.1 Güç Kaynağı Modülü
- Giriş gerilimi: 3.3V DC (düzenlenmiş)
- Filtreleme Bileşenleri:
- C8 (0.1µF), C9 (0.1µF): VDD ve GND arasına yerleştirilen yüksek frekanslı ayırma kapasitörleri, güç gürültüsünü bastırır.
- C10 (22µF): Düşük frekanslı filtreleme ve enerji depolama için büyük hacimli elektrolitik kondansatör
- C26 (0.1µF): Güç kararlılığını daha da iyileştirmek için ek ayrıştırma
Bu çok aşamalı filtreleme şunları sağlar: istikrarlı ve düşük gürültülü güç dağıtımı FM alıcı entegre devresine.
2.2 FM Sinyal Alma Modülü
- Sinyal Girişi:
- MKS FMIN pini (Pin 5) Harici bir FM antenine bağlanır (anten elemanı şemada gösterilmemiştir).
- FM yayın sinyallerini alır. 87 – 108 MHz bant
- Kristal Osilatör Devresi:
- A 32.768 kHz kristal (X1) doğru bir referans saati sağlar
- Hassas FM ayarı sağlar ve istasyon seçimi sırasında frekans kaymasını önler.
2.3 Kontrol ve İletişim Modülü
- İletişim Arayüzü:
- SDIO (Seri Veri) + SCLK (Seri Saat)
- uyumlu I2C veya benzeri seri iletişim protokolleri
- Harici bir MCU (örneğin, mikrodenetleyici) ile arayüz oluşturmak için kullanılır.
- Çekme dirençleri:
- R6 (10kΩ) SDIO için
- R7 (10kΩ) SCLK için
- İkisi de birbirine bağlıdır. 3V3Bu sayede istikrarlı mantık seviyeleri ve güvenilir iletişim sağlanır.
2.4 Ses Çıkış Modülü
- Ses Çıkışları:
- ROTA: Sağ kanal analog ses
- KABA ADAM: Sol kanal analog ses
- Bu çıktılar şunlar olabilir:
- Doğrudan bağlı kulaklık
- Bağlı hoparlörler (not: harici bir ses yükseltici (daha yüksek güç çıkışı için gereklidir)
2.5 Yardımcı Filtreleme ve Eşleştirme Modülü
- İndüktörler:
- L1, L2 (100 nH): Büyük olasılıkla FM ön ucunda RF empedans eşleştirme veya giriş filtreleme için kullanılıyor.
- Sinyal yansımasını azaltmaya ve alım hassasiyetini artırmaya yardımcı olur.
- Kondansatörler:
- C13 (100 pF), C14 (24 pF): İndüktörlerle çalışarak bir yapı oluşturun. LC filtre ağı
- Yüksek frekanslı parazitleri bastırın ve FM sinyalini arındırın.
- topraklama:
- Birden fazla GND bağlantısı şunu gösterir: küresel ortak zemin tasarımı
- Gürültüyü azaltır ve genel devre kararlılığını artırır.
3. Temel Parametreler ve Tasarım Özellikleri
- Çalışma gerilimi: 3.3V
- Seviye kaydırma gerektirmeden ana akım mikrodenetleyicilerle tamamen uyumludur.
- Kristal Frekansı: 32.768 kHz
- Kararlı zamanlama için endüstri standardı referans frekansı
- Kontrol metodu: SDIO + SCLK seri arayüzü
- Basitleştirilmiş yönlendirme, sadece iki kontrol hattı gereklidir.
- Filtreleme Tasarımı:
- Çoklu güç ayırma kapasitörleri (0.1µF + 22µF)
- RF ön ucunda güçlü gürültü bağışıklığı için LC filtreleme.
- Ses Çıkışı:
- Çift kanallı analog ses (ROUT / LOUT)
- Stereo FM çalmayı destekler.
4. Uygulama Senaryoları ve Genişletme Önerileri
Tipik uygulamalar
- Taşınabilir FM radyoları
- FM radyo işlevine sahip akıllı hoparlörler
- MCU kontrollü FM alıcı sistemleri
Genişletme Seçenekleri
- Bir harici teleskopik anten veya PCB anteni alım hassasiyetini iyileştirmek için
- Ekle Ses güç amplifikatörü (Örneğin, LM386) daha büyük hoparlörleri çalıştırmak için ROUT/LOUT'a bağlanır.
- MCU kontrolü aracılığıyla gelişmiş özellikleri etkinleştirin:
- Otomatik istasyon taraması
- Önceden ayarlanmış kanal depolama
- Dijital ses kontrolü
5. Tasarım Notları ve Önlemler
- Güç Kararlılığı:
- Ses gürültüsünü veya kararsız alımı önlemek için 3.3V güç kaynağında düşük dalgalanma sağlayın.
- topraklama:
- Sağlam ve tutarlı bir zemin referansı kullanın.
- Gürültüyü önlemek için güç topraklaması ve ses topraklaması arasındaki potansiyel farklılıklardan kaçının.
- Empedans eşleştirme:
- Anten şuraya bağlıydı: FMIN empedans uyumlu olmalıdır (tipik olarak 50Ω) en iyi alım için
- Bileşen Seçimi:
- Kullanmak yüksek hassasiyetli 32.768 kHz kristal
- tercih ederim NP0 / C0G kapasitörleri RF ve zamanlama ile ilgili bileşenler için üstün kararlılık nedeniyle
Radyo devresi program kodu
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
//------------------------------------------------------------------------------




