基于RDA5807M的无线电原理图分析

该电路原理图是 调频收音机接收器模块 围绕着 RDA5807M 作为核心集成电路,它主要实现…… FM信号接收、音频输出和基本控制功能以下分析分为以下几个部分: 核心组件、功能模块和关键设计参数.

FM 收音机 RDA5807M 原理图

1. 核心组件和引脚功能

核心芯片:RDA5807M

RDA5807M 是一款高度集成的FM收音机接收器IC,支持FM广播接收和 I2C/SDIO串行控制根据原理图,关键引脚及其连接方式总结如下:

引脚名称功能连通分量/网络描述
溃败右声道音频输出直接输出(未显示额外组件)提供右声道模拟音频
很多左声道音频输出直接输出(未显示额外组件)提供左声道模拟音频
时钟脉冲时钟信号引脚没有显式的外部连接(可能是内部同步)内部时钟同步
VDD电源输入3V3电源网3.3V直流电源
GND陆运全球接地网络公共电源和信号地
做过串行数据 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 MHz
  • 晶体振荡器电路:
    • 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.768kHz
    • 用于稳定定时的行业标准参考频率
  • 控制方法: 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
//------------------------------------------------------------------------------

发表评论

您的电邮地址不会被公开。 必填项 *