基於RDA5807M的無線電原理圖分析

此電路原理圖是 調頻收音機接收器模組 圍繞 RDA5807M 作為核心積體電路,它主要實現… FM訊號接收、音訊輸出和基本控制功能以下分析分為以下幾個部分: 核心組件、功能模組和關鍵設計參數.

FM 收音機 RDA5807M 原理圖

1. 核心組件和引腳功能

核心晶片:RDA5807M

RDA5807M 是一款高度整合的FM收音機接收器IC,支援FM廣播接收和 I2C/SDIO串行控制根據原理圖,關鍵引腳及其連接方式總結如下:

引腳名稱功能連通分量/網路產品說明
潰敗右聲道音訊輸出直接輸出(未顯示額外組件)提供右聲道模擬音頻
粗魯左聲道音訊輸出直接輸出(未顯示額外組件)提供左聲道模擬音頻
時脈訊號時脈訊號引腳沒有明確的外部連線(可能是內部同步)內部時鐘同步
VDD電源輸入3V3電源網3.3V直流電源
GND陸運全球接地網絡公共電源和訊號地
SDIO串列資料 I/O腳位 3(控制訊號)與MCU通信,實現調音、音量控制等功能。
時鐘序列時鐘引腳 2(時脈訊號)用於 SDIO 通訊的時脈訊號
FMIN調頻訊號輸入銷5接收來自天線的調頻射頻訊號
X1晶體振盪器輸入32.768 kHz晶體提供參考時脈以實現穩定的頻率運行

2. 功能模組分解

2.1電源模組

  • 輸入電壓: 3.3V DC(穩壓)
  • 過濾組件:
    • C8 (0.1µF)、C9 (0.1µF): VDD 和 GND 之間採用高頻去耦電容,抑制電源雜訊
    • C10 (22µF): 用於低頻濾波和儲能的大容量電解電容器
    • C26 (0.1µF): 增加解耦以進一步提高電源穩定性

這種多層過濾確保 穩定且低噪音的功率輸出 至 FM 接收器 IC。


2.2 FM訊號接收模組

  • 信號輸入
    • FMIN引腳(引腳5) 連接至外部調頻天線(原理圖中未顯示天線元件)
    • 接收調頻廣播訊號 87–108 兆赫
  • 晶體振盪器電路:
    • A 32.768 kHz 晶體 (X1) 提供精確的參考時鐘
    • 確保精確的調頻調諧,並防止在選台過程中出現頻率漂移。

2.3 控制與通訊模組

  • 通訊接口:
    • SDIO(串列資料) + SCLK(串行時脈)
    • 兼容 I2C 或類似的串行通訊協議
    • 用於與外部MCU(例如,微控制器)連接
  • 上拉電阻:
    • R6 (10kΩ) 用於 SDIO
    • R7 (10kΩ) 適用於 SCLK
    • 兩者都與 3V3確保邏輯電平穩定和通訊可靠

2.4 音訊輸出模組

  • 音訊輸出:
    • 路線: 右聲道模擬音訊
    • 粗魯: 左聲道模擬音頻
  • 這些輸出可以是:
    • 直接連接到 頭戴耳機
    • 連接到 揚聲器 (註:外部) 音頻放大器 (需要更高的功率輸出)

2.5 輔助濾波和匹配模組

  • 電感器:
    • L1、L2(100 nH): 可能用於調頻前端的射頻阻抗匹配或輸入濾波
    • 有助於減少訊號反射並提高接收靈敏度
  • 電容器:
    • C13(100 pF),C14(24 pF): 利用電感器形成一個 LC濾波器網絡
    • 抑制高頻幹擾並淨化調頻訊號
  • 接地:
    • 多個 GND 連接表示 全球共同基礎設計
    • 降低雜訊並提高電路整體穩定性

3. 主要參數與設計特點

  • 工作電壓: 3.3V
    • 完全相容主流MCU,無需電平轉換
  • 晶體頻率: 32.768千赫
    • 用於穩定計時的業界標準參考頻率
  • 控制方法: SDIO + SCLK 串行接口
    • 簡化佈線,僅需兩條控制線
  • 濾波設計:
    • 多個功率去耦電容器(0.1µF + 22µF)
    • 射頻前端採用LC濾波,以提高抗雜訊能力。
  • 音頻輸出:
    • 雙聲道類比音訊(ROUT / LOUT)
    • 支援立體聲FM播放

4. 應用場景及擴充建議

應用例子

  • 手提式調頻收音機
  • 具備FM收音機功能的智慧音箱
  • MCU控制的FM接收器系統

擴展選項

  • 用一個 外接伸縮天線或PCB天線 為了提高接收靈敏度
  • 添加一個 音頻功率放大器 (例如,LM386)連接到 ROUT/LOUT 以驅動更大的揚聲器
  • 透過MCU控制啟用進階功能:
    • 自動站點掃描
    • 預設頻道存儲
    • 數位音量控制

5. 設計注意事項與預防措施

  • 功率穩定性:
    • 確保 3.3V 電源漣波低,以避免音訊雜訊或接收不穩定。
  • 接地:
    • 使用穩固且一致的地面參照物
    • 避免電源接地和音頻接地之間存在電位差,以防止雜訊幹擾。
  • 阻抗匹配:
    • 連接到天線 FMIN 應該阻抗匹配(通常 50Ω)以獲得最佳接收效果
  • 元件選擇:
    • 使用 高精度32.768 kHz晶體
    • 比較喜歡 NP0 / C0G 電容器 由於其優異的穩定性,適用於射頻和時序相關組件

無線電電路程式碼

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
//------------------------------------------------------------------------------

發表評論

您的電子郵件地址將不會被發表。 必填欄位已標記 *